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

东莞网站建设.com天津百度关键词推广公司

东莞网站建设.com,天津百度关键词推广公司,如何创建自己公司的网站,新乡公司网站建设HC-SR04是一款广泛使用的超声波传感器,它通过发射和接收超声波来测量距离。本文将详细介绍HC-SR04的工作原理、引脚描述、STM32的接线方式以及如何通过STM32控制HC-SR04来测量距离。 一、HC-SR04传感器介绍 HC-SR04超声波传感器的主要参数如下: 工作电…

HC-SR04是一款广泛使用的超声波传感器,它通过发射和接收超声波来测量距离。本文将详细介绍HC-SR04的工作原理、引脚描述、STM32的接线方式以及如何通过STM32控制HC-SR04来测量距离。

一、HC-SR04传感器介绍

HC-SR04超声波传感器的主要参数如下:

  • 工作电压:DC 5V
  • 工作电流:3.3mA
  • 工作温度:-40~85℃
  • 输出方式:GPIO
  • 探测距离:2cm~600cm
  • 探测精度:3mm

二、传感器原理

HC-SR04模块包括一个超声波发射器和一个接收器。发射器向一个方向发射超声波,当超声波碰到障碍物后会反射回来,接收器接收反射波。通过计算发射到接收的时间差,结合声速,可以计算出距离。

三、硬件连接

HC-SR04与STM32的连接如下:

  • VCC:连接到STM32的3.3V或5V电源。
  • GND:连接到STM32的地。
  • TRIG(触发):连接到STM32的一个GPIO引脚,用于发送触发信号。
  • ECHO(回声):连接到STM32的另一个GPIO引脚,用于接收回声信号。

四、软件编程

1. 初始化GPIO

首先,需要初始化STM32的GPIO引脚,用于控制TRIG和读取ECHO信号。

#include "stm32f1xx_hal.h"#define TRIG_PIN GPIO_PIN_6
#define ECHO_PIN GPIO_PIN_7
#define TRIG_PORT GPIOA
#define ECHO_PORT GPIOAvoid GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct = {0};__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_InitStruct.Pin = TRIG_PIN | ECHO_PIN;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(TRIG_PORT, &GPIO_InitStruct);
}

2. 测量距离函数

实现测量距离的函数,通过控制TRIG引脚发送触发信号,并通过ECHO引脚读取回声信号。

#include "stm32f1xx_hal.h"
#include "tim.h"uint32_t HCSR04_GetDistance(void) {uint32_t distance;uint32_t pulse_time = 0;// 发送触发信号HAL_GPIO_WritePin(TRIG_PORT, TRIG_PIN, GPIO_PIN_SET);HAL_Delay(10); // 至少10us的高电平HAL_GPIO_WritePin(TRIG_PORT, TRIG_PIN, GPIO_PIN_RESET);// 等待ECHO引脚变为高电平while(HAL_GPIO_ReadPin(ECHO_PORT, ECHO_PIN) == GPIO_PIN_RESET);// 记录高电平开始时间uint32_t start_time = HAL_GetTick();// 等待ECHO引脚变为低电平while(HAL_GPIO_ReadPin(ECHO_PORT, ECHO_PIN) == GPIO_PIN_SET);// 记录高电平结束时间uint32_t end_time = HAL_GetTick();// 计算高电平持续时间pulse_time = end_time - start_time;// 计算距离distance = (pulse_time * 34300) / 2; // 声速约为34300cm/sreturn distance;
}

3. 主函数

在主函数中,初始化硬件并循环测量距离。

int main(void) {HAL_Init();SystemClock_Config();GPIO_Init();TIM2_Init(); // 初始化定时器,用于测量时间while (1) {uint32_t distance = HCSR04_GetDistance();printf("Distance: %lu cm\n", distance);HAL_Delay(1000);}
}

五、注意事项

  1. 触发信号:确保TRIG引脚发送的触发信号至少持续10us。
  2. 回声信号:ECHO引脚读取的是回声信号的高电平持续时间,用于计算距离。
  3. 声速:声速在不同介质中的速度不同,本例中假设声速为34300cm/s。

通过上述步骤,我们可以在STM32上成功驱动HC-SR04超声波传感器,并实现距离的测量。这为开发需要距离测量功能的嵌入式系统提供了基础。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

http://www.mmbaike.com/news/31528.html

相关文章:

  • 网站后台模板论坛网络推广平台几大类
  • 做平台的网站有哪些功能吗怎样建立一个网站
  • 政府网站建设原则 统筹规划免费营销软件网站
  • 百度新闻源网站外贸业务推广
  • 西安做网站服务ks免费刷粉网站推广
  • 天津建设局网站首页互联网整合营销推广
  • 内部网站建设党委中文搜索引擎排名
  • 手机建设网站廊坊网站建设公司
  • 中山做app网站公司哪家好网址查询
  • 绵阳汽车网站制作变现流量推广app
  • 上海门户网站论坛网站建设7个基本流程
  • c 转网站开发域名注册需要多少钱?
  • 北京企业网站建设推荐seo人员招聘
  • 有没有一个网站做黄油视频黄冈seo顾问
  • 可以自己做网站的软件百度一下你就知道下
  • 敦化市住房和城乡建设局网站广州疫情最新情况
  • 淘客推广个人网站怎么做企业网站推广的方法有哪些
  • 哪些网站可以找到做海报的素材线上推广的渠道有哪些
  • xxx网站策划书上海网站关键词排名优化报价
  • 中国最好的网站制作济源网络推广
  • wordpress点击图片不显示不出来优化公司
  • 网站建设费做什么会计科目网络营销的一般流程
  • 公司网页怎么做的seo收录排名
  • 杭州市建设信用网网站seo综合查询 站长工具
  • 网站建设哪家强营销型网站
  • 平台网站模板 优帮云免费打广告平台有哪些
  • 外汇申报在哪个网站上做百度推广联盟
  • 口碑好的网站建设价格qq引流推广软件哪个好
  • 网站备案完成后该如何做外链发布软件
  • 无锡做网站seo百度上做推广怎么收费