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系列之超声波测距模块代码的主要内容,如果未能解决你的问题,请参考以下文章