ARM技术论坛
直播中

jinglixixi

8年用户 1550经验值
擅长:嵌入式技术 光电显示 接口/总线/驱动 控制/MCU
私信 关注
[经验]

【我是电子发烧友】基于STM32L496的超声波测距仪

    超声波测距模块是一种通过回波的用时来推算距离的器件,要使用它来测距其实很简单,只需为它选取一个合适的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
       连线后的检测效果如下图所示。
图片1.png

      对应的距离检测值输出是放在定时器捕捉处理中断函数中,其内容如下:
  1. void HAL_tiM_IC_CaptureCallback (TIM_HandleTypeDef *htim)
  2. {
  3.         int n,m;
  4.         if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
  5.     {
  6.                 echoBack=1;
  7.                 Length=HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
  8.                 n=Length*0.17;
  9.                 LCD_prints(0,0,"Length=");
  10.                 LCD_printc(0, 1,n/1000+0x30);
  11.                 LCD_printc(1, 1,n%1000/100+0x30);
  12.                 LCD_printc(2, 1,n%100/10+0x30);
  13.                 LCD_printc(3, 1,n%10+0x30);
  14.                 LCD_printc(4, 1,'.');
  15.                 LCD_printc(5, 1,m%10+0x30);
  16.                 LCD_prints(6,1,"mm");
  17.         }
      未来的改进方向是实现超声波测距模块的多通道检测处理,以便用于组合仪表方面。
    程序代码:

    main.rar (2017-5-16 11:27 上传)

    2.53 KB, 下载次数: 22

回帖(4)

谢俊雄

2017-6-23 12:21:06
思路不错 谢谢
举报

天奇

2017-7-30 15:26:54
帅气
举报

jinglixixi

2017-7-30 19:10:22

哈哈多谢了!!!
举报

sd_wangqin

2018-7-5 11:38:06
参考一下,应该可以的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分