diff --git a/tutorial/8.buzzer_control.py b/tutorial/8.buzzer_control.py new file mode 100644 index 0000000..49e4c50 --- /dev/null +++ b/tutorial/8.buzzer_control.py @@ -0,0 +1,51 @@ +import RPi.GPIO as GPIO +import time + +# --- GPIO 핀 설정 --- +BUZZER_PIN = 25 # 부저가 연결된 GPIO 핀 번호 (BCM 모드) + +# GPIO 모드 설정 (BCM 모드 사용) +GPIO.setmode(GPIO.BCM) + +# 부저 핀을 출력으로 설정 +GPIO.setup(BUZZER_PIN, GPIO.OUT) +print(f"부저 핀 (GPIO {BUZZER_PIN}) 설정 완료.") + +# --- 부저 제어 함수 --- +def buzz_on(): + """부저를 켜는 함수""" + GPIO.output(BUZZER_PIN, GPIO.HIGH) + print("부저 ON") + +def buzz_off(): + """부저를 끄는 함수""" + GPIO.output(BUZZER_PIN, GPIO.LOW) + print("부저 OFF") + +# --- 부저 테스트 --- +try: + print("부저 테스트 시작 (5초간 ON, 1초간 OFF 반복)") + for i in range(3): # 3번 반복 + buzz_on() + time.sleep(3) # 1초간 소리 유지 + buzz_off() + time.sleep(0.5) # 0.5초간 대기 + + print("\n짧게 '삐빅' 소리 내기") + buzz_on() + time.sleep(0.1) + buzz_off() + time.sleep(0.1) + buzz_on() + time.sleep(0.1) + buzz_off() + + print("\n테스트 종료. 필요하면 Ctrl+C로 종료하세요.") + # 실제 프로젝트에서는 여기서 다른 작업을 하거나 무한 루프를 돌 수 있습니다. + # 예: while True: pass + +except KeyboardInterrupt: + # Ctrl+C 입력 시 GPIO 정리 + print("\n프로그램 종료. GPIO를 정리합니다.") +finally: + GPIO.cleanup() # 모든 GPIO 설정 초기화