历史上的今天
今天是:2025年03月10日(星期一)
2021年03月10日 | STM32L053开发板 超声波测距系统
2021-03-10 来源:eefocus
本次使用STM32L053开发板,本计划利用多个超声波模块HC-SR04完成一个空间目标空间定位系统,但是由于无线通信芯片nRF24L01迟迟没有调试成功,所以此处先使用超声波模块HC-SR04制作一个超声波测距系统,后面等待nRF24L01调试通过再完成原计划。
一、硬件组成
整个系统简图如下:

STM32L053通过HC-SR04测量出距离,然后再由LCD1602显示。
HC-SR04的引脚主要有VCC(电源)、trig(控制端)、 echo(接收端)、 GND(地)。VCC接+5V电源,GND接地,trig接PB1,echo接PB0。
LCD1602的引脚有VSS(电源地)、VDD(电源正极)、VL(液晶显示偏压信号)、RS(数据/命令选择端)、R/W(读/写选择端)、E(使能信号)、D0~D7(数据口)、BLA(背光源正极)、BLK(背光源负极)。VDD接+5V电源,VSS接电源地,RS接PB2,RW接PB10,E接PB15,D0~D7接PC0~PC7,其他信号按照下图连接。

本人采用一块实验板作为基本,将整个系统在板子上进行了搭建,搭建效果图如下:


二、软件编写
1、超声波测距
基本工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号; (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

2、LCD显示
LCD1602的基本操作分为四种:
1. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。
2. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。
3. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。
4. 写数据:输入RS=1,RW=0,E=高脉冲。输出:无。
进行如下的宏定义
#define LCD_DB(data) (GPIOC->ODR = ((GPIOC->ODR)&(0xFF00))|(data)) //完成写数据
#define LCD_RS_H (GPIOB->BSRR = 0x0004)
#define LCD_RS_L (GPIOB->BSRR = 0x0004<<16)
#define LCD_RW_H (GPIOB->BSRR = 0x0400)
#define LCD_RW_L (GPIOB->BSRR = 0x0400<<16)
#define LCD_E_H (GPIOB->BSRR = 0x8000)
#define LCD_E_L (GPIOB->BSRR = 0x8000<<16)
通过以上的宏,可以控制LCD控制口状态,写入命令和数据,具体就不详述了,详情可以参考附件中的程序(LCD1602.c)。
3、主程序
主程序比较简单,具体如下:

三、运行效果展示
最后制作整体的效果如下,能够使用,就是前端的超声波的指向有时不准,而且测量时周边最好不要有其他障碍物。
史海拾趣
|
高速球凭借高速旋转、大倍数变焦、监控范围广、操作方便等优势,以及宽动态、3D动态预置、图像快速定位、自动跟踪、隐私遮蔽等高附加值的功能,正进一步扩大应用范围。再加上短短几年间高速球的售价从几万跌落到目前的数千元,其在监控领域的普及速 ...… 查看全部问答> |
|
arm交叉编译环境出问题了; 环境变量设置都没有问题,但是执行下面查看版本号的命令时出现错误 hj@ubuntu:~/src$ arm-linux-gcc -v arm-linux-gcc: error while loading shared libraries: /usr/local/arm/lib/libc.so.6: ELF file OS ABI inval ...… 查看全部问答> |
|
请问大侠们, GPIB卡怎么安装? GPIB命令协议是什么? 谁有HP3456A或者其它有GPIB接口的仪器的最好是中文的说明书?偶咋 一份完整的都没找到。。。。。。 我见过有强人直接用单片机的IO口操作GPIB设备,请问这要掌握什么知识?要对GPIB协议很清 ...… 查看全部问答> |
|
现在要做一个互感器的校验仪,用DSP进行信号处理,用的是FFT,实验室现在有现成28335,可以用这个做不?选用什么型号的DSP 更好呢?谢谢大家啦~~… 查看全部问答> |
|
知识的积累,可以发生由量到质的变化。本人新手,想向各位高手收集各种经典程序,算法,架构....来研究,谢谢各位!!!(自己想出来的也可以,只要好用):rose:… 查看全部问答> |




