当前位置: 首页 > 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.dtcms.com/a/300763.html

相关文章:

  • 【基础完全搜索】USACO Bronze 2022 Open - 谎言的人数Counting Liars
  • 元宇宙背景下治理模式:自治的乌托邦
  • JavaSE-String类
  • 【Ollama】大模型本地部署与 Java 项目调用指南
  • Wireshark TS | 发送数据超出接收窗口
  • C++核心编程学习-- 类和对象--继承
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 简单题目之学校组织运动会
  • 【通识】线性代数(Linear Algebra)
  • 【C++】论如何封装红黑树模拟实现set和map
  • 【Java实例】服务器IP一站式管理
  • 新手向:IDM下载失败排查
  • 依赖倒置原则 Dependency Inversion Principle - DIP
  • MySQL 索引设计与查询性能优化实践指南
  • Chainlink Functions:为智能合约插上连接现实世界的翅膀
  • 【Redis】Redis 协议与连接
  • 使用低级上位画图法理解在对磁盘空间进行容量分配时【低级单位上位至高级单位的换算】
  • 系统集成项目管理工程师【第九章 项目管理概论】 - 项目管理过程组
  • Frontiers in Psychology投稿流程(一)
  • 【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)
  • k8s的csi对接GPFS
  • 结合Golang语言说明对多线程编程以及 select/epoll等网络模型的使用
  • PMO如何赋能AI产品项目治理和价值交付︱商汤绝影PMO总监陈福龙
  • rust-包和箱子
  • Gradle#Plugin
  • 【论文阅读】ON THE ROLE OF ATTENTION HEADS IN LARGE LANGUAGE MODEL SAFETY
  • Node.js特训专栏-配置与环境部署:20.PM2进程守护与负载均衡
  • Java面试实战:从基础到架构的全方位技术交锋
  • VUE2 学习笔记9 生命周期
  • 算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现