超聲波模塊HC-SR04簡介以及編程


HC-SR04

一、主要參數
1:使用電壓:DC—5V
2:靜態電流:小於2mA
3:電平輸出:高5V
4:電平輸出:底0V
5:感應角度:不大於15度
6:探測距離:2cm-450cm
7:高精度 可達0.2cm
二、工作原理
1.采用IO口TRIG觸發測距,給至少10us的高電平信號來啟動模塊。
2.模塊自動發送8個40khz的方波,自動檢測是否有信號返回。
3.如果有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。通過公式計算測試距離=(高電平時間*聲速(340M/S))/2。

三、運用超聲波模塊測距

 1 sbit RX=P2^0;  2 sbit TX=P2^1;  3 void delay()   //精確延時21us
 4 {  5  _nop_();  6  _nop_();  7  _nop_();  8  _nop_();  9  _nop_(); 10  _nop_(); 11  _nop_(); 12  _nop_(); 13  _nop_(); 14  _nop_(); 15   _nop_(); 16  _nop_(); 17  _nop_(); 18  _nop_(); 19  _nop_(); 20  _nop_(); 21  _nop_(); 22  _nop_(); 23  _nop_(); 24  _nop_(); 25  _nop_(); 26 } 27  
28 viod init()  //對計數器初始化
29 { 30         TMOD=0x11;           //設T0為方式1,GATE=1;
31         TH0=0; 32         TL0=0; 33         // 只是單純計數可以不用寫后兩句在不會溢出的情況下
34         ET0=1;             //允許T0中斷 
35         EA=1;               //開啟總中斷
36 } 37  
38 void Conut(void)  //計算到障礙物的距離
39 { 40       time=TH0*256+TL0; 41       TH0=0; 42       TL0=0; 43       S= (long)(time*0.017);     //算出來是CM
44 } 45  
46 void main() 47 { 48       while(1) 49  { 50           TX=1; 51  delay(); 52           TX=0; 53           while(!RX);        //當RX為零時等待
54           TR0=1;                //開啟計數
55           while(RX);            //當RX為1計數並等待
56           TR0=0;                //關閉計數
57           Conut();            //計算
58  } 59 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM