본문 바로가기
Embedded/Arduino & RaspberryPi (AVR ARM arch))

[ 라즈베리파이 / Raspberrypi ] WiringPi를 사용한 GPIO제어

by 도비야 산책가자 2017. 3. 19.

라즈베리파이에서 GPIO에 접근하는 방법은 여러가지가 있는데 그중 wiringPi를 사용해서 GPIO제어하는 실습을 해본다.

wiringPi는 C언어로 라즈베리파이의 GPIO를 접근 할 수 있도록 하는 도와주는 라이브러리이다.


wiringPi를 사용하기 위해서는 git에서 wiringPi를 clone을 해야한다.

clone 작업에 앞서 git을 설치한다. 

sudo apt-get install git-core


그리고 git에서 wiringPi를 clone 한다.

git clone git://git.drogon.net/wiringPi


wiringPi가 잘 설치되어 있는지 확인한다.

cd wiringPi
./build


작업 경로로 되돌아 온다.

cd ~


test_wiringpi라는 이름의 디렉토리를 생성한다.

mkdir test_wiringpi


생성된 디렉토리안에서 나노 편집기를 사용하여 코딩을 진행한다.

nano를 입력해서 nano편집기를 실행한다.

nano
#include <stdio.h>
#include <wiringpi.h>
#define LED 4 
int main ()
{
  if (wiringPiSetup () == -1)
  return 1 ;
pinMode (LED, OUTPUT) ;
for (;;)
  {
    digitalWrite (LED, 1) ; // on
    delay (1000) ; 
    digitalWrite (LED, 0) ; // off
    delay (1000) ;
  }
  return 0 ;
}

소스를 편집한뒤,

Ctrl+x를 눌러 exit하고 저장여부를 묻는데 이를 'yes'한 뒤 파일명을 지정한다. 여기서 나는 test.c라는 이름으로 저장했다.


그리고 다음과 같이 핀을 연결한다. (이때 wiringPi기준 4번이자 #23을 연결해준다. 위 소스코드에서 #24는 제어하지 않음.)

<그림1>

출처 : http://www.rasplay.org/?p=3241


gcc. 즉, C컴파일러를 사용하여 컴파일한다. 이때 컴파일 결과로 생성될 파일의 이름을 지정해준다.(여기서는 test라고 정했다)
생성될 파일의 이름을 지정한 다음에는 컴파일대상이 될 소스파일을 정해준다.(test.c)

gcc-o test test.c


컴파일 성공된 파일을 실행한다.

sudo ./test


성공적으로 실행이 된다면 1초간 불이 켜진상태를 유지하다가 1초간 꺼진상태를 유지하는 행위를 무한 반복하게 된다.

만약 실행을 멈추고 싶다면 Ctrl+c 를 누른다.


<결과>