버튼 누르면 소리 나게 하기¶
🎯 이 장에서 배우는 것¶
- [ ] 버튼을 누르면 소리가 나는 프로그램을 만들 수 있다
- [ ] LED와 부저를 동시에 제어할 수 있다
📚 핵심 개념¶
개념: 입력과 출력 연결하기¶
버튼(입력)과 부저(출력)를 연결하는 건 마치 초인종과 같아요. 버튼을 누르면 "딩동~" 소리가 나고, 손을 떼면 소리가 멈추죠!
flowchart LR
A[🔘 버튼 누름] --> B{if 눌림?}
B -->|Yes| C[🔊 소리 ON]
B -->|No| D[🔇 소리 OFF]
핵심 로직: 버튼 상태를 읽고 → 그에 따라 부저를 제어한다!
🔨 따라하기¶
Step 1: 버튼으로 부저 제어하기¶
코드:
from picozero import Speaker, Button
from time import sleep
speaker = Speaker(15) # 부저: GP15
button = Button(14) # 버튼: GP14
while True:
if button.is_pressed:
speaker.on() # 버튼 누르면 소리
else:
speaker.off() # 떼면 멈춤
sleep(0.01)
실행 결과: 버튼을 누르는 동안만 "삐~" 소리가 납니다!
Step 2: LED도 함께 켜기¶
코드:
from picozero import Speaker, Button, LED
from time import sleep
speaker = Speaker(15)
button = Button(14)
led = LED(16) # LED 추가!
while True:
if button.is_pressed:
speaker.on()
led.on() # 소리 + 빛
else:
speaker.off()
led.off()
sleep(0.01)
실행 결과: 버튼을 누르면 빛도 나고 소리도 나는 장치 완성! 🎉
📝 전체 코드¶
from picozero import Speaker, Button, LED
from time import sleep
speaker = Speaker(15)
button = Button(14)
led = LED(16)
while True:
if button.is_pressed:
speaker.on()
led.on()
else:
speaker.off()
led.off()
sleep(0.01)
⚠️ 주의할 점¶
sleep(0.01)꼭 넣기: 없으면 피코가 너무 빠르게 반복해서 문제가 생길 수 있어요- 부저가 안 울리면: GP15 핀 연결과 GND 확인!
✅ 점검하기¶
- 버튼을 누르는 동안만 소리가 나게 하려면 어떤 조건을 사용하나요?
정답 확인
if button.is_pressed: 조건문 사용- LED와 부저를 동시에 켜려면 어떻게 하나요?
정답 확인
같은 if문 안에speaker.on()과 led.on()을 함께 작성🔗 다음 장 미리보기¶
다음 장에서는 버튼으로 다양한 음을 연주해봅니다. 도레미 피아노를 만들어볼까요? 🎹