日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超声波测距仪

發布時間:2024/3/7 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超声波测距仪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本原理

?超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反射超聲波的物體。測量距離時,將超聲波傳感器對準反射物發射超聲波,并開始計時,超聲波在空氣中傳播到達障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計時,然后根據超聲波的傳播速度和計時時間就能計算出兩端的距離。測量距離D

???????????????????????????????

式中??? c——超聲波的傳播速度;

????????? ?t——超聲波發射到接收所需時間的一半,也就是單程傳播時間。


程序框圖



聲波測距儀的主要技術指標

測量距離:0.20m-1.3m

測溫范圍:-10℃~115

測量距離精度:1cm

實時功率:0.05W

標準頻率:40kHz

聲壓級:120±3(公式:S.P.L.= 20logP/Pre (dB)

系統發射功率:1mW(max)

工作電流:80mA(min)90mA(max)

輸入電源電壓:5V


超聲波模塊

HC-SR04

程序

/***********************************************************************************************************/ //HC-SR04 超聲波測距模塊 DEMO 程序 //晶振:11。0592 //接線:模塊TRIG接 P1.2 ECH0 接P1.1 //串口波特率9600 /***********************************************************************************************************/ #include <AT89X51.H> #include <intrins.h> #include <STDIO.H>#define uchar unsigned char #define uint unsigned int #define RX P1_1 #define TX P1_2unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0;/********************************************************/ void Conut(void) {time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.87)/100; //算出來是CMif(flag==1) //超出測量{flag=0;printf("-----\n"); } printf("S=%f\n",S); } /********************************************************/ void delayms(unsigned int ms) {unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}} } /********************************************************/ void zd0() interrupt 1 //T0中斷用來計數器溢出,超過測距范圍 {flag=1; //中斷溢出標志 } /********************************************************/ void StartModule() //T1中斷用來掃描數碼管和計800MS啟動模塊 {TX=1; //800MS 啟動一次模塊_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();TX=0; } /********************************************************/ void main(void) { TMOD=0x21; //設T0為方式1,GATE=1;SCON=0x50;TH1=0xFD;TL1=0xFD;TH0=0;TL0=0; TR0=1; ET0=1; //允許T0中斷TR1=1; //開啟定時器TI=1;EA=1; //開啟總中斷while(1){StartModule();while(!RX); //當RX為零時等待TR0=1; //開啟計數while(RX); //當RX為1計數并等待TR0=0; //關閉計數Conut(); //計算delayms(10); //100MS} }
測距2cm-400cm


總結

以上是生活随笔為你收集整理的超声波测距仪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。