36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
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()
|