友情提示:380元/半年,儿童学编程,就上码丁实验室。
上一篇教程:Arduino教程 Lesson 10 — 感光灯
先从简单入手,套件这个9G小舵机是180°的,我们就让它在0~180°之间来回转动。所需材料
- 1× DFduino UNO R3
- 1× Micro Servo 9g
STEP 1: 硬件连接
这个项目的连线很简单,只需按图所示连接舵机三根线就可以了,连的时候注意线序,舵机引出三根线。一根是红色,连到+5V上。一根棕色(有些是黑的),连到GND。还有一根是黄色或者橘色,连到数字引脚9。
STEP 2:输入代码
- #include <Servo.h> // 声明调用Servo.h库
- Servo myservo; // 创建一个舵机对象
- int pos = 0; // 变量pos用来存储舵机位置
- void setup() {
- myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
- }
- void loop() {
- for(pos = 0; pos < 180; pos += 1){ // 舵机从0°转到180°,每次增加1°
- myservo.write(pos); // 给舵机写入角度
- delay(15); // 延时15ms让舵机转到指定位置
- }
- for(pos = 180; pos>=1; pos-=1) { // 舵机从180°转回到0°,每次减小1°
- myservo.write(pos); // 写角度到舵机
- delay(15); // 延时15ms让舵机转到指定位置
- }
- }
复制代码
下载代码,下载成功后我们可以看到舵机0~180°来回转动。
STEP 3:代码回顾
代码的开始先调用<Servo.h>库
- #include <Servo.h>
复制代码
这个库已经在Arduino IDE中了,可以打开Arduino-1.0.5/ libraries/ Servo/ Servo.h,这就是Servo库所在位置。
我们怎么理解库呢?和我们前面讲到的函数意义是差不多的。函数通常按一个个功能来划分的,就像一个个小的储物柜,函数名好比储物柜标签名。我们使用的时候,直接看标签就好了,方便我们使用。那库是什么呢?库则是把多个函数封装打包起来,好比大的储物柜,里面含有一个个小的储物柜。不知道这样说,你是不是能理解库和函数的关系?
同样,大储物柜也需要一个标签,这标签的学术名叫做“对象”。所以这里叫创建一个对象。就是我们接下来的这句语句:
- Servo myservo; // 创建一个舵机对象
复制代码
变量pos我们就不说了,用来存放角度值。setup()函数中有一条语句:
- myservo.attach(9);
复制代码
这里就开始调用Servo库中的函数了,和我们以前函数调用有点区别。这里,我们需要先指明这是哪个库中的函数。所以,先指出对象名,再指出函数名。每次要用到储物柜的东西就要先指明这个标签。这样程序才知道要去哪里找东西。
库函数调用格式如下:
对象名.函数名();
不要忘了中间的“.”!myservo是我们前面设的标签(对象),然后调用的函数是:
- attach(pin);
复制代码
attach(pin)函数有一个传递参数——pin, 任意一个数字引脚(不建议使用数字0,1)。我们这里选择数字引脚9。
进入主函数,有两个for循环,第一段是从0开始,循环到180,每次增加1度。第二个for循环则是从180开始,每次减小1度,一直减到0。在回到上面那个循环中……
for循环中又调用了一个Servo库中的函数write(pos),我们可以不用管函数内部复杂的程序,只要先会使用就可以了。
- myservo.write(pos);
复制代码
和上面那个函数调用一样,先要指明是哪个库。该函数的传递参数就是角度,单位为°。
如果还想了解Servo库中还有哪些好用的函数的话,可以参看下面的网址,里面会有相关介绍的。
Servo库:http://arduino.cc/en/reference/servo