본문 바로가기

코딩/파이썬과 라즈베리파이

[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 015. LED 제어 (켜고 끄기)

라즈베리 파이의 GPIO 핀에 LED를 연결한 후 LED를 켜고 끄는 코딩을 해 본다.

 

  • 파이썬 코드는 Thonny 프로그램으로 작성한다.
  • LED 제어를 위해 gpiozero 파이썬 모듈을 사용한다.
  • 일정 시간 동안 코드의 실행을 멈추기 위해 time 파이썬 모듈의 sleep 함수를 사용한다.
  • GPIO 18(GPIO 해더의 12번 핀)로 LED를 제어한다.

LED 연결은 아래와 같다.

 

 

LED 연결을 완료한 후 아래의 코드를 작성, 실행해 본다.

 

from time import sleep
from gpiozero import LED

led_18 = LED(18)

for n in range(10):
    led_18.on()
    sleep(.5)
    led_18.off()
    sleep(.5)

 

gpiozero 파이썬 모듈은 기본적으로 설치되어 있는 모듈이다. 이는 터미널 창에서 pip3 list로 간단히 확인할 수 있다.

 

 

gpiozero 모듈의 클래스 LED로 GPIO 핀 제어를 위한 객체를 생성한다. 객체 생성 시 전달하는 핀 번호는 GPIO 해더의 핀 번호가 아닌 BCM (Broadcom) 번호를 사용한다. gpiozoero 모듈에 대한 자세한 정보는 아래의 경로에서 확인한다.

https://gpiozero.readthedocs.io/en/stable/index.html

 

클래스 LED의 객체는 아래의 객체 변수나 메서드 사용이 가능하다.

 

  • is_lit  -> True는 ON 상태를, False는 OFF 상태를 의미
  • pin  -> 핀 정보
  • value  -> 1은 ON 상태를, 0은 OFF 상태를 의미하며 쓰기 가능
  • on()  -> ON 상태로 만듬
  • off()  -> OFF 상태로 만듬
  • toggle()  -> ON 상태면 OFF로, OFF 상태면 ON으로 만듬

on(), off() 메서드를 value 객체 변수로 대체한 코드는 아래와 같다.

 

from time import sleep
from gpiozero import LED

led_18 = LED(18)

print(led_18.pin)
print(led_18.is_lit)

for n in range(10):
    led_18.value = 1
    sleep(.5)
    led_18.value = 0
    sleep(.5)