找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

参加活动: 2

组织活动: 1

  • TA的每日心情
    慵懒
    2017-7-16 11:47
  • 签到天数: 44 天

    [LV.5]常住居民I

    奈何col 攻城狮 2012-5-4 18:04 楼主
    本帖最后由 奈何col 于 2012-12-13 00:41 编辑

           在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。
           舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。

    1.舵机与控制原理

    2.servo类介绍
    servo类下有以下成员函数
    attach()//连接舵机
    write()//角度控制
    writeMicroseconds()//
    read()//读上一次舵机转动角度
    attached()//
    detach()//断开舵机连接
    如果以上内容对你有帮助,你可以通过打赏支持作者

    4人打赏

    本帖最后由 奈何col 于 2012-5-9 10:46 编辑

    普通舵机有3根线:GND(黑)、VCC(红)、Signal(黄),一般情况下,我们建议为舵机单独供电,此处实验为了图方便,用arduino为舵机供电。  

    3.实例1

    需要的器材:
    arduino控制器、舵机、杜邦线若干
    首先将舵机如下图连接:

    下载以下例程(程序可以在IDE>File>Examples>Servo>Sweep中找到,我只是做个中文介绍)
    1. #include <Servo.h>
    2. Servo myservo;  //创建一个舵机控制对象
    3.                           // 使用Servo类最多可以控制8个舵机
    4. int pos = 0;    // 该变量用与存储舵机角度位置
    5. /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    6. void setup()
    7. {
    8.   myservo.attach(9);  // 该舵机由arduino第九脚控制
    9. }
    10. /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    11. void loop()
    12. {
    13.   for(pos = 0; pos < 180; pos += 1)  // 从0度到180度运动
    14.   {                                                     // 每次步进一度
    15.     myservo.write(pos);        // 指定舵机转向的角度
    16.     delay(15);                       // 等待15ms让舵机到达指定位置
    17.   }
    18.   for(pos = 180; pos>=1; pos-=1)   //从180度到0度运动  
    19.   {                                
    20.     myservo.write(pos);         // 指定舵机转向的角度
    21.     delay(15);                        // 等待15ms让舵机到达指定位置
    22.   }
    23. }
    复制代码

    4.实例2
    需要的器材:
    arduino控制器、舵机、电位器、杜邦线若干
    首先将舵机如下图连接:

    下载以下例程(程序可以在IDE>File>Examples>Servo>Knob中找到)
    1. #include <Servo.h>

    2. Servo myservo;  
    3. //创建一个舵机控制对象  

    4. int potpin = 0;  //该变量用于存储用电位器读出的模拟值
    5. int val;   
    6. // 该变量用与存储舵机角度位置  

    7. void setup()
    8. {
    9.   myservo.attach(9);  
    10. // 该舵机由arduino第九脚控制  
    11. }

    12. void loop()
    13. {
    14.   val = analogRead(potpin);            //读取电位器控制的模拟值 (范围在0-1023)
    15.   val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
    16.   myservo.write(val);                  
    17. // 指定舵机转向的角度  
    18.   delay(15);                           
    19. // 等待15ms让舵机到达指定位置   
    20. }
    复制代码



    5.其他驱动方法:

    传送门:
    arduino驱动舵机,不调用库函数:http://www.arduino.cn/thread-45-1-1.html
    如果以上内容对你有帮助,你可以通过打赏支持作者
    更新了一大部分~~~{:soso__14610756010512383460_3:}
    如果以上内容对你有帮助,你可以通过打赏支持作者
    add..

    futaba 白红黑 白——信号 红——正极 黑——负极

    JR       橙红褐 橙——信号 红——正极 褐——负极
    add..

    futaba 白红黑 白——信号 红——正极 黑——负极

    JR       橙红褐 橙——信号 红——正极 褐——负极
    几天前写错程序  舵机就坏了{:soso_e109:}
    大鹏·Roc 发表于 2012-5-12 21:37
    几天前写错程序  舵机就坏了

    是插错了吧~~~
    如果以上内容对你有帮助,你可以通过打赏支持作者
    奈何col 发表于 2012-5-12 22:14
    是插错了吧~~~

    没加 delay
    就悲剧了
    谢谢版主
    最方便的方法~ 我感觉"单独供电"要加粗加红~
    打赏作者鼓励一下!
    发表评论
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  
    关闭

    推荐主题 上一条 /2 下一条