콘텐츠로 이동

버튼 연결하고 상태 읽기

🎯 이 장에서 배우는 것

  • [ ] 버튼을 브레드보드에 연결할 수 있다
  • [ ] 버튼 상태를 코드로 읽을 수 있다
  • [ ] 풀다운 저항의 역할을 이해할 수 있다

📚 핵심 개념

개념: 디지털 입력

지금까지 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을 넣으세요!


✅ 점검하기

  1. 버튼을 누르면 value()가 반환하는 값은?
정답 확인1 (누르면 1, 안 누르면 0)
  1. Pin.PULL_DOWN의 역할은?
정답 확인버튼을 안 눌렀을 때 0으로 안정시켜줍니다

🔗 다음 장 미리보기

버튼 상태를 읽을 수 있게 되었어요! 다음 장에서는 버튼을 누르면 LED가 켜지는 프로그램을 만들어봅니다. 🚀