当前位置:首页Arduino > 正文

Arduino超声波控制舵机

作者:野牛程序员:2023-08-07 13:42:09Arduino阅读 3771

要使用Arduino控制超声波传感器和舵机,可以通过以下步骤实现:

步骤1:准备硬件

  • Arduino板(例如Arduino UNO)

  • 超声波传感器(HC-SR04)

  • 舵机(SG90或其他)

步骤2:连接电路

  1. 将超声波传感器连接到Arduino板:

    • VCC引脚连接到Arduino的5V引脚

    • GND引脚连接到Arduino的GND引脚

    • TRIG引脚连接到Arduino的数字引脚(例如D2)

    • ECHO引脚连接到Arduino的数字引脚(例如D3)

  2. 将舵机连接到Arduino板:

    • 通常,舵机的黄色(信号)线连接到Arduino的数字引脚(例如D9)

    • 舵机的红色线连接到Arduino的5V引脚

    • 舵机的棕色或黑色线连接到Arduino的GND引脚

步骤3:编写Arduino代码 使用Arduino IDE编写代码,利用超声波传感器测量距离,并根据测量值控制舵机的位置。

#include <Servo.h>

const int trigPin = 2;
const int echoPin = 3;
Servo servoMotor;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  servoMotor.attach(9); // 设置舵机连接的引脚号
  Serial.begin(9600);
}

void loop() {
  // 发送超声波信号
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // 接收回波,计算距离
  long duration = pulseIn(echoPin, HIGH);
  int distance = duration * 0.034 / 2; // 声速约为34cm/毫秒

  // 控制舵机根据距离转动
  if (distance >= 2 && distance <= 400) { // 超声波有效范围为2cm至400cm
    int angle = map(distance, 2, 400, 0, 180); // 将距离映射到舵机角度范围(0度至180度)
    servoMotor.write(angle);
    delay(100); // 舵机转动时可能需要一些时间,可以调整延迟时间
  }

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

步骤4:上传代码 将编写好的代码上传到Arduino板上。

步骤5:测试 在Arduino板上加载代码后,打开串口监视器(Serial Monitor)来查看超声波传感器测量到的距离值,并观察舵机是否根据距离值转动。

请注意,在实际搭建电路时要小心连接线路,确保正确连接,并避免损坏硬件。


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

最新推荐

热门点击