#include"stm32f1xx.h"#include"core_delay.h"typedef struct hc_sr04_device_st{GPIO_TypeDef*trig_port;uint16_t trig_pin;GPIO_TypeDef*echo_port;uint16_t echo_pin;TIM_HandleTypeDef*tim;//us级硬件定时器double distance;//测算距离}hc_sr04_device_t;/* us级延时函数 */#defineHC_SR04_Delay_Us...
//单次获取测量距离floatHCSR04_Get_Distant(void){HCSR04StartTrigStart();while(!HCSR_ECHO());HCSR04_TimerFunc(1);//start timerwhile(HCSR_ECHO());HCSR04_TimerFunc(0);//stop timerreturn(__HAL_TIM_GetCounter(&htim2))/58.0;}//均值滤波减小测量误差floatDistance(uint8_t cnt){float sum=...
利用HC-SR04超声波测距模块可以实现比较精确的直线测距,其测距原理图如下: HC-SR04的一端发出超声波,接触到反射物后反射,被另一个端口接收到,所以只要知道发射和接收的时间差,就可以根据声波传播的速率算出HC-SR04和反射物直接的距离。 所以实现超声波测距就需要俩个条件: 发射和接收的时间差 超声波传输的速率 HC...
GPIO_Init(HCSR04_PORT_Echo, &GPIO_InitStructure); //根据设定参数初始化端口 //定时器初始化(将APB1的时钟设置成72Mhz) TIM_hcsr04init.TIM_ClockDivision = TIM_CKD_DIV1; //不分频 TIM_hcsr04init.TIM_CounterMode = TIM_CounterMode_Up; //计数模式为向上计数TIM_hcsr04init.TIM_Period = 1000-1...
首先,先来看一下这个模块的基本功能和原理。 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。像智能小车的测距以及转向,或是一些项目中,常常会用到。智能小车测距可以及时发现前方的障碍物,使智能小车可以及时转向,避开障碍物。
1.HC-SR04模块实物图和工作原理 1.1实物如下图,可以看到这个模块是双面贴片的,整体感觉大气,印出来了四个引脚,分别是GND,Echo,Trig,VCC具体功能见下方 1.2首先这个模块是要单独供电的,需要给VCC接5V,GND就不多说了关键是Echo和Trig这两个脚,可以看下方的时序图。
超声波测距原理图如下:模块记录超声波往返的时间,并在Echo管脚输出与时间等长的高电平信号。利用声音在干燥、摄氏20度的空气中的传播速度(343米/秒,约34,300厘米/秒)计算距离。具体计算公式为:us/58 = 厘米 或者 us/148= 英寸。声音传播速度(约0.0343厘米/微秒)与距离(每291.5微秒表示1...
二、HC-SR04超声波模块原理 下图是超声波模块驱动时序图: 驱动步骤: 1.首先需要发送一个至少10us的TTL电平信号用来触发超声波模块。 2.发送完触发信号后模块内部会自动循环发出8个40KHZ的脉冲。 3.接收回响信号,根据高电平的时间来计算出距离。 计算公式:T(s) * 340(m/s) / 2 ...
1基本工作原理 (1)采用IO 口TRIG 触发测距,给至少10us 的高电平信号; (2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过IO 口ECHO 输出一个高电平,高电平持续的时间就是超声 波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S))/2; ...
**使用:HC-SR04 超声波测距模块 ** 注意: 绘制PCB注意四个引脚顺序 Vcc Trig Echo Gnd **供电3.3V-5V(最好5V)** 测距原理 不同模式 GPIO模式 查看原理图 通过超声波的硬件介绍我们知道 **MCU给Trig脚一个大于10us的高电平脉冲;然后读取Echo脚的高电平信号时间,通过公式:距离 = T* 声速/2 就可以算出来...