【NUCLEO-L496ZG评测】基于STM32L496的超声波测距仪
本帖最后由 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 ---PF9Echo ---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");
}
未来的改进方向是实现超声波测距模块的多通道检测处理,以便用于组合仪表方面。
程序代码:
感谢分享:$:$:$:$ 数字转换成字符使用sprintf方便一些 :loveliness::loveliness:支持。。。下 斜阳__ 发表于 2017-5-16 13:45
数字转换成字符使用sprintf方便一些
回头试一试。 楼上的,支持,要给分对吧!!!!:lol:lol:lol MrJiu 发表于 2017-5-17 09:24
楼上的,支持,要给分对吧!!!!
多谢了!!! 支持楼主 感谢
:D
页:
[1]