基于STM32使用超声波HC-SR04模块

HC-SR04超声波测距模块的原理介绍与代码实现 文章目录1、超声波模块介绍1)产品特点2)基本工作原理3)实物图4)电气参数2、超声波模块原理1)超声波时序图2)实现思路3、参考代码1)stm8基于TIM1的ch1输入捕获实现2)51实现测距并使用数码管显示(淘宝提供) 1、超声波模块介绍 超声波模块一般使用的都是HC-SR04来进行测距 1)产品特点 HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测 距精度可达高到的非接触式距离感测功能,测距精度可达高到 3mm ;模块包括超声波发射器、接收器与控制电路。 2)基本 阅读详情

写在前面注意的几点:
1、HC-SR04模块必须使用5V供电,不能是3.3V
2、若单是测距,无需使用中断
3、Echo和Trig两个引脚可以任意接可用的GPIO,和定时器无关

说一下超声波的工作原理
这里写图片描述
单片机给Trig引脚一个最少10us的高电平,然后拉低引脚,便启动了模块,
然后超声波就被发了出去,超声波遇到障碍物后返回被模块接收,Echo引脚会输出一段高电平,高电平的时间与距离成比例;
那么我们所需要做的就是出发Trig引脚,然后测出Echo持续高电平的时间

以下是GPIO的设置:

void Ultrasonic_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//Trig
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

	GPIO_Init(GPIOB, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//Echo
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

	GPIO_Init(GPIOB, &GPIO_InitStructure);
}

以下是定时器2设置

void Timer2_Config(void)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,   ENABLE);

	TIM_TimeBaseInitStructure.TIM_Prescaler = 71;
	TIM_TimeBaseInitStructure.TIM_Period = 49999;
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;

	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
	
	TIM_ClearFlag(TIM2, TIM_FLAG_Update);
}

以下是距离转换函数

u32 Distance_Calculate(u32 count)
{
	u32 Distance = 0;
	Distance = (u32)(((float)count / 58) * 100);
	return Distance;
}

main函数

void main(void)
{
	u32 count = 0;
	u32 Distance = 0;
	
	USART_Config();
	NVIC_Configuration();
	LED_Init();
	Ultrasonic_Config();
	Timer2_Config();
	GPIO_ResetBits(GPIOB, GPIO_Pin_0);//点亮LED
	printf("Test start!");
	while(1)
	{
		GPIO_ResetBits(GPIOB, GPIO_Pin_8);//预先拉低Trig引脚
		GPIO_SetBits(GPIOB, GPIO_Pin_8);
		delay_nus(10);
		GPIO_ResetBits(GPIOB, GPIO_Pin_8);//发出10us的脉冲
		TIM2->CNT = 0;
		while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9) == 0);
		TIM_Cmd(TIM2, ENABLE);
		while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9) == 1);
		TIM_Cmd(TIM2, DISABLE);
		count = TIM2->CNT;
		Distance = Distance_Calculate(count);
		printf("Distance = %d.", Distance / 100);
		printf("%d cm\r\n", Distance % 100);
		delay_nms(500);
	}
}
stm32控制超声波测距模块HC-SR04 1.HS-SR04模块实物图、原理图、尺寸图 2.HC-SR04模块说明 2.1 产品特点: HC-SR04超声波测距模块包括超声波发射器、接收器与控制电路;接口:VCC,GND,TRIG 触发控制信号输入,ECHO 回响信号输出。 超声波模块HC-SR04电气参数 工作电压 DC 5 V 工作电流 15mA 工作频率 40kHz 最远射程 4m 最近射程 2cm 测距精度 3mm 测量角度 ... 阅读详情

相关推荐

STM32控制超声波测距模块HC-SR04

STM32控制超声波测距模块HC-SR04在学习STM32开发板的过程中,碰到一个常用的测距模块HC-SR04,本来想着很简单,结果使用时出现了种种问题,网上的代码乱七八糟基本上不能用,所以自己好好将这个东西梳理了一遍,现在将梳理结果和代买分享出来。第一次写博客,还请多多包涵与指正。HC-SR04主要参数 : 5V的电压 小于2ms的工作电流 2-450cm的探测距离

Zach_z的博客 1万+

STM32 超声波测距模块HCSR-04 驱动程序

超声波测距原理见:超声波测距原理 超声波测距模块:HCSR-04 采用定时器及外部中断方式/******************************************************************************* 超声波测距 测试平台:STM32F103ZET6最小系统 引脚连接:TRIG--PC0 ECHO--PC1 ********

stdEnable 1万+

STM32驱动HC-SR04超声波模块

STM32学习笔记——HC-SR04超声波测距模块 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录STM32学习笔记——HC-SR04超声波测距模块前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习

stm_white的博客 8652

error: #20: identifier "TIM_TimeBaseInitTypeDef" is undefined

如果出现多句错误:identifier "*****" is undefined解决问题方法一:C/C++ include paths 把文件路径添加进去解决问题方法二:在stm32f10x_conf.h将出错对应的  *.h 包含进去...

m0_37827405的博客 1万+

【STM32篇】驱动HC_SR04超声波测距模块

使用stm32f10x的外部中断和定时器辅助HC_SR04超声波测距模块完成测距,并通过OLED屏幕显示。

we_long的博客 8500

基于STM32的HC_SR04模块实现超声波测距(附源码)

基于STM32的超声波测距

qq_54347584的博客 7745

用树莓派3B+和HC-SR04超声波测距模块实现测距 (1)

HC-SR04有4 个引脚, 2 个电源引脚(Vcc 、GND)和 2 个控制引脚(Trig、Echo)Vcc 和 Gnd 接 3.3v DC 电源,但不推荐用独立电源给它供电,可以接树莓派的引脚给它供电。Trig 引脚用来接收来自树莓派的控制信号。接任意 GPIO 口。Echo 引脚用来发送测距结果给树莓派。接任意 GPIO 口。HC-SR04 的测距过程树莓派向 Trig 脚发送一个持续 10us 的脉冲信号。

KeCchuqiu的博客 500

基于STM32的HC-SR04超声波模块测距(新手级)

本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。

weixin_63758495的博客 2205

学习并使用HC-SR04超声波测距模块+STM32

** 超声波测距原理 ** 参考博客: https://blog.youkuaiyun.com/qq_40734815/article/details/105992801 https://blog.youkuaiyun.com/qq_43743762/article/details/103217402 利用HC-SR04超声波测距模块可以实现比较精确的直线测距,其测距原理图如下: HC-SR04的一端发出超声波,接触到反射物后反射,被另一个端口接收到,所以只要知道发射和接收的时间差,就可以根据声波传播的速率算出HC-SR04和反射

qq_46095529的博客 6206

STM32应用(五)基于输入捕获的超声波HC-SR04模块使用

本篇博客讲解了输入捕获实验原理和代码实现,并介绍了HC-SR04超声波模块的使用方法,分享了驱动代码。如果你觉得本篇博客还行的话,一键三连鼓励一下。关注三木,不迷路!

三木今天学习了嘛の博客 4611

STM32 HC-SR04超声波程序

使用STM32单片机,使用HC-SR04超声波模块测距,测试距离以厘米为单位显示在数码管上,数码管使用TM1640驱动。

HC-SR04超声波传感器驱动开发与STM32实战指南

本文详细介绍了HC-SR04超声波传感器的工作原理、STM32硬件连接方案及驱动开发实战。重点解析了传感器时序控制、定时器精确计时、温度补偿算法和滤波技术,提供了完整的代码实现和调试技巧,帮助开发者快速掌握超声波测距应用。

g2h3i4j5的博客 228

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2167

STM32—驱动HC-SR04超声波测距模块

文章目录超声波测距原理HC-SR04工作原理STM32实现驱动1.引脚的配置2.时序控制3.时间差测量4.如何将距离测出来 超声波测距原理 利用HC-SR04超声波测距模块可以实现比较精确的直线测距,其测距原理图如下: HC-SR04的一端发出超声波,接触到反射物后反射,被另一个端口接收到,所以只要知道发射和接收的时间差,就可以根据声波传播的速率算出HC-SR04和反射物直接的距离。 所以实现超...

肥宅快乐博客 2万+

半导体AMHS天车振动控制:从0.5G到超低振动的技术演进与工程实战

在先进晶圆厂中,自动化物料搬运系统(AMHS)的天车如同空中出租车,承担着晶圆盒(FOUP)在洁净室各工艺区间的转运任务。然而,当天车加减速、过弯或抓取时产生的机械振动通过轨道梁和建筑结构传递至光刻机等敏感设备,便可能直接威胁套刻精度与良率。传统被动减振方案依靠橡胶垫和弹簧,在0.5G指标时代曾行之有效,但在EUV光刻和先进制程面前已力不从心。主动振动控制技术通过传感器、控制器与作动器构成的闭环系统,在轨道吊点和机械手端实时输出反向力抵消振动,配合磁悬浮走行、轻量化结构及调度系统的路径优化,将振动从0.5G

weixin_29188043的博客 341

STM32F405实战:手把手教你实现永磁同步电机无感FOC控制(附完整工程文件)

本文详细介绍了基于STM32F405微控制器实现永磁同步电机无感FOC控制的完整实战方案。文章从硬件搭建、CubeMX配置入手,逐步讲解了FOC核心算法、SVPWM调制,并重点阐述了如何结合HFI高频方波注入与滑模观测器(SMO)实现全速域无感控制。内容涵盖算法原理、代码实现、参数整定及调试技巧,并附有完整工程文件,为开发者提供从理论到实践的全面指导。

sun99的博客 265

STM32 与超声波模块(HC - SR04)

通过将 STM32 微控制器与 HC - SR04 超声波模块相结合,我们可以方便地实现距离测量功能。本文详细介绍了 HC - SR04 模块的工作原理、硬件连接方法以及 STM32 代码实现。在实际应用中,可以根据具体需求对代码进行扩展,例如将测量结果通过串口发送到上位机、根据距离值控制其他设备等。同时,需要注意硬件连接的稳定性和电平转换问题,以确保系统的正常运行。

duierrorshuobu的博客 2347

【SigmaStudio】自定义算法组件之源码规范(二)

工作中自定义算法组件一般是dll文件,生成dll文件需要XML文件和DLB文件,记录一下DLB文件代码的编码规范,定义SigmaStudio SHARC算法开发的编码规则,涵盖函数原型、内存管理、接口结构体等关键要求,确保算法模块与SigmaStudio环境兼容

liang_song的博客 1377

STM32学习笔记——HC—SR04(超声波模块)

本文章是基于正点原子战舰V3开发板,主要目的是记录自己所学过的知识点和分享技术开发的乐趣 注意:本博客中只有部分代码。整个工程已经放到文章末尾,大家自行下载食用哦!!

精神小火君 4万+

外骨骼机器人(五):步态分析之正常步态

研究病理步态之前,需要了解正常步态,作为判断标准。但是需要记住两个问题:1.“正常”因人而异,性别、年龄、身体情况都需要考虑在内,因此,需要对不同的个体选择合适的正常标准;2.即使病人的步态与正常步态有某种不同,这也不能说明这是不可取的,也不能说明应该把它变成“正常”步态。许多步态异常是对病人的一些问题的一种补偿,尽管异常,但它们仍然是有用的。步态周期的定义是连续为两次发生重复行走事件之间的时间间隔。尽管可以选择任何事件来定义步态周期,但通常使用一只脚接触地面的瞬间(“初始接触”)是方便的。

行者无疆的博客 1993

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

【CubeMX配置STM32驱动超声波模块(HC-SR04)】

CubeMX配置STM32驱动超声波模块(HC-SR04)

qq_57709749的博客 6785

置顶必读(2) |《YOLOv8实战:从入门到深度优化》总目录导航 & 学习路线指南(持续更新中)

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 28万+

STM32基于HAL库的HC-SR04模块超声波测距

​ 超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等特点。HC-SRO4是一款尺寸完全兼容老版本,增加UART和IIC功能的开放式超声波测距模块,默认条件下,软件与硬件完全兼容老版本HC-SRO4;可以通过电阻设置成UART或IIC模式。2CM盲区,4.5M典型最远测距,2.2mA作电流。采用升级解调芯片RCWL-9206,带UART与IIC功能MCU:使其外围更加简洁,工作电压更宽(3-5.5V),接口功能更多。

cbm2001的博客 3076

数仓建模:维度表合并时,如何处理可能出现的数据冲突?

通过以上方法,可以有效地处理维度表合并时可能出现的数据冲突,确保合并后的数据完整性、一致性和准确性,满足业务需求和数据仓库的性能要求。在合并过程中,需要根据实际情况选择合适的处理方法,并进行充分的测试和验证。(2)实战中总结的SQL技巧,帮助SQLBOY在SQL语言上有质的飞越,无论你应对业务难题及面试都会游刃有余【如果您觉得本文还不错,对你有帮助,那么不妨可以关注一下我的数字化建设实践之路专栏,这里的内容会更精彩。技巧总结,让你认识不一样的数仓。,数据库会抛出异常,可根据异常处理机制解决。

石榴姐yyds 1132

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32单片机连接HC_SR04超声波模块测距

原文链接:https://blog.youkuaiyun.com/m0_37655357/article/details/72934643首先,先来看一下这个模块的基本功能和原理。HC-SR04超声波测距模块可提供约2cm400厘米的非接触式距离感测功能,测距精度可达高到3毫米;模块包括超声波发射器,接收器与控制电路像智能小车的测距以及转向,或是一些项目中,常常会用到。智能小车测距可以及时发现前方的障碍物,使...

xiaomu23的博客 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 树莓派调用科大讯飞接口声音小的问题
下一篇: stm32定时器的各项参数解释
土豆流氓兔
博客等级 码龄9年 45粉丝 26原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值