本帖最后由 jinglixixi 于 2017-5-16 11:20 编辑
超声波测距模块是一种通过回波的用时来推算距离的器件,要使用它来测距其实很简单,只需为它选取一个合适的MCU并配置一个显示器即可。 由于STM32L496在内部已集成了计时器,因此用好它就是了。至于显示器的选择,可选取LCD5110来充当,因为它能用STM32L496开发板所配备的Arduino来简化连线。它与STM32L496的连线关系如下: LCD_CLK --- PD15 LCD_DIN --- PD14 LCD_DC --- PA7 LCD_CS --- PA5 LCD_RST --- PA6
超声波检测模块与STM32L496的连线情况如下: Trig --- PF9 Echo --- PF7
连线后的检测效果如下图所示。
对应的距离检测值输出是放在定时器捕捉处理中断函数中,其内容如下: - void HAL_TIM_IC_CaptureCallback (TIM_HandleTypeDef *htim)
- {
- int n,m;
- if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
- {
- echoBack=1;
- Length=HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
- n=Length*0.17;
- LCD_prints(0,0,"Length=");
- LCD_printc(0, 1,n/1000+0x30);
- LCD_printc(1, 1,n%1000/100+0x30);
- LCD_printc(2, 1,n%100/10+0x30);
- LCD_printc(3, 1,n%10+0x30);
- LCD_printc(4, 1,'.');
- LCD_printc(5, 1,m%10+0x30);
- LCD_prints(6,1,"mm");
- }
复制代码
未来的改进方向是实现超声波测距模块的多通道检测处理,以便用于组合仪表方面。
程序代码:
|