라즈베리파이의 진정한 기능은 GPIO 핀을 통하여 다른 모듈들을 제어할 수 있는 점입니다. 이번에는 wiringPi를 통하여 GPIO를 제어하는 방법을 알아보겠습니다.
WiringPi라이브러리의 사이트는 아래에 첨부합니다. (꼭 한번 읽어보세요.)
아래의 명령어를 터미널에서 차례대로 치면 설치됩니다.
sudo apt-get install git-core
sudo git clone https://github.com/WiringPi/WiringPi
cd WiringPi
sudo ./build
간단하게 요약하면 WiringPi패키지를 설치 후 build를 통하여 저장합니다.
다운로드를 완료하고 아래의 명령어에 핀맵이 나오면 완료하였습니다.
gpio readall
이렇게 설치하면 WiringPi가 설치 완료된 것을 알 수 있습니다.
예제 (C언어)
제대로 돌아가는지 확인하기 위하여 간단하게 LED를 작동하는 예제를 만들어보겠습니다.
저는 GPIO 보드로 한눈에 보이게끔 하였는데 없으신 분은 핀맵에서 해당 위치를 찾아서 위와 같이 회로를 구성하면 됩니다. 아래의 소스코드를 치고 컴파일을 해서 LED가 깜빡깜빡하면 완료되었습니다.
test_led.c 파일의 소스코드입니다.
#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);
}
}
이제 컴파일하고 실행하면 됩니다.
gcc –o ./result ./test_led.c -l wiringPi
./result
라즈베리파이에 다양한 통신 규격(방식)들이 있는데 GPIO부터 하나씩 하나씩 시간이 나면 정리하겠습니다.
'임베디드 시스템 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이 (6) - Raspberry Pi와 Aduino를 연동해보자 (Firmata) (0) | 2023.04.09 |
---|---|
라즈베리파이 (5) - 스위치를 이용하여 인터럽트를 구성하자 (0) | 2022.07.07 |
라즈베리파이 (4) - GPIO는 무엇인가? (0) | 2022.07.02 |
라즈베리파이 (2) - fcitx를 이용한 한글 설치 및 적용 (0) | 2022.04.12 |
라즈베리파이 (1) - 노트북으로 원격 접속을 해보자 (4) | 2022.04.12 |