我有兩個手推車繞軌道移動,兩者都使用超聲波測量模塊來檢測障礙物在其路徑,並通過微控制器的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傳感器數據