如何用wix做网站,手机界面设计教程,网络培训平台建设方案,我是建造网站HC-SR04是一款广泛使用的超声波传感器#xff0c;它通过发射和接收超声波来测量距离。本文将详细介绍HC-SR04的工作原理、引脚描述、STM32的接线方式以及如何通过STM32控制HC-SR04来测量距离。
一、HC-SR04传感器介绍
HC-SR04超声波传感器的主要参数如下#xff1a;
工作电…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.huint32_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);}
}五、注意事项
触发信号确保TRIG引脚发送的触发信号至少持续10us。回声信号ECHO引脚读取的是回声信号的高电平持续时间用于计算距离。声速声速在不同介质中的速度不同本例中假设声速为34300cm/s。
通过上述步骤我们可以在STM32上成功驱动HC-SR04超声波传感器并实现距离的测量。这为开发需要距离测量功能的嵌入式系统提供了基础。 ✅作者简介热爱科研的嵌入式开发者修心和技术同步精进 ❤欢迎关注我的知乎对error视而不见 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 获取更多嵌入式资料可点击链接进群领取谢谢支持 点击领取更多详细资料