在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

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

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

        作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
        本模塊性能穩(wěn)定,使用方便,測(cè)度距離精確。能和國(guó)外的SRF05,SRF02等超聲波測(cè)距模塊相媲美,且價(jià)格實(shí)惠,是你采購(gòu)超聲波器件的理想選擇。模塊高精度,盲區(qū)(2cm)超近,穩(wěn)定的測(cè)距是此產(chǎn)品成功走向市場(chǎng)的有力根據(jù)!測(cè)量范圍在2cm~500cm,測(cè)量精度3mm,測(cè)量時(shí)與被測(cè)物體無(wú)直接接觸,能夠清晰穩(wěn)定地顯示測(cè)量結(jié)果。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物位測(cè)量?jī)x等都可以通過(guò)超聲波來(lái)實(shí)現(xiàn)。
        超聲波測(cè)距器,可以應(yīng)用于汽車(chē)倒車(chē)、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng)的位置監(jiān)控,也可用于液位、井深、管道長(zhǎng)度的測(cè)量,用于機(jī)器人控制、小車(chē)躲避障礙等場(chǎng)合中。小車(chē)上安裝此模塊配合舵機(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)返回,通過(guò)echo輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。
        用戶通過(guò)從trig腳輸入40kHz的方波信號(hào),即用戶從單片機(jī)的IO口連續(xù)發(fā)出高低電平,產(chǎn)生方波,方波的個(gè)數(shù)一般為10個(gè)左右;然后就可以在接收端等待高電平輸出,一有輸出就可以開(kāi)定時(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)的問(wèn)題
        1、由于超聲波會(huì)受到被測(cè)物體不平整、反射角度、環(huán)境風(fēng)速溫度以及多次反射的影響,可能會(huì)帶來(lái)測(cè)量數(shù)據(jù)誤差增大。
        2、由于超聲波有測(cè)量盲區(qū)的固有特性,因此,如果近距離測(cè)量時(shí),當(dāng)測(cè)量位置發(fā)生變化而接收到的數(shù)據(jù)不變時(shí),說(shuō)明進(jìn)入了測(cè)量盲區(qū)。
        3、模塊在測(cè)量遠(yuǎn)處物體時(shí),如果沒(méi)有測(cè)量數(shù)據(jù)返回,可能是超出測(cè)量范圍,或是測(cè)量角度不對(duì)。可以適當(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; //開(kāi)總中斷
        ET0=1;//開(kāi)定時(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ù)專(zhuān)區(qū)

        關(guān)閉