1.模塊簡介
HC-SR04超聲波模塊常用於機器人避障、物體測距、液位檢測、公共安防、停車場檢測等場所。HC-SR04超聲波模塊主要是由兩個通用的壓電陶瓷超聲傳感器,並加外圍信號處理電路構成的。如圖:
兩個壓電陶瓷超聲傳感器,一個用於發出超聲波信號,一個用於接收反射回來的超聲波信號。由於發出信號和接收信號都比較微弱,所以需要通過外圍信號放大器提高發出信號的功率,和將反射回來信號進行放大,以能更穩定地將信號傳輸給單片機。模塊整體電路如圖:
2.模塊參數
(1)模塊主要電氣參數
- 使用電壓:DC—5V
- 靜態電流:小於2mA
- 電平輸出:高5V
- 電平輸出:底0V
- 感應角度:不大於15度
- 探測距離:2cm-450cm
- 高精度 可達0.2cm
(2)模塊引腳
超聲波模塊有4個引腳,分別爲Vcc、 Trig(控制端)、 Echo(接收端)、 GND;其中VCC、GND接上5V電源, Trig(控制端)控制發出的超聲波信號,Echo(接收端)接收反射回來的超聲波信號。模塊如圖:
與單片機的連接如圖:
控制原理:通過Trig引腳發一個 10US 以上的高電平,就可以在Echo接收口等待高電平輸出;一有輸出就可以開定時器計時,當此口變爲低電平時就可以讀定時器的值,此時就爲此次測距的時間,方可算出距離.如此不斷的週期測,就可以達到你移動測量的值了。
3.控制程序
(1)工作流程
a.單片機引腳觸發Trig測距,給至少 10us 的高電平信號;
b.模塊自動發送 8 個 40khz 的方波,自動檢測是否有信號返回;
c.有信號返回,通過 IO 輸出一高電平,並單片機定時器計算高電平持續的時間;
d.超聲波從發射到返回的時間.
計算公式:測試距離=(高電平時間*聲速(340M/S))/2;
整個控制時序如圖:
(2)驅動程序
1.單片機引腳觸發Trig測距,給至少 10us 的高電平信號;
void StartModule() //啓動模塊
{
TX=1; //啓動一次模塊
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TX=0;
}
2.自動檢測是否有信號返回,如果有,啓動定時器;
while(!RX); //當RX爲零時等待
TR0=1; //開啓計數
while(RX); //當RX爲1計數並等待
TR0=0; //關閉計數
Conut(); //計算
3.定時器計算高電平持續的時間,並計算出距離;
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100; //算出來是CM
}
更多超聲波測距模塊HC-SR04設計資料及例程 請關注公衆號,首頁回覆“超聲波”獲取資料