单片机开发无线控制系列-手机无线超声波测距

本文介绍了如何使用STM32单片机进行超声波测距并配合手机蓝牙调试器实现无线控制。通过初始化超声波模块、设置外部中断检测Echo口的上升沿和下降沿,利用定时器计时来计算距离。在手机端,配置通信并编辑控件以接收和显示测距数据。
摘要由CSDN通过智能技术生成

    用超声波模块来测距是非常方便有效的方式,而且精度比较高。超声波测距模块就是通过测量声波从发出到反射回来的时间来计算距离。因为声音在空气中传播的速度大概在340m/s左右,知道了往返时间再乘以速度就可以得出距离了。当然声速并不一定是固定的,这与空气温度、气压都是有一定关系的,因此超声波存在一定的误差。

    超声波模块提供的使用接口很简单,除了5V和GND的供电接口外,提供了Trig和Echo两个口。在使用时,如下图:

 

    首先单片机通过Trig口,产生10微秒以上的高电平(其实时间更长一些也不会有太大影响),然后超声波模块会自动发射出一串40kHz的超声波。发射结束后,超声波模块内部开始计数,超声波被发出后,沿直线方向前进,如果遇到面积比较大的目标,其一部分的声波会被反射回来,然后在A点时刻,返回的声波被超声波探头接收到。超声波模块接收到回波就会立刻拉高Echo引脚,然后持续 “它等待声波的那段时间” 后,在B点时刻将Echo下拉。

    因此在使用时,我们需要在Echo的上升沿(A点)开始计时,然后在下降沿(B点)停止计时,得到的时间就是声波传递往返的时间。

一、单片机部分

1.1硬件连接

    这里我用两个普通IO口连接其Trig和Echo。在程序中使用的是Trig为PA6,Echo为PA7。

1.2代码编写

1.2.1超声波程序

    首先初始化,这里采用STM32的EXTI(外部中断)的功能,用于检测Echo口的上升沿和下降沿,以确定A点和B点。然后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值