Arduino-舵机库(Servo)的使用

使用舵机库,可能会影响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功能

  • 18
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值