admin管理员组文章数量:1558914
目录
一、超声波测距的基本原理
二、HC-SR04超声波测距模块
三、HC-SR04超声波测距模块代码
四、串口打印数据
五、工程代码
六、串口调试助手软件
七、超声波传感器原理图资料
一、超声波测距的基本原理
超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度约为340m/s,根据计时器记录的时间t(秒),就可以计算出发射点距障碍物的距离(s),即:s=340t/2)
超声波在空气里的传播速度受温度影响,一般以常温20摄氏度作为参考进行计算:
超声波在空气中的传播速度为340m/s(当然温度不同,传播速度也不同,带温度校准的模块得到的数据会更准),根据计时器记录的时间t(秒),就可以计算出发射点距障碍物的距离(s),即:s=340t/2。
原理如图所示:
二、HC-SR04超声波测距模块
该实物图的正反面如上图所示,HC-SR04超声波测距模块可实现 2cm~4.5m 的非接触测距功能,拥有 2.4~5.5V 的宽电压输入范围,静态功耗低于 2mA,自带温度传感器对测距结果进行校正,同时具有 GPIO,串口两种通信方式实现数据的读取,工作稳定可靠。
相关说明如下:
1 号 Pin:VCC接电源(供电范围 2.4V~5.5V)。
2 号 Pin:当为 UART 模式时,接外部电路 UART 的 TX 端(注意);当为电平触发模式时,接外部电路的 Trig 端。
3 号 Pin:当为 UART 模式时,接外部电路 UART 的 RX 端(注意);当为电平触发模式时,接外部电路的 Echo 端。
4 、5号 Pin:GND接外部电路的地。
三、HC-SR04超声波测距模块代码
HC-SR04.C文件驱动代码
#include "stm32f10x.h" // Device header
#include "HCSR04.h"
#include "Delay.h"
#include "Timer.h"
uint16_t Time;//高电平时间
void HCSR04_Init()
{
RCC_APB2PeriphClockCmd(Trig_RCC, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStruct.GPIO_Pin = Trig_Pin; //PA0
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//io口速度50MHZ
GPIO_Init(Trig_Port, &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD; //上拉输入
GPIO_InitStruct.GPIO_Pin = Echo_Pin; //PA1
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(Echo_Port, &GPIO_InitStruct);
GPIO_ResetBits(Trig_Port, Trig_Pin);
}
void HCSR04_Start()
{
GPIO_SetBits(Trig_Port, Trig_Pin);
Delay_us(45);
GPIO_ResetBits(Trig_Port, Trig_Pin);
Timer_Init();
}
uint16_t HCSR04_GetValue()
{
HCSR04_Start();
Delay_ms(100);
return ((Time * 0.0001) * 34000) / 2; // cm/s [(0.00001s*340m/s)/2] * 100
// return Time;
}
HC-SR04.C文件声明函数
#ifndef __HCSR04_H
#define __HCSR04_H
#define Trig_Port GPIOA
#define Trig_Pin GPIO_Pin_0 //SCL
#define Trig_RCC RCC_APB2Periph_GPIOA
#define Echo_Port GPIOA
#define Echo_Pin GPIO_Pin_1 //CDA
#define Echo_RCC RCC_APB2Periph_GPIOA
void HCSR04_Init(void);
uint16_t HCSR04_GetValue(void);
#endif
四、串口打印数据
五、工程代码
《STM32单片机+HC-SR04超声波测距传感器+OLED屏幕+蜂鸣器报警+超声波测距数据发送到串口调试助手》源代码资源-CSDN文库
六、串口调试助手软件
串口调试助手-keil5调试工具资源-CSDN文库
七、超声波传感器原理图资料
超声波传感器原理图、模块资料资源-CSDN文库
版权声明:本文标题:STM32单片机+HC-SR04超声波测距传感器+OLED屏幕+蜂鸣器报警+超声波测距数据发送到串口调试助手+源代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727405069a1113280.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论