欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
超聲波精確測距 毫米級測距時間分辨率將如何改?
[打印本頁]
作者:
渦輪ii
時間:
2017-8-14 13:24
標題:
超聲波精確測距 毫米級測距時間分辨率將如何改?
/***********************************************************************************************************/
//HC-SR04 超聲波測距模塊 DEMO 程序
//晶振:11.0592
//接線:模塊TRIG接 P1.2 ECH0 接P1.1
//串口波特率9600
//精度為米級別的,毫米級測距時間分辨率將如何改?
/***********************************************************************************************************/
#include"chao.h"
unsigned int time=0;
unsigned int timer=0;
float S=0;
bit flag =0;
/*******************************************************************************
* 函 數 名 : Conut
* 函數功能 : 數據處理
* 輸 入 : 無
* 輸 出 : 距離S
*******************************************************************************/
float Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.87)/100; //算出來是CM
if(flag==1) //超出測量
{
flag=0;
S=0;
return S;
}
return S;
}
/*******************************************************************************
* 函 數 名 : delayms
* 函數功能 : 延時函數
* 輸 入 : ms
* 輸 出 : 無
*******************************************************************************/
void delayms(unsigned int ms)
{
unsigned char i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
/*******************************************************************************
* 函 數 名 : StartModule
* 函數功能 : 啟動模塊
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void StartModule()
{
Trig = 1; //啟動一次模塊
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
Trig = 0;
}
/*******************************************************************************
* 函 數 名 : ChaoShengBoInit
* 函數功能 : 超聲波模塊初始化函數,允許T0中斷,開啟定時器,開啟總中斷
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void ChaoShengBoInit()
{
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; //開啟總中斷
}
/*******************************************************************************
* 函 數 名 : CaiJi
* 函數功能 : 超聲波數據采集并轉換為數字信號
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void CaiJi(void)
{
StartModule();
while(!Echo); //當RX為零時等待
TR0=1; //開啟計數
while(Echo); //當RX為1計數并等待
TR0=0; //關閉計數
Conut(); //計算
delayms(100); //100MS
}
復制代碼
作者:
滄浪
時間:
2017-8-20 00:08
網上看的一些資料說這個模塊精準度最大也就在在3mm,自己實際用過達到這么高的精確度,如果非要那么高的精確度的話是不是需要采取補償手段。
作者:
zl2168
時間:
2017-8-21 10:16
超聲波傳遞速率與介質、溫度有關。探測精度有絕對精度和相對精度之分,把概念搞清楚。什么3mm?如果是倒車測距,絕對精度也就是0.5cm.
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1