全部評論(4條)
-
- 兒麥粒 2011-08-15 00:00:00
- 呵呵,這樣你信號如何處理了,做不好的話3m效果都不是很好。。。
-
贊(6)
回復(fù)(0)
-
- 洧坵eixiao 2011-08-17 00:00:00
- 探頭,硬件,軟件一體化,缺一不可。
-
贊(16)
回復(fù)(0)
-
- 幸運(yùn)*lwn 2011-08-15 00:00:00
- 提高超聲波測試距離的辦法有三種: 1、降低超聲波的頻率; 2、加大超聲波發(fā)射功率; 3、提高超聲波接收的靈敏度,提高放大電路的增益; 別單從一方面考慮,綜合考慮這些因數(shù)才容易把問題解決。
-
贊(8)
回復(fù)(0)
-
- 可愛的李111222 2017-10-18 20:46:51
- 這個要看超聲波模塊收發(fā)能力,單片機(jī)只處理數(shù)據(jù)。
-
贊(19)
回復(fù)(0)
熱門問答
- 用51單片機(jī)實現(xiàn)超聲波測距怎樣才可以測到4m?
2011-08-14 00:36:29
485
4
- 51單片機(jī)超聲波測距用lcd顯示
- 51單片機(jī)超聲波測距用lcd顯示1602顯示屏
2018-11-24 01:55:06
380
0
- 51單片機(jī)超聲波測距模塊代碼
- ****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時器1和外部中斷呢 這時候回波已經(jīng)回來了啊 不是測不出超聲波回波的時間了... ****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時器1和外部中斷呢 這時候回波已經(jīng)回來了啊 不是測不出超聲波回波的時間了嗎還有就是 為什么在whlie循環(huán)前先打開了總中斷 然后進(jìn)入whlie又立刻關(guān)閉 再重新打開 那diyi次打開不是很多余嗎 麻煩大神解答一下 展開
2018-06-26 20:47:55
563
1
- 求51單片機(jī)超聲波測距代碼
2011-08-20 06:16:46
488
2
- 用51單片機(jī)做超聲波測距都需要什么元件?
- 用51單片機(jī)做超聲波測距都需要什么元件(探測的距離5到10米左右)?知道的話發(fā)到我郵箱里zhanxiage1994@sina.com謝謝了
2012-03-28 03:51:02
344
1
- 51單片機(jī) 超聲波測距 控制直流電機(jī)正反轉(zhuǎn)
- 通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時,直流電機(jī)反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時,直流電機(jī)停止;當(dāng)距離小于設(shè)定值A(chǔ)時,直流電機(jī)正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機(jī)所處的各個狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液... 通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時,直流電機(jī)反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時,直流電機(jī)停止;當(dāng)距離小于設(shè)定值A(chǔ)時,直流電機(jī)正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機(jī)所處的各個狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液晶上實時顯示。 展開
2015-07-12 14:27:24
787
1
- 做一個51單片機(jī)超聲波測距需要哪些器材
2017-02-28 00:10:01
438
1
- GP2Y0A21YK0F紅外測距傳感器怎樣用怎樣接51單片機(jī)用51控制它
2017-08-06 11:44:06
933
1
- 這個51單片機(jī)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單片機(jī)用的50M測距用哪種超聲波芯片好
2012-10-03 21:03:52
394
2
- 想學(xué)下51單片機(jī)的超聲波測距,有幾個疑問。
- 想學(xué)下51單片機(jī)的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機(jī)供給超聲波信號端Trig一個Z少10us長的高電平信號,模塊自動發(fā)射8個40khz的方波,自動檢測到信號是否返回,有信號返回,Echo端輸出一個高電平,高電平持續(xù)的實踐就是超... 想學(xué)下51單片機(jī)的超聲波測距,有幾個疑問。 在百度上看到的超聲波模塊工作原理:單片機(jī)供給超聲波信號端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
446
2
- 求個51單片機(jī)超聲波測距(距離+報警)的c程序
- 求個51單片機(jī)超聲波測距(距離+報警)的c程序
2017-05-19 03:18:16
460
1
- 51單片機(jī) 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++; //每進(jìn)入一次中斷t0加1 } /*外部中斷0中斷程序*/ void int0() interrupt 0{ TR0=0; //一旦進(jìn)入外部中斷0,說明接收端收到下降沿信號。關(guān)閉定時器0 JS_FLAG=0; //接收標(biāo)志位置0 BEEP=1; //關(guān)閉蜂鳴器 t1=t0*10/1000; //測量時間為 進(jìn)入定時器中斷次數(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單片機(jī)之間通過什么連接線可以實現(xiàn)主從機(jī)
2017-03-27 23:30:32
404
2
- 51單片機(jī)實現(xiàn)pwm對電機(jī)調(diào)速
2018-07-22 09:03:42
466
3
- 超聲波測距和單片機(jī)的連接
- 超聲波測距四個引腳vcc,gnd,trig,echo和單片機(jī)怎么連?直接連到io口就可以了嗎?之間需要什么電阻之類的東西嗎?謝謝各位好心人了
2013-01-21 23:41:05
527
1
- 用51單片機(jī)設(shè)計信號發(fā)生器,
- 用51單片機(jī)設(shè)計信號發(fā)生器,具體要求如下:1.利用實驗板平臺設(shè)計制作一個信號發(fā)生器,能產(chǎn)生10—10KHZ的方波2.能通過鍵盤輸入頻率,輸入范圍為10-10KHZ,超過范圍報警提示3.要求輸... 用51單片機(jī)設(shè)計信號發(fā)生器,具體要求如下: 1. 利用實驗板平臺設(shè)計制作一個信號發(fā)生器,能產(chǎn)生10—10KHZ的方波 2. 能通過鍵盤輸入頻率,輸入范圍為10-10KHZ,超過范圍報警提示 3. 要求輸出頻率誤差小于1% 急,,,急,,急............... 展開
2010-12-30 04:45:07
473
2
- 超聲波測距時51單片機(jī)控制八段數(shù)碼管時,用2個4位的74LS244咋連數(shù)碼管?
- 幫我聯(lián)系啊吧,論文很急?。?
2018-11-19 06:44:05
350
0
- 超聲波測距傳感器直接用51供電就能用的還是需要接放大電路才能用
2017-03-12 05:32:58
446
1
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論