Arduino-舵机库(Servo)的使用

本文详细介绍了如何在Arduino UNO开发板上使用Servo库控制多个舵机,并解释了使用Servo库对某些引脚PWM功能的影响。通过串口接收指令,对不同舵机进行角度设置,展示了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用舵机库,可能会影响Arduino某些引脚的PWM功能,就UNO开发板而言,使用Servo库时,9脚10脚,PWM功能无法使用.


#include <Servo.h>
 
Servo base, fArm, rArm, claw;  //建立4个电机对象
 
int dataIndex = 0;
void setup() {
  base.attach(11);     // base 伺服电机连接引脚11 电机代号'b'
  rArm.attach(10);     // rArm 伺服电机连接引脚10 电机代号'r'
  fArm.attach(9);      // fArm 伺服电机连接引脚9  电机代号'f'
  claw.attach(6);      // claw 伺服电机连接引脚6  电机代号'c'
  Serial.begin(9600);
  Serial.println("Please input serial data.");
}
 
void loop() {
  if (Serial.available()) {  // 检查串口缓存是否有数据等待传输 
    char servoName = Serial.read();   //获取整数,电机指令中电机编号信息
 
    Serial.print("servoName = ");
    Serial.print(servoName);    
    Serial.print(" , ");      
    
    int data = Serial.parseInt();   //获取电机指令中电机角度信息
 
    switch(servoName){ //根据电机指令中电机信息决定对哪一个电机进行角度设置
      case 'b':   // 电机指令b,设置base电机角度
        base.write(data);
        Serial.print("Set base servo value: ");
        Serial.println(data);
        break;
      case 'r':  // 电机指令r,设置rArm电机角度  
        rArm.write(data);
        Serial.print("Set rArm servo value: ");
        Serial.println(data);
        break;
      case 'f':   // 电机指令f,设置fArm电机角度  
        fArm.write(data);
        Serial.print("Set fArm servo value: ");
        Serial.println(data);
        break;
      case 'c':   // 电机指令c,设置claw电机角度  
        claw.write(data);  
        Serial.print("Set claw servo value: ");
        Serial.println(data);
        break;
    }
  }
}

servo.read()获取当前角度信息
servo.attached(5)检查5脚上是否链接有点击,如果有返回true,否则返回false
servo.deattach(9)软件实现9脚的舵机断开,即可恢复该引脚的PWM功能

### 如何在 Arduino IDE 中安装 Servo 库 #### 使用库管理器自动安装 Servo 库 对于大多数用户而言,最简便的方式是通过Arduino IDE内置的库管理器来安装Servo库。这不仅简化了安装过程,还能够确保获取的是最新版本。 1. 打开Arduino IDE。 2. 导航至`工具`菜单下的`库管理`选项[^2]。 3. 在弹出的库管理窗口中,在搜索栏输入“Servo”,找到官方提供的Servo库。 4. 单击右侧的安装按钮完成安装。 这种方法适用于希望快速并可靠地获得所需功能而不必担心兼容性的开发者。 #### 手动下载并添加 Servo 库文件夹 如果出于某些原因无法使用上述方法,则可以选择手动方式: 1. 访问[Arduino官方网站](https://www.arduino.cc/en/reference/libraries)或其他可信资源网站寻找Servo库的压缩包形式发布版。 2. 下载完成后解压该ZIP文件到本地计算机上的指定位置。 3. 将解压后的整个文件夹复制粘贴到个人电脑中的Arduino libraries目录下;通常路径为 `Documents/Arduino/libraries` 或者 Windows 用户可能是 `我的文档\Arduino\libraries` 文件夹内[^1]。 4. 如果此时Arduino IDE处于开启状态,请务必按照提示关闭再重新启动IDE以使更改生效。 ```cpp #include <Servo.h> // 创建一个名为 myservo 的伺服对象实例用于控制连接到引脚9上的Servo myservo; void setup() { // 将myservo附加到数字引脚9上 myservo.attach(9); } void loop() { // 向左转 (0度) myservo.write(0); delay(1500); // 转向中间位置 (90度) myservo.write(90); delay(1500); // 向右转 (180度) myservo.write(180); delay(1500); } ``` 这段代码展示了如何初始化和操作已成功加载的Servo库来进行基本的角度调整动作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值