stm32超声波测距代码_超声波测距传感器应用实例,Arduino驱动并用LCD显示
(原创:奔跑的晶体管)1.硬件原理本节用Arduino驱动超声波测距传感器测试距离,并将距离值在LCD1602实时显示。超声波测距传感器用到的是SR04。SR04SR04的量程是2—450cm,还是比较远的,精度可以达到0.3cm,它的工作原理是采用 IO 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回,有信号返回,则通过 IO 输出一高

(原创:奔跑的晶体管)
1.硬件原理
本节用Arduino驱动超声波测距传感器测试距离,并将距离值在LCD1602实时显示。超声波测距传感器用到的是SR04。

SR04
SR04的量程是2—450cm,还是比较远的,精度可以达到0.3cm,它的工作原理是采用 IO 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回,有信号返回,则通过 IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340M/S))/2。

超声波时序图
从上面的时序图可以看到,只要给触发信号提供一个10us的高电平,模块内部就会循环发出8个40KHz的脉冲电平,并检测回波,一旦检测到回波,就会输出回响信号,回响信号是一个高电平,高电平的长短,与检测距离成正比。
LCD1602的驱动原理以前文章已有介绍了。Arduino和1602与超声波模块直接用杜邦线连接,原理图如下。

硬件原理图
2.程序解读
算法描述:
控制口发一个 10US 以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时得到此次测距的时间,就可以算出距离。
测试距离=(高电平时间*声速(340M/S))/2 ,算得的距离在LCD1602上显示,这里需要注意的是,LCD1602显示之前需要清屏,否则液晶会有残影,显示的数字是不正确的。
代码解读:
详细代码解读如图注释。

代码
3.实物效果
我们用一把尺子做对比,检测超声波测试的距离,发现测试结果还是比较准确的。请看实物效果图,连接用的是杜邦线。

实物连接图
实验效果图:

效果图
欢迎点赞和转发,关注头条号:奔跑的晶体管 可以学到更多的电子知识哦。

更多推荐
所有评论(0)