지난 포스트 LED 불 켜기에서 스위치로 LED 불을 켜고 끄는 것을 알아봤다. 이번 포스트에서는 GPIO를 이용해서 LED를 깜빡이는 방법을 알아보자.


  GPIO를 컨트롤 하는 가장 쉽고 편한 방법은 WiringPi 라이브러리를 사용하는 것이다. Git가 설치되어 있으면 WiringPi를 설치하기가 수월하다. Git이 설치되어 있지 않다면 'sudo apt-get install git-core'를 입력해서 설치한다. Git이 설치되어 있으면 'git clone git://git.drogon.net/wiringPi'를 입력해서 WiringPi를 다운 받는다. 다운 받은 디렉터리에 들어가서 './build'를 입력하면 설치 끝.

 

  제대로 설치되었는지 확인하기 위해서는 'gpio readall'을 입력한다. 아래 사진과 같은 화면이 나온다. 제일 왼쪽행(BCM)은 Broadcom의 BCM2835 칩에서 사용하는 핀번호, wPi는 WiringPi 라이브러리의 핀번호, Name은 GPIO의 이름, Mode는 핀이 입력모드인지 출력모드인지를 알려주고, V는 핀의 값으로 1은 전압이 High상태 0은 Low상태, 그리고 Physical은 라즈베리파이 핀헤더의 번호이다. 예를들어 밑줄 친 열을 보면 11번 헤더핀이 출력모드이고 값은 0인 것을 알 수 있다. 유튜브(http://www.youtube.com/watch?v=Wr49ia3oID4)에 올라온 실험에 따르면, 핀이 입력모드일 때 전압이 0-1.19v는 0, 1.34-3.3v는 1으로 인식된다고 한다.


  라즈베리파이의 GPIO 핀을 이용해서 전압을 넣으면 LED가 켜지고 전압을 없애면 LED가 꺼지는 것으로 매우 단순하다. LED 불 켜기에서와 같이 LED를 저항과 GND에 연결하고 3.3v 에 연결되어 있던 부분을 GPIO핀으로 연결해주면 세팅이 완료 된다. (예제를 그대로 사용하려면 NS-GPIO의 G17 이나 라즈베리파이의 11번째 핀에 연결해야한다.)


  아래 wiringpi.com에 올라와 있는 예제인 'blink.c'의 코드이다. 이것을 복사해서 라즈베리파이에 'blink.c'로 저장하고 'gcc -o blink blink.c -lwiringPi'를 입력해서 컴파일 하고 'sudo ./blink' 명령으로 실행하면 아래 동영상과 같이 LED가 깜빡이는 것을 확인 할 수 있다.

#include <wiringPi.h>
int main (void)
{
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  for (;;)
  {
    digitalWrite (0, HIGH) ;
	delay (500) ;
    digitalWrite (0,  LOW) ;
	delay (500) ;
  }
  return 0 ;
}




  다음 포스트에서는 'blink.c' 프로그램의 코드를 살펴보고, 수정해서 LED로 신호등을 만드는 것을 알아보자.


참조

WiringPi.com

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,