Arduino 超声波测距代码解析 - void range() 函数详解
这段代码是一个测距函数,使用超声波模块来测量距离,并将结果通过串口发送出来。
代码解析:
void range() {
//测距函数
digitalWrite(trig, LOW); //测距
delayMicroseconds(2); //延时2微秒
digitalWrite(trig, HIGH);
delayMicroseconds(20);
digitalWrite(trig, LOW);
int distance = pulseIn(echo, HIGH); //读取高电平时间
distance = distance / 58; //按照公式计算
S = distance; //把值赋给S
Serial.println(S); //向串口发送S的值,可以在显示器上显示距离
}
具体操作步骤:
- 首先将 trig 引脚输出低电平,然后延时 2 微秒。
- 接着将 trig 引脚输出高电平,延时 20 微秒,再将其输出低电平,这样就发送了一次超声波。
- 通过 pulseIn 函数读取 echo 引脚上的高电平时间,单位是微秒。
- 根据公式距离 = 高电平时间 / 58 来计算距离,其中 58 是超声波在空气中的传播速度(单位为微秒/厘米)。
- 将测得的距离赋值给变量 S。
- 通过串口将 S 的值发送出来,方便用户查看距离。
代码说明:
digitalWrite(trig, LOW);和digitalWrite(trig, HIGH);用于控制 trig 引脚的输出电平,发送超声波脉冲。delayMicroseconds(2);和delayMicroseconds(20);用于设置超声波脉冲的宽度。pulseIn(echo, HIGH);用于测量 echo 引脚上的高电平时间。distance = distance / 58;用于计算距离,公式中 58 表示超声波在空气中传播速度的倒数。S = distance;用于将计算得到的距离赋值给变量 S。Serial.println(S);用于将距离值通过串口发送出去。
注意事项:
- 超声波模块需要连接到 Arduino 的数字引脚。
- trig 引脚用于发送超声波脉冲,echo 引脚用于接收回波。
- 公式中 58 的值是根据超声波在空气中的传播速度计算得到的,如果环境温度发生变化,需要调整该值。
代码应用:
这段代码可以用于测量物体到超声波模块的距离,并通过串口将距离值发送给电脑或其他设备。在一些需要测量距离的应用中,例如自动驾驶、机器人控制等,都可以使用这段代码。
原文地址: https://www.cveoy.top/t/topic/nJsp 著作权归作者所有。请勿转载和采集!