利用Arduino驱动舵机(附带程序).docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Arduino驱动舵机(附带程序)

学习利用Arduino 驱动舵机 (附带程序) 2012-6-30 00:27| 发布者: sonxun| 查看: 1180| 评论: 0 摘要: 什么是伺服电机? 想象一下有一个小电机连接到一个可调电阻器。一个电动脉冲或者命令被发送到电机之后,电机旋转到匹配指定的电位值的角度。嗯,那样说听起来有点难以理解。 一个更简单的解释是:伺服电机,就是一个可 ... 什么是伺服电机? 想象一下有一个小电机连接到一个可调电阻器。一个电动脉冲或者命令被发送到电机之后,电机旋转到匹配指定的电位值的角度。嗯,那样说听起来有点难以理解。 一个更简单的解释是:伺服电机,就是一个可以被指定旋转到一个特定的角度的电动马达。例如,它通常可以用来控制遥控汽车的转向系统。在这里,我们要再次感谢Arduino和朋友们,要使用一个伺服电机是很容易的,它可以让你创造出富有想象力的设计,唯一的局限就只有你的时间和资金了。 当你想要使用伺服电机时,需要考虑一些因素,包括: 旋转范围,指的是电机可以旋转的角度的范围。例如 180 度或者 360 度 (全旋),等等。 旋转速度(通常以旋转每一度所花费的时间来衡量)。 扭矩,伺服电机能够产生的扭矩 (旋转的力量)。 在负载的状态下的电流大小。 重量、成本以及其他因素。 脑海中首先想到的一个问题就是“哇——我能够同时使用多少个电机呢?”答案是……?在duemilanove上,可以使用12个;在arduino mega上,可以使用48 个(哇)。请注意当你使用伺服电机函数库时,你不能在第9和第10端口上使用analogWrite(); 函数。你可以在 arduino?伺服电机函数库 页面找到更多的细节。 在今天的例子和练习中,我使用了 Turnigy TG9 伺服电机。它相当的便宜,而且重量轻,非常适合演示实验,这款电机也经常被用于遥控飞机。它的旋转范围是180度。(它真的非常便宜) 我希望你注意到伺服电机上一共有三根导线。一根是 +5V 电源,一根是 GND 接地,另一根是控制信号——连接到arduino的一个数字输出端口上。导线的颜色不是固定的,不过对于这一款 adafruit的伺服电机 来说,颜色最深的的是地线GND,最浅的是控制信号线,不深不浅的就是 +5V 电源线了。这一款电机非常小,额定电流也不大,所以可以使用你的 Arduino 控制板直接驱动。然而,当你使用更大的电机或者电机有较大的负载时,你就需要为电机独立供电,这样才能提供它所需要的电流。如果你要同时使用两个以上的这类轻量级的电机时,你需要使用外接电源以及一个电机扩展板。 当你使用角度计量时,你最好准备一个量角器,就像这样的: 我们要怎样才能控制伺服电机呢?首先我们需要使用伺服电机函数库。就像我们在第二章中使用LCD显示屏那样,在代码的开头部分写下这样一行: #include 这样,我们就可以使用伺服电机控制命令了。 接下来需要在代码中创建伺服电机的对象(object),以便于引用,例如: Servo myservo; 最后,为了控制电机,将电机对象绑定到一个数字端口(在 void setup(); 代码段中 )。 myservo.attach(9);? // 在端口9上绑定电机对象 代码的设置部分就只有这些了,接下来所需要做的就只有…… myservo.write(pos); pos 是一个 0 到 180 (或者多或者少,这决定于伺服电机旋转的角度的范围) 之间的数字。 好了,空谈不如实践,我们要用一个例子来将所有的东西包括伺服电机的旋转都结合在一起。 下面的例子将让你看到指针从左边移动到中间再移动到右边并重复循环: (下载) /* 例子 3.3 – 伺服电机监测 创建于 21/04/2010 — ?作者 John Boxall — — CC by-sa v3.0 */ #include Servo myservo; ?// 创建电机对象 int pos = 0; ? ?// 存放电机旋转角度的变量 int del = 100; // 延时(单位:毫秒) void setup() { Serial.begin(9600); myservo.attach(9); ?// 将伺服电机控制信号连接到在端口9并绑定电机对象 } void loop() { for (int loopy = 0; loopy=3; loopy++) { for (pos = 180; pos =0; pos--) // 将Hextronik HXT900电机从左向右旋转 { myservo.write(pos); delay(del); } delay(1000); } for (int loopy = 0; loopy=3; loopy++) { myservo

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档