3.1.임베디드 보드를 위한 기본기 - LED 점멸


LED ON/OFF - 천리길도 한 걸음부터

LED 연결하기

공학정보처리를 비롯한 프로그래밍 언어를 배우는 수업에서 프로그래밍용 언어를 배울 때 Hello World를 띄워보았을 것이다. 임베디드 보드에서 Hello World에 해당하는 것은 LED를 깜빡여보는 것이다.

GPIO 확장 보드와 브레드보드를 활용하여 용이하게 회로 구성을 수행해볼 것이다. 아래 사진을 참고하여 라즈베리파이, 플랫케이블, GPIO 확장보드, 브레드보드를 연결하자. 플랫 케이블은 라즈베리파이를 덮지 않는 방향으로 연결한다.

-GPIO 확장 보드 꽂는 방법 예시



아래의 사진처럼 LED의 긴 다리를 GPIO18 핀에, 짧은 다리를 GND에 꽂는다.

-LED 꽂는 방법 예시



LED 코드 작성하기

앞서 main.c 템플릿을 불러온 바가 있다. 우선 이 템플릿을 다른 곳에 저장한다. 나중을 위하여 찾기 쉽게 바탕화면에 폴더를 생성한다. File -> Save As -> 왼쪽의 Desktop -> 오른쪽 위의 Create Folder 를 차례대로 누르면 새 폴더의 이름을 지정할 수 있다. 그리고 새로 생성된 폴더 안으로 들어가서 오른쪽 아래의 Save를 누른다. 파일명은 지정할 때 확장자 .c가 없어지지 않도록 주의한다.

저장이 끝났으면 아래의 코드를 따라서 작성한다.

/* EXAMPLE: LED BLINK */

#include <stdio.h>                  // Standard I/O
#include <wiringPi.h>               // wiringPi

#define LED 18                      // LED pin 번호 18

int main(void)
{
	printf("BLINK\n");              // 터미널에 "BLINK" 출력

	wiringPiSetupGpio();            // GPIO 초기화
	pinMode(LED, OUTPUT);           // GPIO18을 출력핀으로 사용

	while (1)                       // while문 시작
	{
		digitalWrite(LED, HIGH);    // LED 켜기
		delay(2000);                // millisecond 단위로 대기
		digitalWrite(LED, LOW);     // LED 끄기
		delay(2000);
	}                               // end of while
	return 0;
}

코드를 작성하였으면, 라즈베리파이가 코드를 이해하고 실행할 수 있도록 Build -> Build 를 차례대로 누르거나 단축키 F9를 누른다. Geany 창의 아래에 Compilation finished successfully가 나타나는지 확인한다. 그리고 Build -> Execute 를 누르거나 단축키 F5를 누른다. 그러면 새로운 콘솔 창이 나타나고, LED가 깜빡이는 것을 확인할 수 있다. delay(2000)의 숫자를 1000, 500 등으로 줄여보면 LED가 더 빠르게 깜빡이는 것을 볼 수 있다.

[한 번 해보기] 숫자를 100, 50, 20 등 밑으로 계속 줄여나가면 어떤 일이 일어나는지 확인해보자. 어떤 현상이 발생했나? 왜 그런 현상이 발생할까?