gpt4 book ai didi

Arduino+多个超声波传感器+干扰

转载 作者:行者123 更新时间:2023-12-02 08:37:07 28 4
gpt4 key购买 nike

我有两辆 buggy 在轨道上移动,它们都使用超声波测量模块来检测路径中的障碍物,并由 Arduino 微 Controller 控制。两个超声波传感器以相同的频率工作,并且这个频率不能改变。两个超声波传感器相互干扰。如何通过向 Arduino 代码中添加一些内容来减少或防止这种干扰。硬件无法更改。感谢您的帮助

最佳答案

通常有六种方法可以减少两个 channel 之间的干扰(参见示例 http://en.wikipedia.org/wiki/Multiplexing )——其中两种不适用于声音。剩下四个:

space      - don't operate in the same space (e.g. cell towers): not applicable for you
frequency - (e.g. channels) you said you can't change that
time - don't operate at the same time
code - send out different amplitude patterns

从某种意义上说,“代码”有点像“时间”,但更复杂。使用“时间”,您尝试对其计时,以便两个换能器不会同时传输。通过“代码”,他们发送复杂的脉冲序列并使用这些脉冲序列来消除干扰。

我认为您最好的选择(简单但有效)是“时间”。这将在一定程度上取决于您需要的更新频率,但您可以让一辆 buggy 成为“主人”,每 100 毫秒发送一次短促的鸣叫声(比如说);然后让第二辆 buggy 等到它听到主控的唧唧声,并在 50 毫秒后发送自己的脉冲(当它知道另一辆 buggy 会安静时)。这样每个人每秒将有 10 次更新,但它们不会干扰。

为了更加稳健,“从属” buggy 可以决定(在没有听到来自“主控”的脉冲后)在 100 毫秒后发送自己的脉冲 - 这样它可以在只有一辆 buggy 存在时运行。事实上,他们每个人都可以使用这个算法——这样就没有“主”和“从”,而且他们有相同的代码(通常是个好主意)。作为最后的调整,如果您使这个“等待 n 毫秒”间隔随机,您将实现一个版本的“带冲突检测的载波监听多路访问”- 参见 http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection

祝你好运。

关于Arduino+多个超声波传感器+干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20273971/

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