舵机

概述

在本课中,您将探索 Arduino 和舵机的使用。重点介绍 Arduino Uno 和 SG90 舵机,您将学习如何编程 Arduino 来控制舵机的扫动运动。该技术对于机器人和自动化系统等各种应用至关重要。

所需元件

本项目中,我们需要以下元件。

购买整套套件会更加方便,以下是链接:

名称

套件所含项目

链接

Elite Explorer 套件

300+

Elite Explorer Kit

您也可以从以下链接单独购买。

元件介绍

购买链接

Arduino Uno R4 WiFi

-

杜邦线

BUY

舵机

BUY

接线

../_images/27-servo_bb.png

原理图

../_images/27_servo_schematic.png

代码

备注

  • 您可以直接打开路径 elite-explorer-kit-main\basic_project\27-servo 下的 27-servo.ino 文件。

  • 或者将以下代码复制到 Arduino IDE 中。

代码分析

  1. 这里包含了 Servo 库,它允许轻松控制舵机。还定义了连接到舵机的引脚和舵机的初始角度。

    #include <Servo.h>
    const int servoPin = 9;  // 定义舵机引脚
    int angle = 0;           // 将角度变量初始化为 0 度
    Servo servo;             // 创建一个舵机对象
    
  2. setup() 函数在 Arduino 启动时运行一次。使用 attach() 函数将舵机连接到定义的引脚。

    void setup() {
      servo.attach(servoPin);
    }
    
  3. 主循环包含两个 for 循环。第一个循环将角度从 0 度增加到 180 度,第二个循环将角度从 180 度减小到 0 度。servo.write(angle) 命令将舵机设置为指定角度。delay(15) 使舵机在移动到下一个角度之前等待 15 毫秒,从而控制扫动运动的速度。

    void loop() {
      // 从 0 度扫描到 180 度
      for (angle = 0; angle < 180; angle++) {
        servo.write(angle);
        delay(15);
      }
      // 现在从 180 度扫描回 0 度
      for (angle = 180; angle > 0; angle--) {
        servo.write(angle);
        delay(15);
      }
    }