但沒有尺,還有沒有方法量度距離?
HCSR04 是一種超聲波測距儀模組
超聲波測距儀模組 正面
超聲波測距儀模組 背面
4000Hz 石英晶體振盪器
在下現有的超聲波測距儀模組 是 HCSR04+ (或 HCSR04P) 是新版的 HCSR04
HCSR04 必須使用 5V 才能啟動
HCSR04+ (或 HCSR04P) 可能使用 3V 至 5V 都能啟動
引腳功能
引腳 | 方向 | 用途 |
---|---|---|
Vcc | 接受 3V 至 5V 電源 | |
Trig | 輸入 | 發出超聲波,計時器時間設定為 0 |
Echo | 輸出 | 接收超聲波,計算超聲波回彈時間 |
Gnd | 接地 |
由 發射換能器 (Transmitting Transducer) 發射超聲波
由 接收換能器 (Receiving Transducer) 接收超聲波
RCWL-9190 晶片 ,一種 雷達式訊號檢測晶片
沒有刻上晶片名稱
估計是使用 LM324 之類具備訊號擴大、數學運算的晶片
同樣沒有刻上晶片名稱
估計是使用 MAX3222 之煩具備控制多頻道發射器及接收器的晶片
接駁方式
Echo引腳 必須接駁到具有 脈衝寬度調變 (Pulse Width Modulation (PWM)) 的 Arduino 引腳
在下的懶惰接駁方式
直接將 超聲波測距儀模組 4支引腳 接駁到 Arduino 引腳
同樣需要提供 電源引腳 及 接地引腳
控制超聲波測距儀模組 大約可以檢測 30毫米 至 5000毫米 距離
訊號
- 設定 Trig 為低電壓,發出超聲波,計時器時間設定為 0
- 設定 Echo 為高電壓,接收超聲波,計算超聲波回彈時間
- 設定 Trig 為高電壓,停止發出及接收超聲波
引腳 | 初始化 | 檢測週期 | ||
---|---|---|---|---|
Time | 延遲2微秒 | 延遲2微秒 | 延遲2微秒 | |
Trig | 高 | 低 | 高 | |
Echo | 高 |
訊號波紋時序圖
說明
由發射器發出超聲波,由接收器接收超聲波超聲波速度 為 1馬赫 ,大約 每秒340.29米
只會接收最快傳回的超聲波 (入射角 = 反射角的軌道為最短路徑)
假如 HCSR04 與 物件 與 相距 340.29米 ,超聲波 由 發射器發出後 便需要 1秒 才到達 物件
超聲波 亦需要 1秒 才回到 接收器,因此 超聲波總共使用 2秒 行走 680.58米
Total Distance = Speed of Sound * Time由於 音速 通常以 米每秒 計算,而 Arduino 經 HCSR04 接收到的訊號為 微秒,計算時需要轉換單位
假如 Arduino 傳回 500微秒 = 500 / 1000000秒 = 0.00005秒
Total Distance = 340.29 * 500 / 1000000 Total Distance = 0.170145總距離為 0.170145米 = 0.170145 * 1000 = 170.145毫米
由於只需要計算一次距離,因此 170.145毫米 / 2 = 85.0725毫米
簡化公式為
Distance in Millimeter = 0.170145 * Microseconds
測試程式
const byte BIT_DELAY = 10; const byte TRIG_PIN = 2; const byte ECHO_PIN = 3; void setup() { Serial.begin(115200); pinMode(TRIG_PIN, OUTPUT); digitalWrite(TRIG_PIN, HIGH); pinMode(ECHO_PIN, INPUT); } void loop() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(BIT_DELAY); float distance = 0.170145 * pulseIn(ECHO_PIN, HIGH); delayMicroseconds(BIT_DELAY); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(BIT_DELAY); Serial.print(distance); Serial.print("mm"); Serial.println(); delay(1000); }
效果
檢測並不太準確,平均誤差度大約 正負5至10毫米
而且檢測對象不是平面而且堅硬的表面,準確度會更差
總結
超聲波測距儀模組操作上算是非常簡單,只是要留意 Echo引腳 必須使用 PWM及要了解聲音速度,將讀取到數值,經過計算,可能顯示接近正確的距離
(音速受溫度影響,不是穩定數值)
在下將超聲波測距儀模組製作成函式庫方便使用
可以到 https://create.arduino.cc/editor/hkgoldenmra/8fec7e80-dcc2-4b33-9b42-127ca80b5bee/preview
或 https://bitbucket.org/hkgoldenmra/hcsr04module
或在 Terminal 輸入
git clone "https://bitbucket.org/hkgoldenmra/hcsr04module.git" --depth=1下載
沒有留言 :
張貼留言