摘要:超声波测距是一种典型的非接触测量方式,应用非常广泛。
本文提出了一种基于STM32单片机的高精度超声波测距方案。
与传统单片机相比,STM32的主频和定时器的频率可以通过PLL倍频高达72MHz,高分辨率的定时器为高精度的测量提供了保证。
超声波的发射使用定时器的PWM功能来驱动,回波信号的接收使用定时器的输入捕获功能,开始测距时,定时器的开启将同时启动PWM和输入捕获,完全消除了启动发射和启动计时之间的偏差,提高了测量精度。
为使回波信号趋于稳定,设计了时间增益补偿电路(TGC),在等待回波的过程中随着时间的推移需要将放大器的增益值不断增大,通过实验获取不同距离需要设置的增益值,对应不同时间需要设置数字电位器的增量,并将该参数固化在单片机的FALSH中,在测距过程中,根据时间查询电位器增量表改变电位器阻值,实现回波信号的时间补偿,提高了测量的精度。
为了在减小盲区的同时而不减小测量范围,设计了双比较器整形电路分别处理近、远距离的回波信号,近距离比较器可以有效屏蔽超声波衍射信号从而减小了测量盲区。
传统的峰值检测方法大多通过硬件电路实现,设计较复杂,稳定性差。
本文通过软件算法对回波信号进行峰值时间检测。
不只简化了电路,降低了成本,而且提高了系统的稳定度。
经研究表明,该系统测量精度达到了lmm,盲区低至3cm,量程可达500cm。
本系统在近距离测试时,系统的精度较理想,可作为停车时的倒车雷达使用,也可以用于液面检测(油箱液位),还可以用于自动门感应,机器人视觉识别等。
如果多使用几个测距仪,将这些集成一个大系统,那么整个大系统可用于定位避障。
1