import RPi.GPIO as GPIO import time # --- GPIO 핀 설정 (BCM 넘버링) --- button_pins = { "버튼1": 6, # GPIO 6 "버튼2": 13, # GPIO 13 "버튼3": 19, # GPIO 19 "버튼4": 26 # GPIO 26 } # 라즈베리파이 보드 넘버링 모드 설정 GPIO.setmode(GPIO.BCM) # 각 버튼 핀을 입력으로 설정하고 내부 풀업 저항 활성화 for name, pin in button_pins.items(): # 여기서 PUD_DOWN 대신 PUD_UP 사용 GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) print(f"{name} (GPIO {pin}) 핀 설정 완료.") # --- 버튼 상태 읽기 --- try: while True: for name, pin in button_pins.items(): # 버튼이 눌렸을 때 (풀업 저항 사용 시 LOW) if GPIO.input(pin) == GPIO.LOW: print(f"{name} (GPIO {pin}) 버튼이 눌렸습니다!") # 여기에 각 버튼에 대한 특정 동작을 추가할 수 있습니다. # 예: if name == "버튼1": print("첫 번째 버튼 기능 실행!") time.sleep(0.1) # 0.1초 대기하여 CPU 과부하 방지 및 채터링 감소 except KeyboardInterrupt: # Ctrl+C로 종료 시 GPIO 설정 초기화 print("\n프로그램을 종료합니다.") GPIO.cleanup()