2025蓝桥杯(单片机)备赛--扩展外设之超声波测距原理与应用(十一)
1 超声波测距原理
接收器接到超声波的时间差。超声波发射器想某一方向发射波,再发射时刻开始计时 超声波在空气中传播,遇到障碍物则返回,超声波接收器收到反射波,立即停止计时。
SOR4原理: 通过IO口(TRIG)产生一个大于10us的方波,模块自动发送8个40khz方波,自动检测有无信号返回 当接受到返回信号时,ECHO输出一个低电平,由此可得高电平持续时间即为一来一回的时间 12us延时使用ISP生成,12US符合12MHZ (测量周期大于66mS)。
代码实现:
通过P10产生方波,产生8个方波(>10us),即可产生64个40kHZ的方波,更加准确 P10=1;DELAY;P10=0;DELAY;
P10产生方波TRIG触发后,开始计时,使用T1,初始化TH1,TL1,使能TR1即可 等到ECHO为 低时,结束计时(TR=0;)
开始计算,(340*t/2x1000)t的单位是us,单位统一的话要化为s,速度为cm/s
说明:由图可知,P10是Trig,P11是THR。
2 产生12us方波代码
void Delay12us() //@12.000MHz
{
unsigned char i;
_nop_();
_nop_();
i = 33;
while (--i);
}
void Send_Wave(void)
{
unsigned char i=0;
for(i=0;i<8;i++)
{
P10=1;
Delay12us();
P10=0;
Delay12us();
}
}
获得距离代码:
注意:返回值是16位的
u16 Get_Distance(void)
{
u16 dist=0;
Send_Wave();
TH1=0;TL1=0;
//先置0,在开启定时器,计数,发的方波足够多,更准确。
TR1=1;
while(P11==1);
TR1=0;
dist=(TH1<<8)|TL1*0.017;
//d= (340*100)*(t*10^-6)/2;单位是cm和us
return dist;
}
2025蓝桥杯(单片机)备赛--扩展外设之NE555的使用及定时器1的详细讲解(十)_蓝桥杯ne555-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之DS1302的使用(九)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--PCF8591(八)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--AT24C02(七)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设控制之DS18B20(六)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之共阳数码管(四)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之继电器和蜂鸣器(三)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之LED(二)_2024蓝桥杯单片机资料-CSDN博客
2025蓝桥杯(单片机)备赛--基本框架搭建(一)_蓝桥杯单片机大赛-CSDN博客
原文地址:https://blog.csdn.net/m0_75014814/article/details/143926390
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!