<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一款超聲波測(cè)距模塊運(yùn)用程序

          一款超聲波測(cè)距模塊運(yùn)用程序

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          本模塊性能穩(wěn)定,使用方便,測(cè)度距離精確。能和國外的SRF05,SRF02等超聲波測(cè)距模塊相媲美,且價(jià)格實(shí)惠,是你采購超聲波器件的理想選擇。模塊高精度,盲區(qū)(2cm)超近,穩(wěn)定的測(cè)距是此產(chǎn)品成功走向市場(chǎng)的有力根據(jù)!測(cè)量范圍在2cm~500cm,測(cè)量精度3mm,測(cè)量時(shí)與被測(cè)物體無直接接觸,能夠清晰穩(wěn)定地顯示測(cè)量結(jié)果。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物位測(cè)量?jī)x等都可以通過超聲波來實(shí)現(xiàn)。
          超聲波測(cè)距器,可以應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng)的位置監(jiān)控,也可用于液位、井深、管道長(zhǎng)度的測(cè)量,用于機(jī)器人控制、小車躲避障礙等場(chǎng)合中。小車上安裝此模塊配合舵機(jī)使用能控制得更方便。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求。因此在移動(dòng)機(jī)器人的研制上也得到了廣泛的應(yīng)用。
          模塊性能
          1:使用電壓:DC5V;
          2:靜態(tài)電流:小于2mA;
          3:輸出信號(hào):電平信號(hào),高電平5V,低電平為0V;
          4:感應(yīng)角度:不大于15度;
          5:探測(cè)距離:2cm-500cm
          6: 高精度:可達(dá)0.3cm
          超聲波測(cè)距模塊工作原理:
          (1)采用單片機(jī)IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);
          (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;
            (3)有信號(hào)返回,通過echo輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。
          用戶通過從trig腳輸入40kHz的方波信號(hào),即用戶從單片機(jī)的IO口連續(xù)發(fā)出高低電平,產(chǎn)生方波,方波的個(gè)數(shù)一般為10個(gè)左右;然后就可以在接收端等待高電平輸出,一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,高電平的時(shí)間就是此次測(cè)距的時(shí)間,根據(jù)以下公式計(jì)算測(cè)量距離:
          測(cè)試距離=(高電平時(shí)間*聲速(340m/s))/2;
          注意事項(xiàng)
          1、超聲波發(fā)射頭向外發(fā)射60度角的超聲束,因此,在探頭與被測(cè)物體之間不能有其他障礙物。
          2、超聲波模塊測(cè)得的是被測(cè)物體與探頭之間的垂直距離,測(cè)量時(shí)要保持探頭正對(duì)被測(cè)物體。
          3、超聲波測(cè)量會(huì)受環(huán)境風(fēng)速、溫度等的影響。
          4、模塊應(yīng)先插好在電路板上再通電,避免產(chǎn)生高電平的誤動(dòng)作,如果產(chǎn)生了,重新通電方可解決。
          可能出現(xiàn)的問題
          1、由于超聲波會(huì)受到被測(cè)物體不平整、反射角度、環(huán)境風(fēng)速溫度以及多次反射的影響,可能會(huì)帶來測(cè)量數(shù)據(jù)誤差增大。
          2、由于超聲波有測(cè)量盲區(qū)的固有特性,因此,如果近距離測(cè)量時(shí),當(dāng)測(cè)量位置發(fā)生變化而接收到的數(shù)據(jù)不變時(shí),說明進(jìn)入了測(cè)量盲區(qū)。
          3、模塊在測(cè)量遠(yuǎn)處物體時(shí),如果沒有測(cè)量數(shù)據(jù)返回,可能是超出測(cè)量范圍,或是測(cè)量角度不對(duì)??梢赃m當(dāng)調(diào)整測(cè)量角度。
          ***********************************************************************************/
          /*模塊高精度,盲區(qū)2cm,測(cè)量范圍在2cm~500cm,測(cè)量精度3mm*/
          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          unsigned char code WE0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//0x40-不帶點(diǎn)
          //unsigned char code WE1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xf0,0xef,0x80}; //0-9 帶點(diǎn)
          unsigned char temp[3];
          sbit RX=P3^4; //接受端,ECHO
          sbit TX=P3^5; //控制端,TRIG
          sbit LSA=P2^2;
          sbit LSB=P2^3;
          sbit LSC=P2^4;
          bit flag=0;
          uint time=0;
          uint s=0;
          void delay(int xms)//延時(shí)大概x毫秒
          {
          int i,j;
          for(i=xms;i>0;i--)
          for(j=110;j>0;j--);
          }
          void start() //給至少10us的高電平,啟動(dòng)模塊
          {
          TX=1;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          TX=0;
          }
          uchar count()
          {
          time=TH0*256+TL0;
          TH0=0;
          TL0=0; //清零
          s=(time*1.7)/100;//厘米
          return s;
          }
          void dispros()//數(shù)據(jù)分割
          {
          temp[0]=s%1000/100;//百位
          temp[1]=s%1000%100/10; //十位
          temp[2]=s%100%100%10; //個(gè)位
          }
          void display() //顯示函數(shù)
          {
          uchar i;
          if(s>=500||s<=2||flag==1) //進(jìn)入盲區(qū),溢出
          {
          flag=0;
          s=0;
          TH0=0;
          TL0=0; //清零
          for(i=0;i<3;i++) //顯示-
          {
          P0=0x40;
          switch(i)
          {
          case 0:LSA=0; LSB=0; LSC=0; break;
          case 1:LSA=1; LSB=0; LSC=0; break;
          case 2:LSA=0; LSB=1; LSC=0; break;
          }
          delay(2);
          }
          }
          else //正常顯示
          {
          LSA=0;LSB=0;LSC=0;
          P0= WE0[temp[0]]; delay(3);
          LSA=1;LSB=0; LSC=0;
          P0= WE0[temp[1]]; delay(2);
          LSA=0;LSB=1;LSC=0;
          P0= WE0[temp[2]]; delay(1);
          }
          }
          void main()
          {
          TMOD=0X01; //定時(shí)器工作方式0
          TH0=0;
          TL0=0;
          EA=1; //開總中斷
          ET0=1;//開定時(shí)器中斷
          while(1)
          {
          start();//啟動(dòng)模塊
          while(!RX); //當(dāng)RX為零時(shí)等待
          TR0=1; //啟動(dòng)計(jì)數(shù)
          while(RX); //當(dāng)RX為1時(shí)計(jì)數(shù)并等待
          TR0=0; //關(guān)閉計(jì)數(shù)器
          count(); //計(jì)數(shù)
          dispros(); //處理,分割數(shù)據(jù)
          display(); //顯示
          delay(1);
          }
          }
          void t0() interrupt 0
          {

          flag=1; //溢出標(biāo)志
          }


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();