栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

HC-SR04超声波测距模块

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HC-SR04超声波测距模块

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号