基于STM32的超声波倒车检测装置
一、前言
这里是为了完成学校嵌入式系统及应用实验而做的一个作业,硬件资源使用的是STM32F103VBT6开发板、HC-SR04超声波模块,蜂鸣器和数码管开发板上以及集成了。
完成了如下功能:1.使用外设超声波模块达到测距功能;2.通过串口发送指令,使整个装置进行倒车检测工作;3.可通过串口实时查看车辆距离障碍物的距离;4.同时数码管也可实时显示当前车辆距离障碍物的距离;5.当车辆距离障碍物距离小于10cm,蜂鸣器开始报警,串口输出WARNING!!!警告驾驶者距离过近。
二、基本原理
1.超声波测距原理
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给至少10us 的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
2.超声波时序图

以上时序图表明你只需要提供一个10uS 以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式: uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为60ms 以上,以防止发射信号对回响信号的影响。
3.串口通信原理
(1)接口通过三个引脚与其他设备连接在一起。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。
这个之前博文有详细说过,这里不在赘述STM32串口通信
4.数码管原理
数码管动态显示原理:动态显示的特点是将所有数码管的段选并联在一起,有位选控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所有在选择限流电阻时应略小于静态显示电路中的。
5.蜂鸣器原理
本装置中控制蜂鸣器的方式采用I/O 口定时翻转电平驱动蜂鸣器。使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2duty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。
6.GPIO原理
根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。①输入浮空 ②输入上拉 ③ 输入下拉 ④ 模拟输入 ⑥ 开漏输出 ⑦ 推挽式输出 ⑧ 推挽式复用功能 ⑨ 开漏复用功能,本装置采用的超声波模块,则复用了发送电平引脚PA0设置为推挽输出,返回电平引脚PA1设置为浮空输入。之前博文也有说到,这里不在赘述STM32GPIO
三、子模块设计以及代码
1.超声波测距模块
HC-SR04超声波模块有VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四支线。刚好利用开发板EXT区的四个引脚,只需要复用GPIO实现输出输入功能即可。
超声波模块的关键代码如下:
ultrasonic.c
#include "ultrasonic.h"
#include"delay.h"
//超声波硬件模块初始化
void Ultran_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
//发送电平引脚PA0设置成推挽输出

本文介绍了基于STM32的超声波倒车检测装置的制作过程,包括超声波测距原理、串口通信、数码管显示和蜂鸣器报警等功能。通过发送串口指令启动装置,数码管实时显示距离,当车辆靠近障碍物10cm内,蜂鸣器报警。
最低0.47元/天 解锁文章
1211





