반응형
아래 테스트는 Raspbian GNU/Linux 10 (buster)에서 테스트되었습니다. |
## 출력테스트
라즈베리파이 3B+에서 RPi.GPIO 모듈의 사용법을 살펴보았습니다.
라즈베리파이의 파이썬 모듈인 RPi.GPIO를 사용하여 GPIO 출력 테스트를 해 보려고 합니다.
8개의 LED를 사용하여 순차적으로 LED ON/OFF를 반복하는 동작을 하는 소스코드입니다.
import RPi.GPIO as GPIO
import time
led_array = [12,13,15,19,21,24,35,37]
blink_delay = 0.1
try:
GPIO.setmode(GPIO.BOARD)
for i in range(0,8):
GPIO.setup(led_array[i], GPIO.OUT)
GPIO.output(led_array[i], False)
# Infinite Loop
while (True):
for i in range(0, 8):
GPIO.output(led_array[i], True)
#print(led_array[i], 'pin On')
time.sleep(blink_delay)
GPIO.output(led_array[i], False)
#print(led_array[i], 'pin Off')
time.sleep(blink_delay)
except KeyboardInterrupt:
print("Exiting Program")
except:
print("Error Occurs, Exiting Program")
finally:
GPIO.cleanup()
GPIO를 제어하는 다른 방법으로 shell script를 작성하여 컨트롤 할 수 있습니다.
아래는 위와 동일한 동작을 하는 코드로써 쉘스크립트로 작성되었습니다.
주의하실점은 쉘스크립트에서 사용되는 핀 번호는 BCM핀 번호를 사용합니다.
#!/bin/bash
leds=(18 27 22 10 25 8 19 26) #BCM scheme
while :
do
for pin in ${leds[@]}; do
echo $pin > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${pin}/direction
echo "1" > /sys/class/gpio/gpio${pin}/value
sleep 0.1
echo "0" > /sys/class/gpio/gpio${pin}/value
sleep 0.1
echo $pin > /sys/class/gpio/unexport
done
done
파이썬 소스로 테스트 해 본 출력 테스트 영상입니다.
## 입력테스트
간단히 LED 1개와 스위치 1개를 연결하여 LED는 풀업된 상태로 계속 켜져 있으며, 스위치를 누르면 LED가 꺼지는 간단한 동작을 합니다.
import RPi.GPIO as GPIO
import time
led_pin = 17
sw_pin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(sw_pin, GPIO.IN, GPIO.PUD_UP)
try:
while True:
if(GPIO.input(sw_pin)):
GPIO.output(led_pin, GPIO.HIGH)
else:
GPIO.output(led_pin, GPIO.LOW)
except KeyboardInterrupt:
print("Keyboard interrupt")
except:
print("some error")
finally:
print("clean up")
GPIO.cleanup()
파이썬 소스로 테스트 해 본 입력 테스트 영상입니다.
반응형
'Hardware > Raspberry PI' 카테고리의 다른 글
[라즈베리파이 3B+] SPI 사용하기(SSD1306 OLED 사용) (0) | 2020.12.27 |
---|---|
[라즈베리파이 3B+] I2C 사용하기(SSD1306 OLED 사용) (2) | 2020.12.27 |
[라즈베리파이 3B+] RPi.GPIO 살펴보기(Python) (0) | 2020.12.24 |
[라즈베리파이 3B+] 스크린 캡쳐 사용하기(scrot 사용하기) (0) | 2020.12.16 |
[라즈베리파이 3B+] MicroSD 카드 백업/복원 (0) | 2020.12.16 |
댓글