2014-1-15 17:49:49 [显示全部楼层]
27509浏览
查看: 27509|回复: 13

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

[复制链接]
原作者:Jane 授权转载

这次要接触到舵机。舵机是一种电机,它使用一个反馈系统来控制电机的位置。可以很好掌握角度。

找到以下材料
  • 1× DFduino UNO R3
  • 1 × Micro Servo 9g


硬件连接



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


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

输入代码

打开Arduino IDE,输入代码。

  1. #include <Servo.h>    // 声明调用Servo.h库
  2. Servo myservo;        // 创建一个舵机对象
  3. int pos = 0;          // 变量pos用来存储舵机位置
  4.   
  5. void setup() {
  6.      myservo.attach(9);  // 将引脚9上的舵机与声明的舵机对象连接起来
  7. }
  8.   
  9. void loop() {
  10.       // 舵机从0°转到180°,每次增加1°         
  11.     for(pos = 0; pos < 180; pos += 1){   
  12.             myservo.write(pos);              // 给舵机写入角度   
  13.             delay(15);                       // 延时15ms让舵机转到指定位置
  14.     }
  15.    
  16.      // 舵机从180°转回到0°,每次减小1°                              
  17.     for(pos = 180; pos>=1; pos-=1) {      
  18.           myservo.write(pos);            // 写角度到舵机     
  19.           delay(15);                     // 延时15ms让舵机转到指定位置
  20.     }
  21. }
复制代码

程序中还涉及了库中以下两个函数

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

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

tutorials

awnuxcvbn  学徒

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

  1. // 声明调用Servo.h库
  2. #include <Servo.h>
  3. Servo myservo; // 创建一个舵机对象
  4. int pos = 0; // 变量pos用来存储舵机位置
  5. void setup()
  6. {
  7.     myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
  8. }
  9. void loop()
  10. {
  11.     // 舵机从0°转到180°,每次增加1°
  12.     for(pos = 0; pos < 180; pos += 1)
  13.     {
  14.         myservo.write(pos); // 给舵机写入角度
  15.         delay(15); // 延时15ms让舵机转到指定位置
  16.     }
  17.     // 舵机从180°转回到0°,每次减小1°
  18.     for(pos = 180; pos>=1; pos-=1)
  19.     {
  20.         myservo.write(pos); // 写角度到舵机
  21.         delay(15); // 延时15ms让舵机转到指定位置
  22.     }
  23. }
复制代码
回复

使用道具 举报

Jane  高级技匠

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


这段代码不是一样的吗?
回复

使用道具 举报

Ash  管理员
 楼主|

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


发现了 原来的代码第一行 少了#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()怎么是读取呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail