自学内容网 自学内容网

2025蓝桥杯(单片机)备赛--扩展外设之超声波测距原理与应用(十一)

1  超声波测距原理

接收器接到超声波的时间差。超声波发射器想某一方向发射波,再发射时刻开始计时 超声波在空气中传播,遇到障碍物则返回,超声波接收器收到反射波,立即停止计时。

s=340*t/2;

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)!