parent
f915e69ccb
commit
05f2f6a8f8
|
|
@ -0,0 +1,35 @@
|
|||
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()
|
||||
Loading…
Reference in New Issue