在做超声波程序时看好时序图,
首先要设计一个触发函数,也就是在驱动超声波模块检测距离时必须的前提。从时序
图可以看到,只需一个脉冲即可,但是必须要保证高电平持续的时间大于 10us。
当给模块一个触发信号后,模块内部会发出一个循环的 8 个 40KHZ 的脉冲,之后模块
内部进行测距,如果 ECHO 引脚输出高电平即输出回响信号后,这时候要使用定时器
进行定时,直到 ECHO 输出为低电平,定时结束。
怎么设计测出这段高电平定时时间呢?
首先我们可以估算下测到最大距离需要定时多长时间,看看定时器一次积满还要不要
累加,如果在 65535 之内的话,那么就不需要累加定时,否则还需要累加定时看看计
时了多少次。假如最大测距是 4 米,根据公式可以计算到定时时间最大为 23.5ms,也
就是最大为 23500us。在 65535 之内,所以不需要累加次数。
如程序: