我一直在使用4针HC-SRO4超声波传感器,一次最多4个。我一直在开发代码,使其中4个传感器同时工作,在重新组织电线安装在一个项目上,并使用基本代码运行一个,我不能使传感器的功能。代码如下:
import RPi.GPIO as GPIO
import time
TRIG1 = 15
ECHO1 = 13
start1 = 0
stop1 = 0
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(TRIG1, GPIO.OUT)
GPIO.output(TRIG1, 0)
GPIO.setup(ECHO1, GPIO.IN)
while True:
time.sleep(0.1)
GPIO.output(TRIG1, 1)
time.sleep(0.00001)
GPIO.output(TRIG1, 0)
while GPIO.input(ECHO1) == 0:
start1 = time.time()
print("here")
while GPIO.input(ECHO1) == 1:
stop1 = time.time()
print("also here")
print("sensor 1:")
print (stop1-start1) * 17000
GPIO.cleanup()
在更换了线路、传感器和电路中的其他组件(包括GPIO引脚)之后,我查看了代码,并向终端添加了print语句,以查看代码的哪些部分正在运行。第一份打印报表
print("here")
执行一致,但第二个print语句print("also here")
没有执行,我无法解释。换句话说,为什么第二个while循环没有被执行?这里提出的其他问题对我的问题不起作用。任何帮助都将不胜感激。你知道吗
谢谢你, H
下面是Gaven MacDonald的一个教程,可能对这方面有所帮助:https://www.youtube.com/watch?v=xACy8l3LsXI
首先,带有
ECHO1 == 0
的while块将永远循环,直到ECHO1变为1。在这段时间里,里面的代码会被一次又一次地执行。您不希望一次又一次地设置时间,因此可以执行以下操作:另外,作为最佳实践,您应该使用try-except块来安全地退出代码。例如:
相关问题 更多 >
编程相关推荐