当前位置:首页Arduino > 正文

Arduino超声波测距控制两个舵机

作者:野牛程序员:2023-12-21 12:51:09Arduino阅读 3060

使用Arduino控制两个舵机进行超声波测距的项目可以分为几个步骤:

  1. 连接硬件

    • 将超声波传感器连接到Arduino。通常,超声波传感器有四个引脚:VCC(正电源)、GND(地)、Trig(触发引脚)和Echo(回波引脚)。连接这些引脚到Arduino相应的引脚。

    • 连接两个舵机到Arduino。舵机通常有三个引脚:VCC、GND和信号引脚。将它们连接到Arduino的相应引脚。

  2. 编写Arduino代码

    • 使用Arduino IDE编写代码,通过超声波传感器测量距离。

    • 控制两个舵机,使它们根据测得的距离进行旋转。

下面是一个简单的示例代码:

#include <Servo.h>

Servo servo1;
Servo servo2;

const int trigPin = 9;  // 超声波传感器的触发引脚
const int echoPin = 10; // 超声波传感器的回波引脚

void setup() {
  Serial.begin(9600);
  servo1.attach(6);  // 用于连接第一个舵机的引脚
  servo2.attach(7);  // 用于连接第二个舵机的引脚
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  long duration, distance;
  
  // 发送超声波脉冲
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // 计算超声波回波的时间
  duration = pulseIn(echoPin, HIGH);
  
  // 将时间转换为距离(厘米)
  distance = (duration / 2) / 29.1;

  // 控制舵机根据距离旋转
  int angle1 = map(distance, 0, 200, 0, 180);
  int angle2 = map(distance, 0, 200, 180, 0);

  servo1.write(angle1);
  servo2.write(angle2);

  // 输出距离到串口监视器
  Serial.print("Distance: ");
  Serial.println(distance);

  delay(500); // 延迟以稳定测量
}

请确保根据实际连接和硬件使用情况进行适当的调整。此代码使用了一个超声波传感器和两个舵机,根据测得的距离控制舵机的旋转角度。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击