大数跨境
0
0

【基础系列教程】项目十:舵机初动

【基础系列教程】项目十:舵机初动 DF创客社区
2020-09-29
2
导读:舵机是一种电机,它使用一个反馈系统来控制电机的位置。
【点击上方「蓝字」关注DF,一起成为技术颜控!】

本项目要接触到舵机。舵机是一种电机,它使用一个反馈系统来控制电机的位置。可以很好掌握电机角度。大多数舵机是可以最大旋转180°的。也有一些能转更大角度,甚至360°。舵机比较多的用于对角度有要求的场合,比如摄像头,智能小车前置探测器,需要在某个范围内进行监测的移动平台。又或者把舵机放到玩具,让玩具动起来。还可以用多个舵机,做个小型机器人,舵机就可以作为机器人的关节部分。所以,舵机的用处很多。

Ardruino也提供了<Servo.h>库,让我们使用舵机变得更方便了。

先从简单入手,套件这个9G小舵机是180°的,我们就让它在0~180°之间来回转动。

所需元件

硬件连接

这个项目的连线很简单,只需按图10-1所示连接舵机三根线就可以了,连的时候注意线序,舵机引出三根线。一根是红色,连到+5V上。一根棕色(有些是黑的),连到GND。还有一根是黄色或者橘色,连到数字引脚9。

图 10-1 舵机连线图

输入代码

样例代码10-1

//项目十 - 舵机
#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°来回转动。

代码回顾

代码的开始先调用<Servo.h>库

这个库已经在Arduino IDE中了,可以打开"项目"——"加载库"——选择"Servo"

我们怎么理解库呢?和我们前面讲到的函数意义是差不多的。函数通常按一个个功能来划分的,就像一 个个小的储物柜,函数名好比储物柜标签名。我们使用的时候,直接看标签就好了,方便我们使用。那 库是什么呢?库则是把多个函数封装打包起来,好比大的储物柜,里面含有一个个小的储物柜。不知道 这样说,你是不是能理解库和函数的关系?

同样,大储物柜也需要一个标签,这标签的学术名叫做“对象”。所以这里叫创建一个对象。就是我们 接下来的这句语句:

变量pos就不说了,用来存放角度值。setup()函数中有一条语句:

这里就开始调用Servo库中的函数了,和我们以前函数调用有点区别。这里,我们需要先指明这是哪个库中的函数。所以,先指出对象名,再指出函数名。每次要用到储物柜的东西就要先指明这个标签。这样程序才知道要去哪里找东西。

库函数调用格式如下:

不要忘了中间的“.”!myservo是我们前面设的标签(对象),然后调用的函数是:

attach(pin)函数有一个传递参数——pin, 任意一个数字引脚(不建议使用数字0,1)。我们这里选择 数字引脚9。

进入主函数,有两个for循环,第一段是从0开始,循环到180,每次增加1度。第二个for循环则是从180开始,每次减小1度,一直减到0。再回到上面那个循环中……

for循环中又调用了一个Servo库中的函数write(pos),我们可以不用管函数内部复杂的程序,只要先会使用就可以了。

和上面那个函数调用一样,先要指明是哪个库。该函数的传递参数就是角度,单位为°。

如果还想了解Servo库中还有哪些好用的函数的话,可以参看下面的网址,里面会有相关介绍的。

Servo库:

http://arduino.cc/en/reference/servo

我们这里对舵机的硬件部分就不做详细说明了,先学会简单的使用即可。如果还想了解更多的话,可以 借助我们的网络资源。

DF创客社区:

https://mc.dfrobot.com.cn/

- END -

硬件军火库


DFRduino UNO R3

Proto Shield

高品质面包线(30根-公公头)

DFRobot DF9GMS 180° 微型舵机


点击了解详情👆


大家有什么想法,或是对文章的指正,都欢迎在下方留言

学有余力的小伙伴,可以点击阅读原文,到社区继续学习!




 往期回顾 




【基础系列教程】初识Arduino

【基础系列教程】项目一:LED闪烁

【基础系列教程】项目二:S.O.S求救信号器

【基础系列教程】项目三:互动交通信号灯

【基础系列教程】项目四:呼吸灯

【基础系列教程】项目五:炫彩RGB LED

【基础系列教程】项目六:报警器

【基础系列教程】项目七:温度报警器

【基础系列教程】项目八:震动传感器

【基础系列教程】项目九:感光灯


点击阅读👆

【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.1k
粉丝0
内容1.3k