超音波測距 ,使用 HC-SR04 模組,這個模組包括超音波發送器、超音波接收器和控制電路如下圖,測距範圍從 2 公分至 400公分(4 公尺),精密度0.3公分。
Vcc 接5V
Trig 觸發 (輸入脈波至少10us)
Echo 檢測接收回音信號(接收後輸出高準位電壓)
Gnd 接地
scratch 中 sonarxx 和 ultraxx 作超音波感測
使用broadcast 【sonar23】達成超音波測距 功能,
啟動樹莓派發出至少10us 的觸發脈波到 HC-SR04 模組的trig腳,使得 HC-SR04 模組產生8個40KHz(25us)超音波的脈波,接著樹莓派由零開時計時,HC-SR04 模組的Echo腳 變為高準位,等待接收回音信號,Echo腳準位降低時,樹莓派把計時值轉變為距離,每58.3us的時間為1公分,回音越久接收,Echo腳高準位時間越久,距離越遠。
檢測距離=(40KHz(25us)超音波的脈波的傳送速度X 檢測時間)/2
=(343公尺/秒X檢測時間秒數)/2
1s-->171.5m ;
1ms-->171.5mm=17.15cm
17.15公分約1ms
1公分約 58.3us
註:
1. 音速約340公尺/秒,參考http://www.phy.ntnu.edu.tw/demolab/html.php?html=modules/sound/section1
2. 因為來回時間,所以除以2
scratch 程式如下
插入 GPIO 延伸卡的 P4 ( GPIO23 在pin16 )
因為GPIO23 在pin16,所以用【廣播『sonar16』】
按空白鍵後,檢查【『 』的偵測值】
出現『sonar16』
勾選後會在舞台看到
補充:實際看scratch 下層的python 程式為3次觸發取中間值,才送給scratch
而且限定在1公分到280公分,大於280公分一律顯示299公分。
ultra 可自動感測, 不用一直觸發作感測