Ash 发表于 2014-1-15 17:49:49

Arduino小白教程第五弹 -- 舵机控制

原作者:Jane 授权转载
这次要接触到舵机。舵机是一种电机,它使用一个反馈系统来控制电机的位置。可以很好掌握角度。
找到以下材料
[*]1× DFduino UNO R3

[*]1 × Micro Servo 9g


硬件连接





这个项目的连线很简单,只需按图10-1所示连接舵机三根线就可以了,连的时候注意线序,舵机引出三根线。一根是红色,连到+5V上。一根棕色(有些是黑的),连到GND。还有一根是黄色或者橘色,也有可能是白色的,连到数字引脚9。
输入代码
打开Arduino IDE,输入代码。
#include <Servo.h>    // 声明调用Servo.h库
Servo myservo;      // 创建一个舵机对象
int pos = 0;          // 变量pos用来存储舵机位置

void setup() {
   myservo.attach(9);// 将引脚9上的舵机与声明的舵机对象连接起来
}

void loop() {
      // 舵机从0°转到180°,每次增加1°         
    for(pos = 0; pos < 180; pos += 1){   
            myservo.write(pos);            // 给舵机写入角度   
            delay(15);                     // 延时15ms让舵机转到指定位置
    }
   
   // 舵机从180°转回到0°,每次减小1°                              
    for(pos = 180; pos>=1; pos-=1) {      
          myservo.write(pos);            // 写角度到舵机   
          delay(15);                     // 延时15ms让舵机转到指定位置
    }
}
程序中还涉及了库中以下两个函数

设置引脚:
myservo.attach(pin);
选用任意的数字引脚作为attach(pin)函数中的pin脚。

读取角度:
myservo.write(pos);
该函数可以很方便的读到舵机当前角度值。
tutorials

awnuxcvbn 发表于 2014-1-25 21:08:03

// 声明调用Servo.h库
#include <Servo.h>
Servo myservo; // 创建一个舵机对象
int pos = 0; // 变量pos用来存储舵机位置

void setup()
{
    myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
}

void loop()
{
    // 舵机从0°转到180°,每次增加1°
    for(pos = 0; pos < 180; pos += 1)
    {
      myservo.write(pos); // 给舵机写入角度
      delay(15); // 延时15ms让舵机转到指定位置
    }

    // 舵机从180°转回到0°,每次减小1°
    for(pos = 180; pos>=1; pos-=1)
    {
      myservo.write(pos); // 写角度到舵机
      delay(15); // 延时15ms让舵机转到指定位置
    }
}

Jane 发表于 2014-3-5 10:51:28

awnuxcvbn 发表于 2014-1-25 21:08


这段代码不是一样的吗?

Ash 发表于 2014-3-20 14:57:58

awnuxcvbn 发表于 2014-1-25 21:08


发现了 原来的代码第一行 少了#include <Servo.h>

无畏青春 发表于 2014-5-23 14:46:12

这个零件哪能同意买最好差不多都有

无畏青春 发表于 2014-5-23 14:46:12

这个零件哪能同意买最好差不多都有

无畏青春 发表于 2014-5-23 14:46:13

这个零件哪能同意买最好差不多都有

Ash 发表于 2014-5-28 18:24:00

无畏青春 发表于 2014-5-23 14:46
这个零件哪能同意买最好差不多都有

你可以淘宝搜arduino入门套件之类的,不过我推荐https://www.dfrobot.com.cn/goods-149.html 都有配套的文字和视频教程,碰到问题也可以到论坛里请教

lianuo 发表于 2015-9-1 14:29:59

原来arduino操作舵机这么简单,节省好多时间啊。

gran 发表于 2019-10-11 09:57:53

怎么加入按键控制?

gada888 发表于 2019-10-16 20:55:00

不错

ktTVpObI 发表于 2020-2-18 23:16:12

读取角度:
myservo.write(pos);
该函数可以很方便的读到舵机当前角度值。


是不是写错了。write()怎么是读取呢?
页: [1]
查看完整版本: Arduino小白教程第五弹 -- 舵机控制