这段代码是一个测距函数,使用超声波模块来测量距离,并将结果通过串口发送出来。

代码解析:

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的值,可以在显示器上显示距离
}

具体操作步骤:

  1. 首先将 trig 引脚输出低电平,然后延时 2 微秒。
  2. 接着将 trig 引脚输出高电平,延时 20 微秒,再将其输出低电平,这样就发送了一次超声波。
  3. 通过 pulseIn 函数读取 echo 引脚上的高电平时间,单位是微秒。
  4. 根据公式距离 = 高电平时间 / 58 来计算距离,其中 58 是超声波在空气中的传播速度(单位为微秒/厘米)。
  5. 将测得的距离赋值给变量 S。
  6. 通过串口将 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 的值是根据超声波在空气中的传播速度计算得到的,如果环境温度发生变化,需要调整该值。

代码应用:

这段代码可以用于测量物体到超声波模块的距离,并通过串口将距离值发送给电脑或其他设备。在一些需要测量距离的应用中,例如自动驾驶、机器人控制等,都可以使用这段代码。

Arduino 超声波测距代码解析 - void range() 函数详解

原文地址: https://www.cveoy.top/t/topic/nJsp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录