网上的蓝桥杯教程(模块)中,超声波模块大多发送八个周期的40khz方波. 然而在实际操作中,会显得非常不稳定.
在一次ai debug会话中,ai给出了以下发送超声波代码:
1 | void Transmit() { |
这段脉冲的周期远低于八个周期,但出乎意料的,这段代码运行的很稳定.
于是,为了求证,我在4T平台找到蓝桥杯官方给出的超声波代码:
1 | unsigned char Dist_Meas(void) |
它一共翻转了ucNum次电平,翻转了10次,也就是5个周期的40khz方波.
主包懒得做控制变量的实验,但以上似乎也能说明8个周期的方波对于蓝桥杯板子的超声波模块来说,过于多了,以至于可能出现:RX 的放大/比较电路在发射期间被串扰饱和的情况。导致等脉冲发完,换能器还在机械余震,RX 继续振荡,造成干扰.
8周期的 8051 超声波例程最早来自某个开发板,那个板的接收电路增益低,需要 8 个脉冲才能让回波高于比较器阈值. 蓝桥杯竞赛板的模拟前端比那些开发板好,1个脉冲就够了.