久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

一款超聲波測距模塊運用程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月13日   【字體:

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

flag=1; //溢出標志
}

關閉窗口

相關文章

主站蜘蛛池模板: 亚洲欧美日韩中文在线 | 黄色av一区 | 91在线免费视频 | 国产91网址| 777777777亚洲妇女 | 久久久精品视频一区二区三区 | 黑人性hd | 欧美专区在线 | 久久久精品高清 | 亚洲精品日韩在线 | 欧美一级黄视频 | 日本精品一区二区三区在线观看 | 亚洲精品国产一区 | 亚洲va在线va天堂va狼色在线 | 天天做日日做 | 日韩资源 | 天天草天天| 91成人精品 | 日日干日日 | 丁香综合 | 在线免费黄色小视频 | 色网站在线 | 国产乱肥老妇国产一区二 | 亚洲中午字幕 | 黄色毛片视频 | 黄色大片免费网站 | 99久久婷婷国产综合精品首页 | 天堂网色 | 久草视频2| 亚洲色在线视频 | 九九热在线观看视频 | 免费成人高清在线视频 | 国产一区不卡 | 免费在线国产视频 | 日韩国产精品一区二区三区 | 久久久久一区二区三区 | 日本免费一区二区三区 | 亚洲三级在线观看 | 一级欧美 | 久久高清 | 国产精品久久久久久吹潮日韩动画 |