1. 基本参数
工作电压 | DC5V |
工作电流 | 15mA |
工作频率 | 40Khz |
最远射程 | 4m |
最近射程 | 2cm |
测量角度 | 15° |
输入触发角度 | 10uS的TTL脉冲 |
输出回响信号 | 输出TTL信号 |
规格尺寸 | 45*20*15mm |
2. 基本原理
1) 单片机IO口发送≥10us的持续高电平信号,作为起始信号。
2)模块自动发送8个40Khz的方波,单片机自动检测Ehco引脚是否有信号返回;
3)若有信号返回,开启定时器计时,当检测到Echo引脚为低电平则关闭定时器,此时的时间为发射超声到接收回波的时间,因为物体的距离=(定时器时间*340)/2。
4)若无信号返回,则继续等待信号返回。
3. 时序图
4. 程序范例
单片机选型为STC15W204S。
#ifndef __HCSR04_H__
#define __HCSR04_H__
sbit TRIG=P5^5;
sbit ECHO=P3^2;
bit flag=0;
bit succed_flag=0; //测距中断完成标志位
bit single_flag=0; //单总线标志位
float distance=0;
u16 temp=0;
void tim0_init()
{
//AUXR = 0x80; //定时器1为1T模式
TMOD = 0x00; //定时器1为模式2(8位自动重载)
TL0 = 0xCD; //设置定时初始值
TH0 = 0xD4; //设置定时初始值
TR0 = 0; //定时器1开始启动
}
//hc-sr04起始信号
void hcsr04_start_single()
{
TRIG=1;
Delay20us();
TRIG=0;
}
//hc-sr04测距转换函数
u8 hcsr04_covert()
{
temp=TH0*256+TL0;
TH0=0;
TL0=0;
distance=(temp*1.87)/10000;
return distance;
}
#endif