HC-SR04 超声波测距模块/硬件/软件

产品简介

HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。

HC-SR04 超声波测距模块/硬件/软件_第1张图片

HC-SR04 超声波测距模块/硬件/软件_第2张图片

产品应用领域

机器人避障   物体测距  液位检测  公共安防 停车场检测 

主要技术参数

        1:使用电压:DC5V                2:静态电流:小于2mA
        3:电平输出:高5V                 4:电平输出:底0V
        5:感应角度:不大于15度      6:探测距离:2cm-450cm  7:高精度 可达0.2cm   


接线方式,VCC、trig(控制端)、  echo(接收端)、 GND


基本工作原理

  1. 采用IO口TRIG触发测距,给至少10us的高电平信号;
  2. 模块自动发送8个40khz的方波,自动检测是否有信号返回;
  3. 有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
   

使用方法

一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,即可以达到你移动测量的值。


代码

//(1)采用 IO 触发测距,给至少10us 的高电平信号;
//(2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回;
//(3)有信号返回,通过IO 输出一高电平,高电平持续的时间就是
//(4)超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2
 
#include <12C5A60S2.h>
#include "lcd5110.h"
 
#define uint unsigned int
 
sbit echo = P3^2;
uint sing = 5;
 
void main()
{
    int Distance = 0;
    uint delay = 0;
 
    EA = 1;
    TMOD = 0x01;
    ET0 = 1;
    TH0 = 0;
    TL0 = 0;
    TR0 = 0;    //定时器中断;
    EX0 = 1;
    IT0 = 1;    //下降沿触发中断
    P3 &= ~0x10;
 
    Initial_5110();
    Clean_5110();
    Write_X_Y_5110(0,0);
    Write_Int_5110(23);
    while(1)
    {   
        P3 |= 0x10; 
                     
        delay = 50;
        while(--delay);
 
        P3 &= ~0x10;
     
        delay = 0;
        while( ((P3 & 0x04) == 1) && (delay < 3000) ) delay ++;      
 
        Distance = sing;
        Write_X_Y_5110(0,2);
        Write_Int_5110(Distance);
        delay = 0;
        while(delay < 40000) delay++;
    }
}
 
void time0()interrupt 1
{
   TH0 = 0;
   TL0 = 0;
}
 
void wai_inter() interrupt 0
{
    uint count_high = 0;
 
    EA = 0; 
 
    EX0 = 0;
 
    TH0 = 0;
    TL0 = 0;
    TR0 = 1;
 
    while( ((P3 & 0x04) == 0) && (count_high < 2000) ) count_high ++;
 
    if(count_high < 2000) sing = TH0*16 + TL0;
    else                  sing = 0;
     
    TR0 = 0;
    TH0 = 0;
    TL0 = 0;
     
    EX0 = 1;
    EA = 1;
}


你可能感兴趣的:(硬件模块)