0
여기 내 코드입니다 :라즈베리 파이 - 메인 루프를 일시 정지 스레드 콜백을 사용하여
#import the GPIO and time package
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(3, GPIO.OUT)
def hold(channel):
GPIO.output(3, True)
time.sleep(5)
GPIO.output(3, False)
GPIO.add_event_detect(2, GPIO.FALLING, callback=hold, bouncetime=300)
try:
while True:
GPIO.output(3, True)
time.sleep(1)
GPIO.output(3, False)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
그래서, 난 할 노력하고있어 것은 빛 깜박임이,하지만 즉시 버튼을 누르면로 즉시 전환 5 초 동안 계속 켜기 전에 다시 시작합니다. if 문을 사용하여 일반 이벤트 검색을 시도했지만 주 루프의 sleep() 함수로 인해 그 시간이 지날 때까지 아무 것도 일어나지 않고 즉시 발생하려고합니다. 제 질문은, 그렇지 않으면 LED가 정상적으로 깜박이는 것처럼 보이기 때문에 메인 루프의 실행을 일시 중지하는 방법이 있습니까, 아니면 이벤트 감지를 사용하여 구현하는 다른 방법이 있습니까?
편집은 : 경우는 명확하지 않았다, 버튼, 2 핀에 연결된 3