HC-SR04超声波测距模块学习记录

一、关于HC-SR04超声波测距模块

1.硬件介绍

在这里插入图片描述

HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。
相关引脚:
VCC:电源
GNN:接地
Trig:触发信号输入
Echo:回响信号输出
在这里插入图片描述
[注]: 1、此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。

2、测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果。

2.工作原理

在这里插入图片描述

通过脉冲触发引脚(trig)提供一个 10uS 以上高电平信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波,一旦检测到有回波信号则通过Echo引脚输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
由此可得出计算公式:
测试距离=(高电平时间*声速(340M/S))/2;
我这里使用的是定时器的输入捕获功能来直接读取高电平的持续时间。

二、基于STM32的驱动代码

main.c

#include "delay.h"
#include "sys.h"
#include "hcsr04.h"
#include "usart.h"


 int main(void)
 {
   	
	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
	delay_init();	    	 //延时函数初始化	
	uart_init(9600);	 			//9600	 
	HCSR04_TRIG_Init();
 	TIM3_Cap_Init(0XFFFF,72-1);		//以1Mhz的频率计数  ARR取最大
   	while(1)
	{
   
 		delay_ms(1000);
		HCSR04_TRIG_Send();	
    HCSR04_Distance();		

	}
}

Trig的相关设置:

void HCSR04_TRIG_Send(void)
{
   
      TRIG=1;
	  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值