嵌入式课程 之 超声波传感器实验

版权归如下公司,禁止非授权转载:

  • 北京西普阳光教育科技股份有限公司(https://www.simpleware.com.cn)
  • 维周机器人科技有限公司(http://www.vejoe.com)


【实验目的】

1、熟悉超声波传感器的工作原理;
2、了解HC-SR04超声波传感器的测量范围、测量精度等特性;
3、掌握STM32F10xx系列微控制器上超声波传感器的接口配置与数据采集过程。

【实验原理】

一、HC-SR04超声波传感器简介

超声波传感器是利用检测采集超声波的形式来获得环境信息的传感器。通常用于测距、定位等具体应用场景。超声波是一种弹性介质中的机械波,通常其振动频率为几十KHz到几十MHz(人体能听到的声音频率在20Hz到20KHz)。相比与人耳能听到的声波,超声波具有频率高、波长小、绕射现象小等特点,其传播的方向性强,因此可以用来检测一个固定方向上的距离信息。

本实验采用HC-SR04超声波测距模块,该模块在空气中的测量范围为20mm到4000mm,其测量精度达到3mm。HC-SR04超声波测距模块的硬件实物图如图1.1所示,该模块主要包涵超声波发射器、超声波接收器和外围控制电路。在电路板上一共引出4根引脚,对映于图1.1模块摆设的方向,其接口从左到右分别为VCC(+5V)、Trig(触发信号输入)、Echo(回响信号输出)、GND。

二、工作原理

在外部电路正常供电的情况下,外部采集电路通过给该模块的Trig引脚上输入一个长为10us至20us的高电平信号,以开启一次采集。在模块接收到方波的输入后,超声波发射器会向正前方自动发射8个40KHz的声波信号,于此同时,回响信号的输出端会从低电平跳转为高电平。发射出去的超声波经过前方障碍物的反射,产生相同频率的反射回波,超声波接收器接受到反射回波后,回响信号输出端会从高电平跳转为低电平。对于外部采集电路,需要利用定时器采集回响信号为高电平的总时长T秒,然后根据声音在空气中的传播速度344米/秒计算出模块到障碍物之间的距离D=T*344/2米。

STM32芯片中集成了强大的定时器模块,其工作状态主要有以下几种模式:输入捕获模式、PWM输入模式、强制输出模式、输出比较模式、PWM模式、单脉冲模式等。在本实验中需要用到的是定时器模块的输入捕获模式。当定时器工作在输入捕获模式下时,当芯片检测到ICx信号引脚上相应的跳变沿后,定时器会将当前的数值锁存在TIMx_CCRx(捕获/比较寄存器)中,同时,在TIMx_SR寄存器中相应的CCxIF标志位被置‘1’,若预先配置使能了中断操作,则同时会响应中断函数。
在这里插入图片描述
图1 HC-SR04超声波测距模块示意图

三、硬件连接和相关库函数介绍

在这里插入图片描述
图2 硬件连接示意图
TIM_TimeBaseInitTypeDef结构体参数的配置如下:

typedef struct 
{
   
             uint16_t TIM_Prescaler; // 预分频器
             uint16_t TIM_CounterMode; // 计数模式
             uint32_t TIM_Period; // 定时器周期
             uint16_t TIM_ClockDivision; // 时钟分频
             uint8_t TIM_RepetitionCounter; // 重复计算器
} TIM_TimeBaseInitTypeDef;

(1) TIM_Prescaler:定时器预分频器设置,时钟源经该预分频器才是定时器时钟,它设定TIMx_PSC 寄存器的值。可设置范围为 0 至 65535,实现 1 至 65536 分频。
(2) TIM_CounterMode:定时器计数方式,可是在为向上计数、向下计数以及三种中心对齐模式。基本定时器只能是向上计数,即 TIMx_CNT 只能从 0 开始递增,并且无需初始化。
(3) TIM_Period:定时器周期,实际就是设定自动重载寄存器的值,在事件生成时更新到影子寄存器。可设置范围为 0 至 65535。
(4) TIM_ClockDivision:时钟分频,设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分频比,基本定时器没有此功能,不用设置。
(5) TIM_RepetitionCounter:重复计数器,属于高级控制寄存器专用寄存器位,利用它可以非常容易控制输出 PWM 的个数。这里不用设置。

四、软件流程图

本实验中使用到的库文件有:oled.c显示屏库函数、sys.c系统库函数、delay.c延时库函数。实验的流程示意图如图3所示:

图3 程序流程示意图

【实验环境】

硬件设备

双轮自平衡机器人。如图4所示,在平衡车背面中间安装了HC-SR04超声波测距模块。
ST-Link下载器(包含USB线与下载线)。如图5所示。
操作系统:
Windows7/8/10,32bit/64bit

在这里插入图片描述
图4 双轮自平衡机器人
在这里插入图片描述
图5 ST-Link下载器与下载线

软件环境

Keil 5

实验场地

为了直观感受测距效果,试验场地最好设有平整无遮挡墙面。

【实验步骤】

第一步 配置工程环境

打开已经建立好的工程模板,在新建立的工程模板中已经添加五个文件夹,分别命名为USER、HARDWARE、SYSTEM、CORE、FWLib文件夹࿰

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放羊郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值