이전 편에서는 GPIO를 다운로드하였습니다. 이제 GPIO를 이용하여 LED를 사용해보도록 하겠습니다.
GPIO는 무엇인가?
GPIO는 Gereral Purpose input/output의 약자로 다용도 입출력을 의미합니다. 임베디드 시스템에서 CPU에서 외부에 있는 핀을 사용하기 위하여 통하는 IO 신호입니다. 개발자가 어떻게 제품을 만드는가에 대하여 Input/ Output이 될 수 있습니다.
라즈베리파이에서 GPIO 사용방법
※저는 C언어를 기준으로 해당 설명을 구성하였습니다.
1) Pin의 Mode를 GPIO로 설정하여야 합니다.
wiringPiSetupGpio();
wiringPiSetupGpio()라는 함수를 통하여 GPIO로 사용할 것이다라는 것을 나타냅니다.
2) GPIO로 설정한 경우에는 이제 해당 핀을 Input, Output으로 사용하여야 합니다.
pinMode(pin,INPUT);
pinMode(pin,OUTPUT);
pinMode() 함수를 통하여 특정 pin을 Input, Output으로 사용할 것인지를 정할 수 있습니다.
3) Input, Output으로 설정하고 이제 값을 읽거나 쓸 수 있습니다.
//pin을 OUTPUT으로 설정하였을때
digitalWrite(pin,0); //off
digitalWrite(pin,1); //on
//pin을 INPUT으로 설정하였을때
digitalRead(pin);
위의 함수들을 이용하여 GPIO를 다룰 수 있습니다. 또한 위의 함수 뿐만이 아니라 다양한 함수들이 있습니다.
회로 / 소스코드
#include <stdio.h>
#include <wiringPi.h>
#define LED 21 // BCM 기준의 - GPIO 21
int main()
{
if(wiringPiSetupGpio()==-1) // GPIO설정
return 1;
pinMode(LED, OUTPUT); // 출력으로 설정
while(1)
{
digitalWrite(LED, 0); // LED off
delay(1000);
digitalWrite(LED, 1); // LED on
delay(1000);
}
}
위의 과정을 적용하자면 LED를 제어하기 위해서는 먼저 GPIO를 켜야 합니다. GPIO를 켰으면 LED는 input을 받는 것이 아니므로 Output으로 제어를 하여야 합니다. 마지막으로 0,1을 이용하면서 LED를 깜빡깜빡하면 됩니다.
해당 예제는 (3)편에서 사용했던 예제를 다시 적어보았습니다.
https://dalseobi.tistory.com/76
'임베디드 시스템 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이 (6) - Raspberry Pi와 Aduino를 연동해보자 (Firmata) (0) | 2023.04.09 |
---|---|
라즈베리파이 (5) - 스위치를 이용하여 인터럽트를 구성하자 (0) | 2022.07.07 |
라즈베리파이 (3) - Raspberry Pi에 GPIO 설치하기 (WiringPi) (0) | 2022.05.18 |
라즈베리파이 (2) - fcitx를 이용한 한글 설치 및 적용 (0) | 2022.04.12 |
라즈베리파이 (1) - 노트북으로 원격 접속을 해보자 (4) | 2022.04.12 |