GPIO 모듈을 활용하여 LED 제어해보자.
GPIO은(general-purpose input/output, GPIO)는 다용도 입출력이란 뜻으로 입력과 출력을 제어할 수 있다.
핀 번호는 BCM 모드로 설정한다.
핀 번호 11번이 BCM 핀번호로는 17번: 컬러 RED 연결.
핀 번호 13번이 BCM 핀번호로는 27번: 컬러 BLUE를 연결.
핀 번호 15번이 BCM 핀번호로는 22번: 컬러 GREEN를 연결.
마지막으로 그라운드(G)핀은 0V에 연결.
각각의 핀을 출력(OUTPUT)으로 설정하고, 각 핀의 출력을 LOW와 HIGH를 1초에 한번씩 번갈아 가며 LED를 ON/OFF 시킬 수 있도록 설정한다.
import RPi.GPIO as GPIO
from time import sleep
# R G B
pins = [17, 27, 22]
GPIO.setmode(GPIO.BCM)
GPIO.setup(pins[0], GPIO.OUT)
GPIO.setup(pins[1], GPIO.OUT)
GPIO.setup(pins[2], GPIO.OUT)
while True:
GPIO.output(pins[0], GPIO.LOW)
GPIO.output(pins[1], GPIO.LOW)
GPIO.output(pins[2], GPIO.LOW)
sleep(1)
GPIO.output(pins[0], GPIO.HIGH)
GPIO.output(pins[1], GPIO.HIGH)
GPIO.output(pins[2], GPIO.HIGH)
sleep(1)
다음으로 R,G,B 값을 LOW, HIGH를 바꾸어 가며 RED, BLUE, GREEN을 만들어 점멸하도록 설정한다.
import RPi.GPIO as GPIO
from time import sleep
# R G B
pins = [17, 27, 22]
GPIO.setmode(GPIO.BCM)
GPIO.setup(pins[0], GPIO.OUT)
GPIO.setup(pins[1], GPIO.OUT)
GPIO.setup(pins[2], GPIO.OUT)
while True:
# RED
GPIO.output(pins[0], GPIO.LOW)
GPIO.output(pins[1], GPIO.HIGH)
GPIO.output(pins[2], GPIO.HIGH)
sleep(1)
# BLUE
GPIO.output(pins[0], GPIO.HIGH)
GPIO.output(pins[1], GPIO.LOW)
GPIO.output(pins[2], GPIO.HIGH)
sleep(1)
# GREEN
GPIO.output(pins[0], GPIO.HIGH)
GPIO.output(pins[1], GPIO.HIGH)
GPIO.output(pins[2], GPIO.LOW)
sleep(1)
도문선 부장님의 1개짜리 led 깜빡이기
from Jetson.GPIO.gpio import HIGH
import RPi.GPIO as GPIO
import time
output_pin = 12
def main():
GPIO.setmode(GPIO.BCM)
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
print("Starting demo now! Press CTRL+C to exit")
curr_value = GPIO.HIGH
try:
while True:
time.sleep(1)
print("Outputting{} to pin{}".format(curr_value, output_pin))
GPIO.output(output_pin, curr_value)
curr_value ^= GPIO.HIGH
finally:
GPIO.cleanup()
if __name__ == '__main__':
main()
@현욱