Arduino系列之超声波测距模块代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino系列之超声波测距模块代码相关的知识,希望对你有一定的参考价值。

这里我将简单介绍超声波测距模块

SR04超声波传感器:

是利用超声波特性检测距离的传感器,其带有两个超声波探头,分别用作于发射和接收超声波。范围在3-450cm。

工作原理:

超声波发射器向某一方向发射超声波,在发射的同时开始计时;

超声波在空气中传播,途中遇到障碍物则立即返回,超声波接收器收到反射波则立即停止计时。

声波在空气中传播速度为340m/s,根据计时器记录时间t,即可算出发射点距离障碍物的距离S,

即S=340m/s*t/2,这就是所谓的时间差测距法。

超声波模块的使用及时序图:

使用Arduino的数字引脚给SR04模块的Trig引脚至少10us的高电平信号,触发SR04模块的测距功能。

触发测距功能后,模块会自动发送八个40khz的超声波脉冲,并自动检测是否有信号返回。

若有信号返回,则Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。

此时可以使用pluseIn()函数获取测距结果,并计算出据被测物体的实际距离。

代码:

const int ting=2;             //设定SR04连接到Arduino引脚

const int echo=3;          //设定SR04连接到Arduino引脚

float distance;              //定义一个浮点型的变量

void setup()

{

Serial.begin(9600);            //设置波特率

pinMode(ting,OUTPUT);     //连接SR04的引脚

pinMode(echo,INPUT);       //设置输入状态

Serial.println("ultrasonic sensor");      //

}

void loop()

{

digitalWrite(ting,LOW);                //产生一个10US的高脉冲去触发Trigpin

delayMicroseconds(2);             

delayMicroseconds(10);            

digitalWrite(ting,LOW);         

distance=pluseIn(echo,HIGH)/58.00;     //检测脉冲宽度,并计算出距离     

Serial.print(distance);                 //打印

Serial.print("cm");                       //打印

serial.println();                           //打印

delay(1000);

 

}

以上是关于Arduino系列之超声波测距模块代码的主要内容,如果未能解决你的问题,请参考以下文章

Arduino 超声波测距+OLED+RGB

硬件系列之超声波模块介绍

我用arduino做的超声波测距,现在想把测到的距离用lcd1602液晶显示屏显示出来,该怎么做,

在线仿真Arduino 超声波测距+LCD1602显示

在线仿真Arduino 超声波测距+LCD1602显示

Arduino UNO与超声波传感器接口进行测距,将距离显示在LCD1602液晶屏上,第一行?