안녕하세요.
이번 내용은 GPIO 핀을 통한 입력과 출력을 Button과 LED를 통해 테스트해 보는 것입니다.
추가로 준비할 것은 3V 혹은 5V LED 1개와 택트(Tack) 스위치 1개, 저항 1개(50Ω~330Ω), M-M 점퍼 3~4개가 필요합니다.
디지털 입력과 출력 사용하기
이제 기본 사항을 알았으므로 Raspberry Pi Pico로 외부 LED를 제어하고 버튼에서 입력을 읽는 것을 배울 수 있습니다.
아래 이미지와 같이 약 50~330Ω 사이의 저항, LED와 한 쌍의 M-M 점퍼 리드를 사용하여 Raspberry Pi Pico와 연결합니다.
(추가 내용 :
- LED마다 방향성이 있으므로 멀티 메타기로 확인하거나 육안으로 LED를 안을 볼 때 면적이 작은 쪽이 +로 볼 수 있습니다. 그러나 LED 제조사마다 다른 수 있으므로 육안으로 확인하는 것은 참조 정도만 하시면 됩니다.
LED의 한쪽은 GND에 연결되어 있으며 다른 한쪽은 + 전원으로 LED를 제어할 수 있는 GP15핀이 연결되어 있습니다.
- 아래 사진은 330 Ω 저항이 없어서 1KΩ 저항을 사용했습니다.)
이 예에서 LED는 핀15에 연결되어 있습니다. 만약 다른 핀을 사용하는 경우, "Raspberry Pi Pico 만나기(Meet Raspberry Pi Pico)" 섹션의 핀 배치 다이어그램에서 번호를 찾는 것을 기억하시면 됩니다.
보드에 LED를 깜박이는 것과 동일한 코드를 사용하되 핀 번호를 GP15로 변경합니다.
from machine import Pin, Timer
led = Pin(15, Pin.OUT)
timer = Timer()
def blink(timer):
led.toggle()
timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)
프로그램을 실행하면 LED가 깜박이기 시작해야 합니다. 작동하지 않으면 배선을 확인하여 LED가 연결되어 있는지 확인합니다.
다음으로 버튼을 사용하여 LED를 제어해 보겠습니다.
아래 다이어그램과 같이 회로에 버튼을 추가합니다.
(추가 내용 : 4핀 택트(Tact) 스위치를 사용할 경우, 두 개의 핀은 연결(Close) 되어 있고 다른 한쪽은 개방(Open)된 상태가 되어 있기 때문에 버튼을 누르지 않은 상태에서 스위치 핀을 멀티 테스트기로 확인 후 연결하시면 됩니다.)
버튼은 GP14 핀과 Raspberry Pi Pico의 3.3V 핀에 연결됩니다. 즉, 핀을 설정할 때 MicroPython에서 입력 핀이고 풀다운으로 설정하고 알리는 것이 필요합니다
새로운 파일을 만들어 코드를 추가합니다.
from machine import Pin
import time
led = Pin(15, Pin.OUT)
button = Pin(14, Pin.IN, Pin.PULL_DOWN)
while True:
if button.value():
led.toggle()
time.sleep(0.5)
코드를 실행한 다음 버튼을 누르면 LED가 켜지거나 꺼집니다. 버튼을 누르고 있으면 깜박입니다.
다음 내용은 "PWM을 이용한 LED 밝기 제어하기(Control LED brightness with PWM )"
감사합니다.
<참고 사이트>
1. Getting started with Raspberry Pi Pico (Use digital inputs and outputs)
https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico/6