精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>超聲波傳感器開源分享

超聲波傳感器開源分享

2022-11-15 | zip | 0.06 MB | 次下載 | 2積分

資料介紹

描述

當您嘗試讓超聲波傳感器工作時,您可能已經發現 HCSR04 的精度非常低。這個項目是關于將其測量升級到穩定和準確的程度。如果您現在認為這將是一個非常艱巨的項目,并且使用了許多復雜的方法,那么我現在想說:它不會。教程將展示一些每個人都應該使用的簡單技巧,但不幸的是,沒有人使用它們。是時候改變它了!

入門

如果你知道 hcsr04 是如何工作的并且使用了一些基本的代碼,你可以跳過這部分。

超聲波傳感器的工作原理

超聲波傳感器使用聲納來確定與物體的距離。這是發生的事情:

  • 發射器(觸發引腳)發送信號:高頻聲音。
  • 當信號找到一個物體時,它會被反射并……
  • …發射器(回聲針)接收它。
poYBAGNy27CAH1O5AABcXOhQudw477.jpg
?

信號傳輸和接收之間的時間使我們能夠計算到物體的距離。這是可能的,因為我們知道聲音在空氣中的速度。

HC-SR04 超聲波傳感器引腳

pYYBAGNy27OAZgRPAABLGl_4-xI176.png
?

引腳

  • VCC:+5VDC
  • 觸發:觸發(輸入)
  • 回聲:回聲(輸出)
  • 接地:接地

標準代碼:

代碼的主要部分是一個函數,它測量觸發引腳上的信號到 Echo 引腳上的信號變低的那一刻的時間。

digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
//With measured time we calculate the distance in cm:
cm = (duration/2) * 0.034;

一切似乎都很好!但它不起作用。

標準代碼有什么問題?

在收集了一些數據后,我們用它繪制了一個圖表。它顯示了聲音從傳感器傳播到 30 厘米距離和向后的障礙物所花費的時間。

poYBAGNy27WAV67TAACs_nD_yNA257.png
?

如您所見,這絕對是一團糟。您可能會說這只是傳感器的不準確,但我找到了解決方案。問題不在于傳感器,而在于 Arduino當 Arduino 工作時,它會執行您編寫的代碼,但不僅如此。有時處理器會收到一個信號來凍結你的代碼并制作其他東西,然后,他會恢復他凍結的東西。這種情況稱為處理中斷,在 Arduino 上很常見。問題是中斷凍結了我們的計時器(PulseIn 函數),因此我們的讀數被弄亂了。解決這個問題很容易。標準代碼中只有兩行:

noInterrupts();
duration = pulseIn(echoPin, HIGH);
interrupts();
pYYBAGNy27eAWVMSAACS9Kz_9f8518.png
?

在沒有中斷的情況下,我們的讀數看起來要好得多,但我們仍然看到一些讀數比正常值高 25μs,很少甚至比正常讀數高 50μs。那么為什么會這樣呢?也許這就是傳感器的精度?仍然沒有。

25μs 峰值。

傳感器中的聲音頻率為 40 kHz,返回時的聲波被傳感器記錄下來。聲波發射時間為 200μs,這意味著它包含 8 個波峰。有時第一個返回的峰值不足以觸發傳感器。

pYYBAGNy27mAGe2_AACX6MFGt8A335.png
?

返回聲波,第一個峰值未記錄。示波器制作的圖表。

如何解決這個問題?

它不像中斷那么容易,而且我沒有確切的代碼來修復它。只是關于該校正應該如何工作的想法。第一個想法是對大量測量值取平均值,但這意味著我們將始終得到比實際結果更高的結果。第二個選項是將結果分成兩組并計算較低的平均值。因此,首先計算所有測量值的平均值,然后取其下結果的平均值。

HCSR04的真實精度。

poYBAGNy27yADXnrAACjjakH7QQ445.png
錯誤測量的波。
?
pYYBAGNy276AbwN7AACrVCQVUls763.png
錯誤測量的波。
?
poYBAGNy28CAZLiAAACtGX27BJI109.png
正確測量的波。
?

如果是這種情況,HCSR04 會等待波返回并每 3μs 檢查一次。問題是這意味著我們測量的時間比實際時間高出多達 3μs。如果不更換傳感器,您將不會對此做任何事情。但是,3μs 仍然意味著 1.02mm 的精度。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費