//单次获取测量距离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=...
#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...
利用HC-SR04超声波测距模块可以实现比较精确的直线测距,其测距原理图如下: HC-SR04的一端发出超声波,接触到反射物后反射,被另一个端口接收到,所以只要知道发射和接收的时间差,就可以根据声波传播的速率算出HC-SR04和反射物直接的距离。 所以实现超声波测距就需要俩个条件: 发射和接收的时间差 超声波传输的速率 HC...
GPIO_ResetBits(HCSR04_PORT,HCSR04_ECHO);//定时器初始化 使用基本定时器TIM6RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);//使能对应RCC时钟//配置定时器基础结构体TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period= (1000-1);//设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计...
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 就可以算出来...
1、stm32F407的超声波测距程序及注意事项(HC-SR04)上的资料太杂太乱,调这个东西的时候了不少弯路,现在分享出来,亲测管!基本作原理:(1)采IOTRIG触发测距,给少10us的电平信号;(2)模块动发送8个40khz的波,动检测是否有信号返回;(3)有信号返回,通过IOECHO输出个电平,电平持续的时间就是超声波从发射到返回的...