我正在尝试使用Raspberry Pi B +型创建一个程序,该程序使用超声波测距模块来控制继电器模块。我将使用我创建的这个东西来检测传送带何时停止移动。
我的程序将依靠超声波测距模块来连续测量距离。由于传送带上有物体,因此当物体经过超声波测距模块时,距离将连续变化。因此,如果传送带停止移动,则超声波测距模块测得的距离将保持不变。当这种情况持续5秒钟时,我的程序将关闭继电器模块。
我的代码目前无法正常工作。问题是什么?到目前为止,这就是我所拥有的。 (还请注意,我正在为超声测距模块和中继模块使用GPIO扩展板。)
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
TRIG = 11
ECHO = 12
RelayPin = 11 # pin11
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.HIGH)
def distance():
GPIO.output(TRIG, 0)
time.sleep(0.000002)
GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)
while GPIO.input(ECHO) == 0:
a = 0
time1 = time.time()
while GPIO.input(ECHO) == 1:
a = 1
time2 = time.time()
during = time2 - time1
return during * 340 / 2 * 100
def loop():
while True:
dis = distance()
print dis, 'cm'
print ''
time.sleep(5)
dis12 = distance()
if dis = dis2
GPIO.output(RelayPin, GPIO.LOW);
def destroy():
GPIO.output(RelayPin, GPIO.HIGH)
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
destroy()