我有两个手推车绕轨道移动,两者都使用超声波测量模块来检测障碍物在其路径,并通过微控制器的Arduino控制。两个超声波传感器以相同的频率工作,并且这个频率不能改变。两个超声波传感器相互干扰。如何通过在Arduino代码中添加一些东西来减少这种干扰或防止干扰。硬件不能改变。感谢您的帮助的Arduino +多个超声波传感器+干扰
2
A
回答
6
有一般的六种方式来减少两个信道之间的干扰(例如,见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
从某种意义上说,“代码”有点像“时间”,但更复杂。使用“时间”时,尝试对其进行计时,以便两个传感器不会同时传输。用“代码”,他们发送复杂的脉冲序列,并使用这些来消除干扰。
我认为你最好的选择(简单但有效)是“时间”。这将取决于更新的你所需要的频率一点点,但你可以做一个越野车的“主人”,发送短啁啾每100毫秒(说);然后有第二个车等待,直到听到主人啁啾,和50个ms后发送它自己的脉搏(当它知道其他车会安静)。通过这种方式,每个人每秒钟都会有10次更新,但不会产生干扰。
为了更强健,“奴隶”车可以决定(在没有听到“主”脉冲后)在100 ms后发送自己的脉冲 - 这样,当只有一辆车出现时,它可以运行。他们实际上可以使用这种算法 - 那么就没有“主”和“奴隶”,他们有相同的代码(通常是一个好主意)。作为最后的调整,如果你随机使这个“等待n ms”的间隔,你将实现一个版本的“载波侦听多路访问碰撞检测” - 见http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection
祝你好运。
相关问题
- 1. ARDUINO DUE&SRF10超声波传感器
- 2. Arduino超声波距离传感器
- 3. Arduino超声波传感器pulseIn只有3或4个
- 4. AVR中的超声波传感器
- 5. 使用python读取BBB的多个超声波传感器
- 6. 乐高NXT-RobotC超声波传感器
- 7. 超声波传感器状态机图
- 8. 如何使用超声波传感器和Arduino控制机器人手臂
- 9. 问题超声波传感器和以太网盾的Arduino之间
- 10. 如何在arduino上使用毫秒运行伺服和超声波传感器?
- 11. 使用arduino和超声波hc-sr04传感器进行速度测量?
- 12. 如何让超声波传感器与Arduino Uno一起正常工作?
- 13. 使用超声波传感器在Arduino中获得英寸距离和Cm从超声波传感器获取距离
- 14. 6旋转伺服电机的超声波传感器
- 15. HC-SR4超声波传感器与STM32L1的接口
- 16. 与AVR接口的超声波传感器
- 17. 乐高NXT超声波传感器的输出值
- 18. 使用Z-Wave接口超声波传感器
- 19. 树莓派伺服和超声波传感器抖动
- 20. 使用DYP-ME007Y-PWM超声波传感器
- 21. 如何在Matlab中配置超声波传感器?
- 22. 用超声波传感器和覆盆子测量距离
- 23. Arduino的超声波初始化问题
- 24. Arduino中断干扰TimeAlarms.h
- 25. 如何将两个超声波传感器添加到PIC微控制器
- 26. arduino超声波srf05错误值
- 27. 树莓派上的两个超声波传感器与Python脚本
- 28. 多个LocationClients干扰?
- 29. 如何连接与Arduino Board连接的超声波传感器,并使用无线传感器通过网络传输数据?
- 30. Arduino传感器数据