舵机控制

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

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

先从简单入手,套件这个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°来回转动。

我的文件位置:D:\APP_Install\Arduino-1.8.5\Project_Samples_By_ciky\01-servo_control

 

STEP 3:代码回顾
代码的开始先调用<Servo.h>库

    #include <Servo.h>  

复制代码
这个库已经在Arduino IDE中了,可以打开Arduino-1.8.5/ libraries/ Servo/ Servo.h,这就是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);

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值