여기에서는 LED를 켜고 끄는 실험을 해 보도록 한다. LED는 파이썬 코드가 GPIO를 동작시키는 것을 시각적으로 확인할 수 있는 가장 간단한 도구이다. 다음 그림과 같이 LED를 저항과 직결한 뒤 12번 핀에 연결한다. 저항은 200Ω (혹은 그 이상) 이고 이것은 LED에 과전류가 흐르는 것을 막아주는 역할을 한다. LED는 극성이 있는 소자이다. 다리가 긴 쪽이 anode(+극), 짧은 쪽이 cathod(-극)이므로 연결할 때 방향을 주의해야 한다. 잘못 연결하면 LED가 켜지지 않는다. 짧은 다리는 저항과 직결하여 6번 핀(GND)에 연결하고 긴 쪽은 12번 핀과 연결하면 된다.


그림 9.2.1 LED 결선도 (긴 다리를 12번 핀에 연결)


 GPIO핀으로 LED를 제어하기 위해서 이 핀을 먼저 GPIO.setup()를 이용하여 출력으로 설정해야 한다. 그 이후에 GPIO.output()함수로 GPIO.HIGH 신호를 내보내면 LED가 켜지고 GPIO.LOW 신호를 내보내면 LED가 꺼진다.


blink.py

import RPi.GPIO as GPIO
import time

led = 12
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led, GPIO.OUT)

for k in range(10):
   GPIO.output(led, GPIO.HIGH)
   time.sleep(0.5)
   GPIO.output(led, GPIO.LOW)
   time.sleep(0.5)

GPIO.cleanup()


이 프로그램은 LED를 10번 점멸시키고 난 뒤 종료된다. 이것을 실행하려면 다음과 같이 하면 된다.


sudo python3 blink.py


전에 언급한 바와 같이 반드시 앞에 sudo 명령을 붙여야 한다는 것이 유의하자.


 한 가지 언급할 것은 저항 값을 선택하는 방법이다. 데이터 쉬트에 의하면 LED에는 10mA 정도 흐르도록 하면 되고 이때 LED의 전압 강하가 1.7V 정도이다. 따라서 오옴의 법칙에 의해서 R = (3.3-1.7)/0.01 = 160Ω  을 얻을 수 있다. 이 결과로부터 160Ω 이상의 저항을 선택하되 너무 저항 값이 크면 불빛을 눈으로 확인하기 어려우므로 160~500Ω 범위의 저항을 선택하면 된다.

원문링크

Posted by 살레시오
,