超声波模块原理

超声波模块原理

此模块性能稳定,测度距离精确,模块高精度,盲区小。
产品应用领域: 机器人避障 物体测距 液位检测 公共安防 停车场检测 。
接线方式:VCC、trig(控制端)、 echo(接收端)、 GND

基本工作原理: (1)采用IO口TRIG触发测距,给至少10us的高电平信号; (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2; 本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,即可以达到你移动测量的值

操作:初始化时将trig和echo端口都置低,首先向给trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。

代码编写

在做超声波测距的代码,第一步先对串口初始化
void initUart_115200()
{
SCON=0x50; //串行控制器
T2CON |=0x1<<4 | 0x1<<5;
TH2=0xFF;
TL2=0xFD;
RCAP2H=0xFF;
RCAP2L=0xFD;
TR2=1;// 启动定时器,让定时器工作,数节拍
IE |=0x1<<4;//串行口一中断允许位
IE |=0x1<<7;//CPU总中断控制位
}
在做完串口初始化后,就要做超声波的初始化了,也就是让超声波开始工作,给超声波10us的高电平,超声波初始化包括计时器功能。要给超声波脉冲,首先给它一个低电平,再给他连续的10us的高电平,再拉低。
也就是
void dalay10us()//定时器
{
TMOD |=0x1;
TH0=0xFF;
TL0=0xF6;
TR0=1;
while(!TF0);//等待溢出
TF0=0;//溢出后让它重新置0
}
void initCSB()//超声波初始化
{
Trig=0;
Trig=1;
dalay10us();
Trig=0;
}
接着在Trig在有了10us的秒冲后,检测Echo的值,当Echo=0的值置为高电平后,开始计时,Echo=1置为低电平后返回,发出值,结束计时,这样就得出波太的值了;代码如下
void startTime()
{
TH0=0;
TL0=0;//让计时器从0开始数数
TR0=1//开始计时
}
void endTime()
{
TR0=0;//结束计时
}
int getBOTime()
{
unsigned int time;
time=TH0<<8 | TL0//次数一次的时间 us或 TH0256+TL0 跳动的次数(跳动一次的时间是10us)
return time;
}
float getDis(unsigned int time)
{
float distance;
distance = (float)time * 0.017;//340/2 * 100/1000000
return distance;
}
int main()
{
unsigned int time = 0;
char buf[24]={’’\0"};
float dis;
initUart_115200();
while(1){
initCSB();
while(Echo!=1)//波出去,echo1,退出循环,并开始计时
startTime();
while(Echo!=0)//波回来,echo
0,退出循环,并结束计时
endTime();
time=getBOTime();//获取波的时间
dis=getDis();//计算距离
spintf(buf,“getDis=%fcm\r\n”,dis);
sendString(buf);
delay(200);
}
}
sbit Trig = P1^0;
sbit Echo=p1^1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值