HC-SR04超声波测距模块介绍

这篇具有很好参考价值的文章主要介绍了HC-SR04超声波测距模块介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

超声波简介

      超声波是由机械振动产生的, 可在不同介质中以不同的速度传播, 具有定向性好、能量集中、传输过程中衰减较小、反射能力较强等优点。超声波传感器可广泛应用于非接触式检测方法,它不受光线、被测物颜色等影响, 对恶劣的工作环境具有一定的适应能力, 因此在水文液位测量、车辆自动导航、物体识别等领域有着广泛的应用。

超声波测距原理

      超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差Δt , 然后求出距离S 。在速度v 已知的情况下,距离S 的计算,公式如下:S = vΔt/ 2在空气中,常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。因此在测距精度要求很高的情况下, 应通过温度补偿的方法对传播速度加以校正。已知现场环境温度T 时, 超声波传播速度V 的计算公式如下:

      V = 331. 5+0.607T

      这样, 只要测得超声波发射和接收回波的时间差Δt 以及现场环境温度T,就可以精确计算出发射点到障碍物之间的距离。

HC-SR04超声波测距模块简介

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

HC-SR04超声波测距模块介绍

HC-SR04超声波测距模块实物图

HC-SR04超声波测距模块特点

      1、典型工作用电压:5V

      2、超小静态工作电流:小于5mA

      3、感应角度(R3 电阻越大,增益越高,探测角度越大):

            R3 电阻为392,不大于15 度

            R3 电阻为472, 不大于30 度

      4、探测距离(R3 电阻可调节增益,即调节探测距离):

            R3 电阻为392 2cm-450cm

            R3 电阻为472 2cm-700cm

      5、高精度:可达0.3cm

      6、盲区(2cm)超近

HC-SR04超声波测距模块管脚

      VCC(5V)、 Trig(控制端)、 Echo(接收端)、地(GND)

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

HC-SR04超声波测距模块工作原理

      1、采用IO 触发测距,给至少10us 的高电平信号;

      2、模块自动发送8 个40khz 的方波,自动检测是否有信号返回;

      3、有信号返回,通过IO 输出高电平,高电平持续时间就是超声波从发射到返回时间.测试距离=(高电平时间*声速(340M/S))/2。

HC-SR04超声波测距模块介绍

      以上时序图表明只需要提供一个10US以上的脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。距离=高电平时间*声速。 

HC-SR04超声波测距模块应用注意事项

      1、此模块不宜带电连接,如果要带电连接,则先让模块的Gnd 端先连接。否则会影响模块工作。

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

HC-SR04超声波测距模块测距例程

/***********************超声波测距串口输出**********************

*  处理器:STC89C52RC

*  开发环境:KEIL

*  名称:超声波测距串口输出

*  说明:波特率9600

/****************************包含头文件***************************/

#include <reg52.h>

/*******************************宏定义*****************************/

#define SPEED_30C 3495          //30摄氏度时的声速,声速V=331.5+0.6*温度;

#define SPEED_23C 3453          //23摄氏度时的声速,声速V=331.5+0.6*温度;

/******************************位定义******************************/

//FOSC = 11.0592MHz,12T模式,SMOD=0

#define reload_count_1200bps 0xe8

#define reload_count_2400bps 0xf4

#define reload_count_4800bps 0xfa

#define reload_count_9600bps 0xfd

sbit ECHO=P1^6;                 //回声接收端口

sbit TRIG=P1^5;                 //超声触发端口

sbit BEEP=P2^3;                 //蜂鸣器

/*************************定义变量和数组*************************/

long int distance=0;            //距离变量

unsigned char count;

void Delay5Ms(void);

void delay(int In,int Out);

unsigned char zifuchuan[]="SSLV WELCOME!";    //待显示字符

unsigned char juli[]="距离为:   . 厘米";                    //待显示字符

       

void delayt(unsigned int x)

{

 unsigned char j;

 while(x-->0){for(j=0;j<125;j++){;}}

}文章来源地址https://www.toymoban.com/news/detail-418380.html

void delay(int In,int Out)

{

 int i,j;

 for(i=0;i<In;i++)

 {for(j=0;j<Out;j++){;}}

}

void serial_port_initial(char TH,char TL)

{

 SCON=SCON|0x50;              //0101,0000 8位可变波特率,无奇偶校验位

 TMOD=TMOD|0x20;              //0011,0001 设置定时器1为8位自动重装记数器

 PCON=PCON|0x00;

 TH1=TH;TL1=TL;                  //设置定时器1自动重装数  

 ES=1;                                    //允许串口中断

 EA=1;                                    //开总中断   

 TR1=1;                                  //开定时器1                                                      

}

void send_UART(unsigned char i)     //发送一节函数

{

 ES=0;                                                //关串 口中断

 TI=0;                                                 //清零串口发送完成中断请求标志

 SBUF=i;

 while(TI==0);                                    //等特数据传送

 TI=0;                                                 //清除数据传送标志

 ES=1;

}

void sendc(unsigned char * pd)

{

 while((*pd)!='\0')                       //发送字符串,直到遇到0才结束

 {

  send_UART(*pd);                   //发送一个字符

  pd++;                                      //移动到下一个字符

 }

}

void Alarm(unsigned char t)

{

 unsigned char i;

 for(i=0;i<t;i++)

 {BEEP=0;delay(10,1000);BEEP=1;delay(10,1000);}

}

void Init_timer(void)

{

 TMOD=TMOD|0x01;                //定时器0初始化,设置为16位自动重装模式

 TL0=0x66;TH0=0xfc;               //1ms

 ET0=1;                                     //开定时器0

 EA=1;                                      //总中断使能

}

void Init_Parameter(void)

{TRIG=1;ECHO=1;count=0;distance=0;}

   

void display(int number)

{

 unsigned char b,c,d,e;

 b=(number/1000);

 c=(number/100)%10;

 d=(number/10)%10;

 e=number%10;

 juli[7]=0x30+b;

 juli[8]=0x30+c;

 juli[9]=0x30+d;

 juli[11]=0x30+e;

 sendc(juli);

}

void Trig_SuperSonic(void)                            //出发声波

{TRIG=1;delayt(1);TRIG=0;}

void Measure_Distance(void)

{

 unsigned char l;

 unsigned int h,y;

 TR0=1;

 while(ECHO){;}

 TR0=0;

 l=TL0;h=TH0;

 y=(h<<8)+l;

 y=y-0xfc66;                                              //us部分

 distance=y+1000*count;                          //计算总时间

 TL0=0x66;TH0=0xfc;

 delayt(30);

 distance=SPEED_30C*distance/20000;

}

                   

void main(void)

{

 serial_port_initial(reload_count_9600bps,reload_count_9600bps);

 Alarm(2);

 sendc(zifuchuan);

 Init_timer();

 Init_Parameter();

 while(1)

 {

  Trig_SuperSonic();                  //触发超声波发射

  while(ECHO == 0){;}               //等待回声

  Measure_Distance();              //计算脉宽并转换为距离

  display(distance);                   //显示距离

  Init_Parameter();                    // 参数重新初始化

  delayt(100);                            //延时,两次发射之间要至少有10ms间隔

 }

}

void timer0 (void) interrupt 1

{

 TF0=0;

 TL0=0x66;TH0=0xfc;

 count++;

 if(count==18)                        //超声波回声脉宽最多18ms

 {

  TR0=0;

  TL0=0x66;TH0=0xfc;

  count=0;

 }

}

到了这里,关于HC-SR04超声波测距模块介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派使用HC-SR04超声波测距

      超声波测距原理很简单:   1、通过记录发送超声波的时间、记录超声波返回的时间,返回时间与发送时间相减得到超声波的持续时间。   2、通过公式:( 超声波持续时间 * 声波速度 ) / 2 就可以得出距离;   HC-SR04参数:   工作电压: 5V   工作电流:15mA   

    2024年02月06日
    浏览(21)
  • 基于STM32的超声波HC-SR04和红外测距模块测量距离的实验对比(HAL库)

            前言: 本文主要是为了 日常普通场合 下测距做的 对比实验 ,本实验主要包含 2种模块 : 超声波测距模块 (HC-SR04)和 红外测距模块 (SHARP GP2Y0A21YK0F)。两种模块不管是测距原理和编程实验方式都是不相同的,其测距效果也存在很大差异。感兴趣的读者朋友,

    2023年04月27日
    浏览(34)
  • STM32系列(HAL库)——F103C8T6通过HC-SR04超声波模块实现测距

    (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) (1)某宝买的超声波模块   (2)F1的板子,本例使用经典F103C8T6 (3)ST-link 下载器 (4)USB-TTL模块 (5)杜邦线若干 (1)模块简介:         超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射

    2024年02月02日
    浏览(23)
  • 【嵌入式系统应用开发】FPGA——基于HC-SR04超声波测距

    硬件 DE2-115 HC-SR04超声波传感器 软件 Quartus 18.1 使用DE2-115开发板驱动HC-SR04模块,并将所测得数据显示到开发板上的数码管。 HC-SR04 超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。图1为 HC-SR04 外观,

    2024年02月08日
    浏览(26)
  • Linux驱动基础(HC-SR04超声波模块)

    本篇文章将讲解HC-SR04超声波模块的驱动程序编写,有了上篇SR501模块驱动程序编写的基础后这篇文章大家将会学的非常轻松。 HC-SR04超声波模块是一种常用于距离测量和障碍物检测的模块。它通过发射超声波信号并接收回波来计算所测量物体与传感器之间的距离。 HC-SR04超声波

    2024年02月05日
    浏览(20)
  • STM32驱动HC-SR04超声波模块

    本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。 HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发

    2024年02月09日
    浏览(21)
  • 【CubeMX配置STM32驱动超声波模块(HC-SR04)】

    一、CubeMX配置STM32 1、选择定时器 选择 输入捕获模式 预分频设置为71,向上计数,自动重装值65535 然后将名字改为 ECHO 2、配置TRIG口 这里的端口使用其它空闲的IO口是可以的,设置为输出模式,其它配置不需要改变,最主要的是 User Label 那儿,需要设置为 TRIG ,因为驱动函数里

    2024年02月02日
    浏览(27)
  • 基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距

    一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发 三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方 四、基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块 五、基于STM32F103C8

    2023年04月17日
    浏览(41)
  • 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

    点击图片购买 HC- SR04+是一款宽电压工作的超声波测距模块。模块外形尺寸及软件与老版本 HC- SR04完全兼容;可以与老版本HC SR04无缝切换。低至3V的低工作电压, 使其与3.3V供电的MCU可以直接连接。 特点 探测角度: 15° 采用工业级MCU,工作温度:-20C~80C 探测距离:5V:2cm-- 450cm;3.3V: 2c

    2024年02月02日
    浏览(25)
  • 【STM32篇】驱动HC_SR04超声波测距模块

    CH_SR04 HC_SR04超声波测距模块可提供 2cm-400cm 的非接触式测距感测功能,测距精度高达3mm;模块包括超声波发射器,接收器与控制电路。 基本工作原理: (1)采用IO口TRIG触发测距,需要给最少10us的高电平。 (2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。 (3)有

    2024年02月17日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包