gpt4 book ai didi

python - 微蟒 HC-SR04 - ESP8266

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:26 24 4
gpt4 key购买 nike

我正在尝试让 NodeMCU ESP8266 开发板与 HC SR04 超声波传感器配合使用。我的读数一直为“0”,但事实并非如此。

我将传感器的接地和 5v 引脚连接到 5v 源,以及 GPIO 引脚 4 和 5 上的 Echo 和 Trigger 引脚。理论上,一切都应该正常,但我一直得到“0”。也许我的代码有问题?见下文:

import machine
import sys
import time
time.sleep(1) #Just for everything to settle down

while 1:

pinTrigger = machine.Pin(5, machine.Pin.OUT) #defining the pins
pinEcho = machine.Pin(4, machine.Pin.IN) #defining the pins

pinTrigger.high()
time.sleep(0.00001)
pinTrigger.low()

time.sleep(0.5)

start = time.time()
stop = time.time()

while pinEcho ==0:
start = time.time() #Starting the time when sending out the signal

while pinTrigger ==1:
stop = time.time() #Stopping the time when the signal comes back

elapsed = stop-start #working out the time.

distance = elapsed * 34000 #multiply by speed of sound to get distance

distance = distance / 2 #divide by 2 becuase it was there and back

print ("Distance : %.1f" % distance)

sys.exit()

请帮忙。

最佳答案

解决问题的方法如下:

import machine
import utime


while True:
trig=machine.Pin(5, machine.Pin.OUT)
trig.off()//stop reading
utime.sleep_us(2)
trig.on()
utime.sleep_us(10)
trig.off()
echo=machine.Pin(4, machine.Pin.IN)
while echo.value() == 0:
pass
t1 = utime.ticks_us()
while echo.value() == 1:
pass
t2 = utime.ticks_us()
cm = (t2 - t1) / 58.0
print(cm)
utime.sleep(2)

在互联网的其他地方,他们建议您在回声和 NodeMCU 板 (ESP8266) 上的引脚之间放置一个电阻器,这会使测量结果非常糟糕。所以现在我让它 100% 工作,5v 和接地(到 HC-SR04)连接到我的 RPi GPIO,触发器和回声连接到 NodeMCU 板引脚。

另一件需要注意的事情是,我在 1 秒(代码的最后一行)进行读数,将其更改为 2 秒使代码更加准确。

希望这对某人有帮助。

这是图表:

Working Diagram

关于python - 微蟒 HC-SR04 - ESP8266,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com