国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊2 登錄
網(wǎng)站首頁-資訊-話題-產(chǎn)品-評測-品牌庫-供應(yīng)商-展會-招標(biāo)-采購-知識-技術(shù)-社區(qū)-資料-方案-產(chǎn)品庫-視頻

問答社區(qū)

想學(xué)下51單片機的超聲波測距,有幾個疑問。

倩瑛 2018-01-19 02:56:05 448  瀏覽
  • 想學(xué)下51單片機的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機供給超聲波信號端Trig一個Z少10us長的高電平信號,模塊自動發(fā)射8個40khz的方波,自動檢測到信號是否返回,有信號返回,Echo端輸出一個高電平,高電平持續(xù)的實踐就是超... 想學(xué)下51單片機的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機供給超聲波信號端Trig一個Z少10us長的高電平信號,模塊自動發(fā)射8個40khz的方波,自動檢測到信號是否返回,有信號返回,Echo端輸出一個高電平,高電平持續(xù)的實踐就是超聲波從發(fā)射到返回的時間。 我的理解是給Trig一個10微秒以上高電平信號,模塊會發(fā)射超聲波,這個時候Echo應(yīng)該是低電平,等有聲波信號返回時Echo會變高電平,聲波從發(fā)射到返回用了多長時間,Echo的高電平就持續(xù)多長時間。不知道理解的對不對? 這里有個疑問,百度了一下發(fā)現(xiàn)都是檢測Echo收到返回聲波后高電平持續(xù)時間來計算距離,為什么不檢測從模塊發(fā)射聲波到Echo收到返回聲波的時間呢?這樣不是可以節(jié)約一半的時間嗎? 還有一個問題,我在學(xué)習(xí)板上試了一下程序,給Trig一個20微秒的高電平信號,然后等待Echo變高電平開啟定時器,但直到定時器溢出Echo一直都是高電平,超聲波模塊離墻面只有80厘米左右,模塊換了2個都是這樣。 第三個問題,百度上說計算測量距離等于定時器記錄的時間乘以340除以2,但定時器記錄的時間單位不是納秒嗎?還要除以一百萬才能乘以340吧?這樣得到的距離單位是米。 求教各位答疑解惑。 展開

參與評論

全部評論(2條)

  • 讀致視押 2018-01-20 00:00:00
    時間單位是微秒 不用除以一百萬 乘以340,得到的距離是毫米

    贊(10)

    回復(fù)(0)

    評論

  • a2424949339 2018-01-20 00:00:00
    這個是都已經(jīng)把發(fā)射接收做好的。其實超聲的發(fā)射接收電路并不難,真的想學(xué),建議你直接做。不要去用這種模塊。

    贊(16)

    回復(fù)(0)

    評論

熱門問答

想學(xué)下51單片機的超聲波測距,有幾個疑問。
想學(xué)下51單片機的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機供給超聲波信號端Trig一個Z少10us長的高電平信號,模塊自動發(fā)射8個40khz的方波,自動檢測到信號是否返回,有信號返回,Echo端輸出一個高電平,高電平持續(xù)的實踐就是超... 想學(xué)下51單片機的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機供給超聲波信號端Trig一個Z少10us長的高電平信號,模塊自動發(fā)射8個40khz的方波,自動檢測到信號是否返回,有信號返回,Echo端輸出一個高電平,高電平持續(xù)的實踐就是超聲波從發(fā)射到返回的時間。 我的理解是給Trig一個10微秒以上高電平信號,模塊會發(fā)射超聲波,這個時候Echo應(yīng)該是低電平,等有聲波信號返回時Echo會變高電平,聲波從發(fā)射到返回用了多長時間,Echo的高電平就持續(xù)多長時間。不知道理解的對不對? 這里有個疑問,百度了一下發(fā)現(xiàn)都是檢測Echo收到返回聲波后高電平持續(xù)時間來計算距離,為什么不檢測從模塊發(fā)射聲波到Echo收到返回聲波的時間呢?這樣不是可以節(jié)約一半的時間嗎? 還有一個問題,我在學(xué)習(xí)板上試了一下程序,給Trig一個20微秒的高電平信號,然后等待Echo變高電平開啟定時器,但直到定時器溢出Echo一直都是高電平,超聲波模塊離墻面只有80厘米左右,模塊換了2個都是這樣。 第三個問題,百度上說計算測量距離等于定時器記錄的時間乘以340除以2,但定時器記錄的時間單位不是納秒嗎?還要除以一百萬才能乘以340吧?這樣得到的距離單位是米。 求教各位答疑解惑。 展開
2018-01-19 02:56:05 448 2
51單片機超聲波測距模塊代碼
****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時器1和外部中斷呢 這時候回波已經(jīng)回來了啊 不是測不出超聲波回波的時間了... ****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時器1和外部中斷呢 這時候回波已經(jīng)回來了啊 不是測不出超聲波回波的時間了嗎還有就是 為什么在whlie循環(huán)前先打開了總中斷 然后進入whlie又立刻關(guān)閉 再重新打開 那diyi次打開不是很多余嗎 麻煩大神解答一下 展開
2018-06-26 20:47:55 565 1
求51單片機超聲波測距代碼
 
2011-08-20 06:16:46 490 2
51單片機超聲波測距用lcd顯示
51單片機超聲波測距用lcd顯示1602顯示屏
2018-11-24 01:55:06 380 0
51單片機 超聲波測距 控制直流電機正反轉(zhuǎn)
通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時,直流電機反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時,直流電機停止;當(dāng)距離小于設(shè)定值A(chǔ)時,直流電機正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機所處的各個狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液... 通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時,直流電機反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時,直流電機停止;當(dāng)距離小于設(shè)定值A(chǔ)時,直流電機正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機所處的各個狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液晶上實時顯示。 展開
2015-07-12 14:27:24 787 1
做一個51單片機超聲波測距需要哪些器材
 
2017-02-28 00:10:01 438 1
這個51單片機HC-SR04超聲波測距程序哪里錯了
//晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TI... //晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TIM1init(void)//定時器1初始化 { TMOD=0x22;//定時器1工作方式2,TH1是重裝值,TL1是初值 TH1=0xd2; //重載值 溢出一次約50us TL1=0xd2; //初始化值 ET1=1; //開中斷 } void EX1init(void) //外部中斷1初始化 { IT1 = 1; //指定外部中斷0下降沿觸發(fā),INT1 (P3.3) EA = 1; //開總中斷 } /*------------------------------------------------ 定時器1中斷處理 ------------------------------------------------*/ void tim1_isr (void) interrupt 3 { irtime++; //用于計數(shù)2個下降沿之間的時間 } /*------------------------------------------------ 外部中斷1中斷處理 ------------------------------------------------*/ void EX1_ISR (void) interrupt 2 //外部中斷1服務(wù)函數(shù) { dis=340*(irtime/2.0)*50/10000; irtime=0; TR1=0; EX1=0; } void test(void) { trig=1; delay_20us(); trig=0; EX1=1; while(!echo); TR1=1; } void main(void) { TIM1init(); EX1init(); while(1) { test(); display(dis); } } 主函數(shù)調(diào)用test,然后在數(shù)碼管上顯示(顯示函數(shù)略過),測試的時候,在數(shù)碼管上顯示的距離明顯不對,還各種不穩(wěn)定,有時就個位數(shù)上顯示一個1或2,不知道怎么回事 展開
2016-01-25 09:17:10 409 2
用51單片機做超聲波測距都需要什么元件?
用51單片機做超聲波測距都需要什么元件(探測的距離5到10米左右)?知道的話發(fā)到我郵箱里zhanxiage1994@sina.com謝謝了
2012-03-28 03:51:02 344 1
求個51單片機超聲波測距(距離+報警)的c程序
求個51單片機超聲波測距(距離+報警)的c程序
2017-05-19 03:18:16 462 1
用51單片機實現(xiàn)超聲波測距怎樣才可以測到4m?
 
2011-08-14 00:36:29 487 4
51單片機 HC-SR04超聲波測距 我寫的C語言代碼,請問
/* HC-SR04使用方法:給觸發(fā)端子trig一個10us以上的高電平即可觸發(fā),觸發(fā)后echo端子將接受到高電平,高電平的持續(xù)時間就是測距的往返時間。 下面是我寫的代碼:我想測試自己使用該模塊是否正確,于是就想實現(xiàn)如果echo端接受到了高電平,蜂鳴器BEEP就響。但... /* HC-SR04使用方法:給觸發(fā)端子trig一個10us以上的高電平即可觸發(fā),觸發(fā)后echo端子將接受到高電平,高電平的持續(xù)時間就是測距的往返時間。 下面是我寫的代碼:我想測試自己使用該模塊是否正確,于是就想實現(xiàn)如果echo端接受到了高電平,蜂鳴器BEEP就響。但是實際使用的時候發(fā)現(xiàn)并非預(yù)期結(jié)果,情高人幫忙看看下面的代碼有何問題。代碼不長,望大神賜教! */ #include #define uchar unsigned char #define uint unsigned int /*位定義*/ sbit CHUFA=P0^1; //位定義超聲波觸發(fā)端(10us以上高電平觸發(fā)) sbit JIESHOU=P0^3; //接收端(接受高電平) sbit BEEP=P2^0; //蜂鳴器 sbit OUT0=P3^2; //外部中斷0 uchar JS_FLAG; //接收標(biāo)志 uint CF_TIME,t0,t1,shu; /*函數(shù)聲明*/ void timer0(); void int0(); void display(uint); main(){ CHUFA=0; //初始化拉低觸發(fā)端和接收端電平 JIESHOU=0; JS_FLAG=0; CF_TIME=15; //初始化觸發(fā)時間(大于10us) TMOD=0x11; //定時器方式選擇 EA=1; //開總中斷 ET0=1; //開定時器0中斷 EX0=1; //開外部中斷0 IT0=0; //外部中斷選擇下降沿觸發(fā) //JIESHOU=1; while(1){ OUT0=JIESHOU; //外部中斷0被賦值為接收端信號,當(dāng)出現(xiàn)下降沿是觸發(fā)外部中斷0 if(JS_FLAG==0){ //如果沒有接收到高電平則觸發(fā) CHUFA=1; while(CF_TIME--); //10us以上高電平觸發(fā)傳感器 } if(JIESHOU==1){ TR0=1; //如果接收端收到高電平則啟動定時器 JS_FLAG=1; //并且標(biāo)志位置1 BEEP=0; //蜂鳴器響 } display(t1); //顯示測量時間(秒) } } /*定時器0中斷程序*/ void timer0() interrupt 1{ TH0=(65536-10000)/256; //裝初值 10ms TL0=(65536-10000)%256; t0++; //每進入一次中斷t0加1 } /*外部中斷0中斷程序*/ void int0() interrupt 0{ TR0=0; //一旦進入外部中斷0,說明接收端收到下降沿信號。關(guān)閉定時器0 JS_FLAG=0; //接收標(biāo)志位置0 BEEP=1; //關(guān)閉蜂鳴器 t1=t0*10/1000; //測量時間為 進入定時器中斷次數(shù)t0乘以每次時間10ms,除以1000化為秒為單位 t0=0; //t0清零 } /*數(shù)碼管顯數(shù)函數(shù)*/ void display(uint shu){ //數(shù)碼管顯示函數(shù) } 展開
2013-05-11 19:12:16 577 2
請問適合51單片機用的50M測距用哪種超聲波芯片好
 
2012-10-03 21:03:52 396 2
超聲波測距和單片機的連接
超聲波測距四個引腳vcc,gnd,trig,echo和單片機怎么連?直接連到io口就可以了嗎?之間需要什么電阻之類的東西嗎?謝謝各位好心人了
2013-01-21 23:41:05 529 1
求US-100(模塊)超聲波測距的C語言程序,基于51單片機的,3Q哦~
求基于51單片機的US-100超聲波測距C語言程序。需要詳細(xì)點的具體設(shè)計程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實現(xiàn)2--150cm的測距,測得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪... 求基于51單片機的US-100超聲波測距C語言程序。需要詳細(xì)點的具體設(shè)計程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實現(xiàn)2--150cm的測距,測得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪位大神幫幫忙嘍,急?。。。≌嫘闹x謝大神了~ 展開
2017-05-17 15:16:00 580 1
超聲波測距或單片機的英文資料
我做畢業(yè)設(shè)計 要用的 關(guān)于超聲波車在倒車?yán)走_(dá) 測距 誰有相關(guān)英文文獻及翻譯啊 英文Z好要原版的 翻譯不要簡單的軟件翻譯的 拜托各位大哥 幫幫小弟
2010-04-27 04:04:26 479 2
基于 VB6.0 和 51單片機 的 超聲波 液位計
我想做一個基于VB6.0和51單片機的超聲波液位計,單片機通過超聲波測距模塊測距,并通過URAT串口和上位機通訊,VB編寫上位機程序,將液位值和曲線顯示在上位機程序界面中。 因為本人VB初學(xué),之前也沒有上下位機通訊編程的經(jīng)驗,在CSDN和pudn上面下載的類似... 我想做一個基于VB6.0和51單片機的超聲波液位計,單片機通過超聲波測距模塊測距,并通過URAT串口和上位機通訊,VB編寫上位機程序,將液位值和曲線顯示在上位機程序界面中。 因為本人VB初學(xué),之前也沒有上下位機通訊編程的經(jīng)驗,在CSDN和pudn上面下載的類似上下位機程序貌似都有些問題,煩請各位分享分享,有相關(guān)例程Z好,沒有的話,Z簡單的上下位機通訊測試程序也行,如果問題解決了,除了這30分外,我再多給幾十分百來分也沒問題,我的編程環(huán)境是VB6.0中文版和keil uvision3。單片機用STC89C52。。 文件比較大的話,Z好是工程文件包,可以發(fā)我郵箱里,thomas287@126.com和QQ:287153136。如果問題解決一定重謝,期待大蝦的回復(fù)! 展開
2011-02-08 09:42:05 885 5
基于單片機的超聲波測距系統(tǒng)的答辯有什么問題
 
2017-06-07 04:45:19 636 1
單片機的超聲波測距的申請理由怎么寫
 
2018-11-25 12:56:44 345 0
GP2Y0A21YK0F紅外測距傳感器怎樣用怎樣接51單片機用51控制它
 
2017-08-06 11:44:06 933 1

4月突出貢獻榜

推薦主頁

最新話題