我正在使用工业PIR传感器(ekmc1603111) 1?s=industrial&ie=UTF8&qid=1535017218&sr=8-1&keywords=pir+sensor+ekmc1603111]。这是一种数字传感器,带有继电器在raspberry pi上实现实验室自动化,当检测到运动时,实验室值会上升到高n个继电器。当它转到低继电器时,我的问题如下:当检测到运动或实验室传感器中的人在多米上给出4-5V值时,它正确的n个继电器就高了,但是当没有运动n时--没有人在场传感器仍然给我2-3V而不是零,这里的n个继电器总是设置为低。(这里的继电器必须设置为低,所以请帮助我摆脱这个问题,VCC-5V,GND-GND,信号GPIO 18,继电器-GPIO 5,6。预先谢谢。下面是我的密码。
from threading import Thread, Event import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN)
GPIO.setup(5,GPIO.OUT)
GPIO.setup(6,GPIO.OUT)
class MyThread(Thread):
def __init__(self, timeout=20):
super(MyThread, self).__init__()
self.intruder_spotted = Event()
self.timeout = timeout
self.daemon = True
def run(self):
while True:
if self.intruder_spotted.wait(self.timeout):
self.intruder_spotted.clear()
print("Intruder")
GPIO.output(5,GPIO.HIGH)
GPIO.output(6,GPIO.HIGH)
else:
print("No intruder")
GPIO.output(5,GPIO.LOW)
GPIO.output(6,GPIO.LOW)
t = MyThread(20)
try:
t.start()
while True:
i=GPIO.input(18)
if i==1:
t.intruder_spotted.set()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
exit(0)发布于 2018-08-26 00:34:26
尽管传感器是为高达7V的工作电压而设计的,但实际上PI的SoC的GPIO引脚不能容忍5V!这意味着您必须从3.3V启动传感器,或者继续从5V供电,但是在这种情况下,您需要在传感器的输出和Pi的GPIO之间添加一个分压器。
我无法在数据表中找到有关低信号电压水平的信息,但是,我相信从3.3V给传感器可以解决这个问题。如果没有,您可以使用运算放大器来解决这个问题。
https://stackoverflow.com/questions/51985916
复制相似问题