码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-12-06 21:59:44      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:速度   点距   oat   输入   void   特性   dig   时序图   计时   

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

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系列之超声波测距模块代码(一)

标签:速度   点距   oat   输入   void   特性   dig   时序图   计时   

原文地址:http://www.cnblogs.com/fqhy/p/7991124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!