引用來源
https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/
工作原理 – 超聲波傳感器
它發射 40 000 Hz 的超聲波,超聲波在空氣中傳播,如果其路徑上有物體或障礙物,它將反彈回模塊。考慮到傳播時間和聲速,您可以計算出距離。
HC-SR04 超聲波模塊有 4 個引腳,接地、VCC、觸發和迴聲。模塊的地和 VCC 引腳需要分別連接到地和 Arduino 板上的 5 伏引腳,觸發和迴聲引腳需要連接到 Arduino 板上的任何數字 I/O 引腳。
本教程所需的組件
您可以從以下任何站點獲取這些組件:
- 超聲波傳感器 HC-SR04 ………… Amazon / Banggood / AliExpress
- Arduino 板………………………………亞馬遜/ Banggood / AliExpress
- 麵包板和跳線…… 亞馬遜 / Banggood / AliExpress
披露:這些是附屬鏈接。作為亞馬遜合作夥伴,我從符合條件的購買中賺取收入。
為了生成超聲波,您需要將 Trig 設置為高狀態 10 µs。這將發出一個 8 週期的聲波脈衝,它將以聲音的速度傳播,並將在 Echo 引腳中接收。Echo 引腳將輸出聲波傳播的時間(以微秒為單位)。
例如,如果物體距離傳感器 10 cm,並且聲速為 340 m/s 或 0.034 cm/µs,則聲波將需要傳播大約 294 u 秒。但是你從 Echo 引腳得到的將是這個數字的兩倍,因為聲波需要向前傳播並向後反彈。因此,為了獲得以厘米為單位的距離,我們需要將從回波引腳接收到的旅行時間值乘以 0.034,然後再除以 2。
Arduino 和 HC-SR04 超聲波傳感器代碼
首先,您必須定義 Trig 和 Echo 引腳。在這種情況下,它們是 Arduino 板上的引腳編號 9 和 10,它們被命名為 trigPin 和 echoPin。然後,您需要一個 Long 變量,名為“duration”,表示您將從傳感器獲得的旅行時間,以及一個表示距離的整數變量。
在設置中,您必須將 trigPin 定義為輸出,將 echoPin 定義為輸入,並啟動串行通信以在串行監視器上顯示結果。
在循環中,您首先必須確保trigPin 清晰,因此您必須將該引腳設置為低電平狀態僅2 µs。現在為了生成超聲波,我們必須將觸發引腳設置為 HIGH 狀態 10 µs。使用pulseIn()函數,您必須讀取旅行時間並將該值放入變量“duration”中。這個函數有2個參數,第一個是echo pin的名字,第二個你可以寫HIGH或LOW。
在這種情況下,HIGH 意味著pulsIn()函數將等待由反彈聲波引起的引腳變為高電平並開始計時,然後在聲波結束時等待引腳變為低電平,這將停止計時。最後,該函數將以微秒為單位返回脈衝的長度。
為了獲得距離,我們將持續時間乘以 0.034,然後除以 2,正如我們之前解釋過的這個等式。
最後,我們將在串行監視器上打印距離值。
這是完整的代碼:
Arduino 超聲波傳感器和 LCD 顯示屏示例
這是另一個如何將超聲波傳感器與 Arduino 配合使用並在 LCD 上顯示結果的示例。
您可以按如下方式連接超聲波傳感器和 LDC:
測量距離的代碼與基本示例幾乎相同。在這裡,我們不是在串行監視器上打印結果,而是將它們打印在 LCD 上。如果您需要更多有關如何使用和連接 LCD 與 Arduino 的詳細信息,您可以查看我的特定教程。
沒有留言:
張貼留言