Python 树莓pi运动传感器输入信号
我正在为我的家庭安全系统编写简单的脚本。它由按钮、led、蜂鸣器和传感器组成。它的工作原理如下: -按下按钮,-警报功能打开,-它检测到我一切正常,-再次按下按钮,-警报关闭直到精细-再次按下按钮-问题是:当警报关闭时,如果警报前面有一个波浪,它仍然捕捉到运动,以某种方式保持该信号,警报打开后的第一件事是发现信号,即使传感器没有发出信号 希望我解释清楚。代码如下:Python 树莓pi运动传感器输入信号,python,raspberry-pi,alarm,motion,Python,Raspberry Pi,Alarm,Motion,我正在为我的家庭安全系统编写简单的脚本。它由按钮、led、蜂鸣器和传感器组成。它的工作原理如下: -按下按钮,-警报功能打开,-它检测到我一切正常,-再次按下按钮,-警报关闭直到精细-再次按下按钮-问题是:当警报关闭时,如果警报前面有一个波浪,它仍然捕捉到运动,以某种方式保持该信号,警报打开后的第一件事是发现信号,即使传感器没有发出信号 希望我解释清楚。代码如下: import RPi.GPIO as GPIO import time import os from itertools impor
import RPi.GPIO as GPIO
import time
import os
from itertools import cycle
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(04, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)#switch
GPIO.setup(17, GPIO.OUT)#led
GPIO.setup(18, GPIO.OUT)#buzzer
GPIO.setup(21, GPIO.IN)#sensor
#### definicje funkcji #####
############################
############################
def led_on(czas):
GPIO.output(17,1)
time.sleep(czas)
GPIO.output(17,0)
return;
#led_on(10)
############################
def buzzer_on(czas):
GPIO.output(18,1)
time.sleep(czas)
GPIO.output(18,0)
return;
#buzzer_on(0.1)
############################
def alarm_on():
print "alarm on"
while True:
if (GPIO.input(21)):
print "spotted!"
buzzer_on(0.1)
led_on(0.1)
time.sleep(1)
if (GPIO.input(04) == 1):
next(wlacznik)
alarm_off();
led_on(1)
break
return;
def alarm_off():
print "alarm off"
return;
############################
########################################### PROGRAM ###########################################
###############################################################################################
###############################################################################################
### WLACZNIK_ALARMU ######
wlacznik = cycle(range(2))
print "wartosc wlacznika:"
print next(wlacznik)
prev_input = 0 #toggle dla przycisku
while True:
input = GPIO.input(04)
#if the last reading was low and this one high, print
if ((not prev_input) and input):
print("Button pressed")
if (next(wlacznik) == 1):
led_on(0.1)
time.sleep(0.1)
led_on(0.1)
time.sleep(1)
alarm_on();
#update previous input
prev_input = input
#slight pause to debounce
time.sleep(0.05)
########################################### KONIEC ############################################
GPIO.cleanup()
当警报再次打开时,您的传感器是否可能仅仅检测到一种状态,使其返回真实状态?它是一个有着像锁存器一样的内存的传感器,需要一个信号才能恢复到它的原始状态吗?是的,事实上,现在我开始相信python代码是好的,当我按下开关时的微振动就是问题所在。。