새소식

라즈베리파이

라즈베리파이 GPIO를 이용하여 led 제어 (파이썬 코드 포함)

  • -

저번에는 C를 이용한 led제어를 알아봤는데요

이번에는 파이썬으로 제어하는 방법을 알아보겠습니다

 

파이썬에서 GPIO를 이용해 led를 제어하기 위해서

RPi.GPIO를 이용하면 됩니다

물론 이외에도 WiringPi-Python, RPIO등이 있습니다

RPi.GPIO 모듈은 BCM C library와 호환되는 API를 이용할 수 있게 해줍니다

 

RPi.GPIO 사용법

1. import를 한다 (import RPi.GPIO)

2. 어떠한 모드로 사용할지 정한다 ( GPIO.setmode(GPIO.BCM) or GPIO.setmode(GPIO.BOARD)

3. 사용할 GPIO 헤더 핀을 지정한다 (GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

4. 해당 핀 객체에 데이터를 읽고 쓰기를 수행한다. (GPIO.output(18, GPIO.HIGH) or GPIO.output(18, GPIO.LOW)

쉽죠???

 

<라즈베리파이 led 연결 회로>

회로는 다음 글의 회로를 참고하시기 바랍니다

제어코드가 c냐 python이냐만 다르고 회로는 같습니다

https://hoho325.tistory.com/215

 

라즈베리파이4b LED 연결 및 키고 끄는(On/Off) 방법

라즈베리파이4b에 브레드보드를 이용하여 LED를 연결하고 그 led를 제어하는 방법에 대해서 알아보겠습니다 LED(Light Emitting Diode) 우선 LED를 살펴보면 위와 같이 생겼어요 짝다리를 집고 있는 led 자

hoho325.tistory.com

 

저는 위와 같이 wPi 번호로는 1번 BCM 번호로는 18번 GPIO 핀을 이용했습니다

위 글에서도 같은 핀을 이용했으므로 똑같이 꽂으시면 됩니다

아니면 자기가 원하는 곳에 꽂으셔도 됩니다. BCM 번호만 변경해주시면 되기 때문이죠

 

라즈베리파이 led 제어 파이썬 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
LED = 18
 
GPIO.setup(LED, GPIO.OUT, initial=GPIO.LOW)
 
try:
    while 1:
       GPIO.output(LED, GPIO.HIGH) # 불 켜기
        time.sleep(0.5)
       GPIO.output(LED, GPIO.LOW) # 불 끄기
        time.sleep(0.5)
 
except KeyboardInterrupt:
    pass
 
GPIO.cleanup()
 
cs

 

위 코드는 18번 핀을 사용하여 불을 0.5초 간격으로 껏다 켰다 하는 프로그램입니다

여기서 끝에 GPIO.cleanup()을 꼭 넣어주시기 바랍니다

넣지 않으면 다음번 사용시에 핀이 사용중(busy)라는 문구가 뜨면서 정상작동하지 않을 수 있습니다

그리고 처음 GPIO.setup 에서 initial 값을 GPIO.LOW로 한 것은

초기 상태를 led가 꺼진 상태로 하기 위함입니다!!

그리고 또 주의할점은 GPIO.setmode(GPIO.BCM) 입니다

저는 BCM 번호를 사용하기 위해서 GPIO.BCM을 했습니다

GPIO.BOARD로 설정했다면  아마 physical 번호를 써야할 것입니다.

 

GPIO.HIGH 는 1값을 의미한다고 보시면 됩니다. 즉 1값을 줘서 불을 키는 것입니다

반대로 GPIO.LOW는 0을 의미하고 불을 끄게 됩니다

 

위 사항을 모두 이해하셨다면 이제 led는 마음껏 제어하실 수 있습니다

 

코드를 제대로 작성하고 연결을 정상적으로 마쳤다면

위와 같이 반짝반짝 이는 것을 보실 수 있습니다

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.