버튼 연결하고 상태 읽기¶
🎯 이 장에서 배우는 것¶
- [ ] 버튼을 브레드보드에 연결할 수 있다
- [ ] 버튼 상태를 코드로 읽을 수 있다
- [ ] 풀다운 저항의 역할을 이해할 수 있다
📚 핵심 개념¶
개념: 디지털 입력¶
지금까지 LED를 켜는 출력을 했다면, 이제 버튼의 신호를 입력받을 차례예요.
버튼은 마치 문의 초인종과 같아요: - 누르면 → 신호가 전달됨 (1) - 안 누르면 → 신호 없음 (0)
피코는 이 0과 1을 읽어서 "아, 버튼이 눌렸구나!"를 판단합니다.
풀다운이 필요한 이유¶
버튼을 안 눌렀을 때, 선이 허공에 떠있으면 0인지 1인지 불안정해요. 내장 풀다운을 사용하면 안 눌렀을 때 확실히 0으로 고정됩니다.
🔨 따라하기¶
Step 1: 버튼 연결하기¶
GP15 ─────┐
│
[버튼]
│
GND ──────┘
버튼의 한쪽을 GP15, 다른 쪽을 GND에 연결하세요.
Step 2: 버튼 상태 읽기¶
코드:
from machine import Pin
import time
button = Pin(15, Pin.IN, Pin.PULL_DOWN) # 내장 풀다운 사용
while True:
state = button.value() # 0 또는 1
print(state)
time.sleep(0.3)
실행 결과:
0
0
1 ← 버튼 누르는 중
1
0
📝 전체 코드¶
from machine import Pin
import time
# 버튼 설정: GP15, 입력 모드, 내장 풀다운
button = Pin(15, Pin.IN, Pin.PULL_DOWN)
while True:
state = button.value()
print("버튼:", state)
time.sleep(0.3)
⚠️ 주의할 점¶
PULL_DOWN을 빼먹으면?
→ 버튼을 안 눌러도 0과 1이 무작위로 출력됩니다. 꼭 Pin.PULL_DOWN을 넣으세요!
✅ 점검하기¶
- 버튼을 누르면
value()가 반환하는 값은?
정답 확인
1 (누르면 1, 안 누르면 0)Pin.PULL_DOWN의 역할은?
정답 확인
버튼을 안 눌렀을 때 0으로 안정시켜줍니다🔗 다음 장 미리보기¶
버튼 상태를 읽을 수 있게 되었어요! 다음 장에서는 버튼을 누르면 LED가 켜지는 프로그램을 만들어봅니다. 🚀