当前位置: 首页 > news >正文

[STM32][HAL]stm32wbxx 超声波测距模块实现(HY-SRF05)

前言

在电子技术应用中,距离测量是一个常见且重要的需求。超声波模块因其测量精度较高、成本较低、易于使用等优点,被广泛应用于机器人避障、液位检测、智能停车系统等领域。该文主要讲解以stm32wb芯片为主控,用HAL库来对HY-SRF05超声波模块进行代码编写,实现基本的驱动和测距功能。代码的主要核心思路是通过polling对Echo信号进行捕获。
在这里插入图片描述

HY-SRF05 超声波模块工作原理

HY-SRF05 超声波模块包括超声波发射器、接收器和控制电路。可提供2cm – 450 cm的非接触式距离感测功能,测距精度可达到3mm.
在这里插入图片描述
基本工作原理

(1)采用IO口TRIG出发测距,给至少10us的高电平信号;

(2)模块自动发送8个40KHZ的方波,自动检测是否有信号返回;

(3)有信号返回,则通过IO口ECHO输出一个高电平,高电平的持续时间,结合超声波在空气中的传播速度(约 340m/s),可以计算出测量目标与模块之间的距离。测试距离 = (高电平持续时间 × 声速)/ 2。

引脚定义

在这里插入图片描述
其中OUT脚置空即可。

电气参数

工作电压 DC 5V
工作电流 15 mA
工作频率 40 HZ
最远射程 4.5 m
最近射程 2 cm
测量角度 15 度
输入触发信号 10us TTL脉冲
输出回响信号 输出TTL电平信号,与射程成比例
规格尺寸 45 * 20 * 12 mm

超声波时序图

在这里插入图片描述

注意事项

  • 模块的工作电压为 5V,而 STM32 的 GPIO 引脚通常为 3.3V。

STM32 代码实现

通过宏定义引脚,方便代码移植和修改

// define gpio for srf05 ultrasonic sensor
#define TRIG_PIN GPIO_PIN_2
#define TRIG_PORT GPIOC
#define ECHO_PIN GPIO_PIN_3
#define ECHO_PORT GPIOC

初始化以及发射和接收信号

TIM_HandleTypeDef htim2;  // 采用定时器2作为时长控制void TIM2_Init(void)  //定时器2 初始化
{TIM_ClockConfigTypeDef sClockSourceConfig 
http://www.lryc.cn/news/601636.html

相关文章:

  • 深度学习在计算机视觉中的应用:对象检测
  • Java面试全栈通关:从微服务到AI的技术深度解析
  • 市电有电检测电路
  • elasticsearch 倒排索引原理详解
  • 湖南(源点咨询)市场调研 如何在行业研究中快速有效介入 起头篇
  • 一场关于电商零售增长破局的深圳探索
  • Python类(class)参数self的理解
  • ROS2总结(二)
  • VMware Workstation Pro虚拟机的下载和安装图文保姆级教程(附下载链接)
  • Mysql 二进制安装常见问题
  • QUARTUS速通流程
  • HCIP---MGRE实验
  • 数学建模——模糊综合评价
  • 2-4、Dify案例实践—基于工作流构建商城用户评价智能分析系统
  • 算法竞赛阶段二-数据结构(37)数据结构循环链表模拟实现
  • print(“\033[31m红\033[32m绿\033[34m蓝\033[0m默认色“)
  • 零基础学习性能测试第五章:JVM性能分析与调优-JVM运行时内存区域介绍
  • Maven之多模块项目管理
  • C语言——关于指针(逐渐清晰版)
  • 嵌入式——单片机的独立按键
  • 数据结构基础内容(第七篇:堆、哈夫曼树)
  • 电子电气架构 --- 软件bug的管理模式
  • 「iOS」————MRC
  • Flink2.0学习笔记:Stream API 常用转换算子
  • 第十八章:AI的“通感”:揭秘图、文、音的共同语言——CLIP模型
  • 常见认证机制详解
  • Unity FXAA
  • 设计模式(六)创建型:单例模式详解
  • 五、搭建springCloudAlibaba2021.1版本分布式微服务-gateway网关
  • 新手开发 App,容易陷入哪些误区?