对距离要求精度不高的情况下,如何使用延时函数来粗略的获取距离呢?
本文意在让初学者学会使用超声波模块
一、模块简介
超声波模块我们在很多领域都能得到应用
HC-SR04模块使用很简单,我们使用它来制作一些小设备完全足够。
我们一般的思路就是使用定时器,这样是非常准确的。
1.基本参数
管脚 | 说明 |
---|---|
VCC | 5V电源接口 |
GND | 接地 |
Echo | 信号输出 |
Trig | 信号输入 |
二、驱动思路
简单的来说,就说我们只需要掌握
- 如何触发模块
- 触发后如何获取信息
1.触发
从时序中可以看到,Trig信号输入引脚只需要给10us高电平,就能够触发模块工作2.接收
我们只需要等待Echo管脚的高电平,并从记录下高电平的时间即可。3.计算
公式:距离=高电平时间*声速(340M/S)/2。
三、51代码函数
1 | void delay10us(void) //误差 0us |
这里为什么使用10us延时,可能大家会有疑问,这个是取决于机器周期的,不能生成1us的延时函数。
四、END
延时看起来比较简单,但是实际上却有着一定误差,如果可以使用定时器那是最好的。
相信看完这个时序就能理解超声波模块的驱动方法了,
定时器驱动大同小异。