[RaspberryPI] LED 제어
GPIO
PIN
: 회로가 보호되어있는 검은색 플라스틱이 외부와 연결
할 수 있는 부분으로 철
로 구성되어있다.
GPIO 핀
: 칩 제작사가 용도를 정하지 않고, 자유롭게 사용하라고 제작된 핀
라즈베리파이 GPIO 핀 확인 사이트
Library를 통해 Wrapping된 함수를 사용하여 GPIO를 제어할 예정
라즈베리파이 공식 LIB
1. gpiozero(쉬움) - RPi.GPIO를 Wrapping한 LIB
2. RPI.GPIO(보통) - 세부적인 설정
GPIO핀은 출력전압이 3.3V
이다.
GPIO 제어 : H/W와 연결된 장치들에게 신호를 보내고, 신호를 전달 받는
가장 간단한 방법
LED 연결
라즈베리파이는 출력전압이 5V
와 3.3V
가 있습니다.
LED 동작 전압 : 2.1V
이고, 동작 전류 : 20mA
이다. 옴의 법칙과 키로히호프의 법칙에 의해 저항을 계산하면,
1. 5V : (5 - 2.1)/0.02 = 145옴 => `220옴` 저항을 사용
2. 3.3V : (3.3 - 2.1) / 0.02 = 60옴 => `220옴` 저항 사용
회로
다음과 같이 회로를 연결 하면 불이 켜집니다
GPIO핀으로 LED 제어
Thonny(쏘니)
라즈베리파이의 파이썬 IDE로, Regular 모드
를 사용할 것입니다.
LED 깜빡이기
from gpiozero import LED
from time import sleep
red = LED(17) # 17번핀에 연결
while True:
red.on()
sleep(1)
red.off()
sleep(1)
LED 깜빡임 빨라지기
from gpiozero import LED
from time import sleep
red = LED(17)
for i in range(1,100,1): # 1s ~ 10ms까지 빠르게 깜빡이기
red.on()
sleep(1/i)
red.off()
sleep(1/i)
LED 3개 켜기
from gpiozero import LED
from time import sleep
ledset = [LED(17),LED(27),LED(22)]
while True:
for led in ledset: # 17번핀 LED -> 27번핀 LED -> 22번핀 LED
led.on()
sleep(0.5)
led.off()
sleep(0.5)
입력된 숫자에 맞는 LED만 켜기
from gpiozero import LED
from time import sleep
ledset = [LED(17),LED(27),LED(22)]]
mode = [0,0,0]
def LEDToggle(n):
if mode[n] == 0:
ledset[n].on()
else :
ledset[n].off()
mode[n] = not mode[n] # on/off 확인용도
while True:
print("LED >> ")
n = int(input()) # 문자로 입력받기 때문에 정수로 바꿔주기
LEDToggle(n-1) # 0번 index부터 시작하니 -1 해주기
Author And Source
이 문제에 관하여([RaspberryPI] LED 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev-hoon/tqviq6tt저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)