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

 爱死猪猪侠110_338 发布于 2023-02-13 22:11
  • php
  • 我有两个四驱车在轨道上移动,两个都使用超声波测量模块来检测路径中的障碍物,并由Arduino微控制器控制.两个超声波传感器以相同的频率工作,并且该频率不能改变.两个超声波传感器相互干扰.如何通过向Arduino代码添加内容来减少这种干扰或防止干扰.硬件无法更改.谢谢你的帮助

    1 个回答
    • 通常有六种方法可以减少两个通道之间的干扰(例如参见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毫秒后发送自己的脉冲(当它知道另一辆越野车将会安静时).通过这种方式,每个每秒将有10次更新,但它们不会干扰.

      为了更加强大,"奴隶"越野车可以决定(在没有听到来自"主人"的脉冲之后)在100毫秒后发送自己的脉冲 - 这样它就可以在只有一辆越野车时运行.事实上他们每个人都可以使用这个算法 - 然后没有"主人"和"奴隶",他们有相同的代码(通常是一个好主意).作为最后的调整,如果你使这个"等待n ms"间隔随机,你将实现一个版本的"带有碰撞检测的载波侦听多路访问" - 请参阅http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection

      祝好运.

      2023-02-13 22:34 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有