52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
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 설정 초기화
|