新闻如何使用超声波传感器与树莓皮皮

2021年1月29日,
1
0
10
0
我有一个问题,我认为是代码,但它似乎是一个布线问题,连接似乎是间歇性的,所以它只有在我拨弄电线时才工作。
奇怪的是,我把所有的电线都换了,甚至换了板,它还是不能运行。

更新,原来我有5v版本的传感器HC-SR04,但我也有US-015传感器也5v工作完美。
最后的编辑:
K
2021年2月11日
1
0
10
0
你可以使用5V版本,例如:HY-SRF05。只是你需要改变3V3品脱到VBUS引脚,你必须通过USB端口馈电。(请注意,在这种情况下,你必须为ECHO线使用分压器。)
D
2021年2月16日
1
0
10
0
如果您将Trigger与引脚16对齐并echo与17对齐,您可以节省3线,这将把GND与GND放在一起。
如果需要5V并通过micro-USB供电,则需要从3V3或VSYS/VBUS连接一根电线。
ZukaBlue
2021年4月16日
1
0
10
0
我很好奇这些代码是如何工作的。

我一直在看这个部分:

echo.value() == 0:
signaloff = utime.ticks_us ()
echo.value() == 1:
signalon = utime.ticks_us ()
Timepassed = signalon - signaloff
Dist = (timepassed * 0.0343) / 2


我一直在想这到底是怎么回事。对我的大脑来说,这似乎只是测量传入脉冲的长度。如果我错了,有人纠正我,或者让我知道这是怎么回事,但这是我的逻辑-

  1. 发出脉冲
  2. 当我们没有检测到一个接收到的脉冲时,保持更新一个数字。例:
    1. 1001 1002 1003 10041005
  3. 当我们收到一个脉冲时,更新一个不同的数字。例:
    1. 1006、1007、1008
  4. 从第二项减去第一项:
    1. 1008 - 1005 = 3
  5. 这只是测量了我们实际检测到的脉冲返回的微秒数,而不是脉冲反弹所花的时间。
我怎么会想错了呢?我是否误解了utime.ticks_us()的作用?这只是从它被调用的时间开始计数,然后当它开始检测到一个高信号时开始再次计数吗?我的想法是,在从触发器发送一个高脉冲之后,立即对utime.ticks_us()进行一次测量。它会找到一些微秒值并将其存储为一个值,然后我们等待,直到我们得到一个高脉冲,在那之前什么都不做。当我们得到一个高脉冲时我们用微秒来标记这个高脉冲的开始,然后我们可以找到初始输出脉冲和返回脉冲的差值,乘以声速,以厘米/秒为单位,然后除以2。


编辑:显然,我知道它是有效的,我只是试图拼凑它是如何工作的。同样,在while循环中定义了signaloff和signalon,但是之后它们会在这些缩进之外再次使用。为什么它允许这样做?
最后的编辑:
J
2021年7月17日
1
0
10
0
如果您将Trigger与引脚16对齐并echo与17对齐,您可以节省3线,这将把GND与GND放在一起。
如果需要5V并通过micro-USB供电,则需要从3V3或VSYS/VBUS连接一根电线。
你说得太对了!

你把我们从意大利面条电缆中救了出来!:)
最后的编辑:

问社区

趋势线

最新的文章