进阶制作

提高篇--舵机的驱动

字号+ 作者:PLC工程师 来源:未知 2016-02-26 16:43 我要评论( )

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制

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

1.舵机与控制原理

2.servo类介绍
servo类下有以下成员函数
attach()//连接舵机
write()//角度控制
writeMicroseconds()//
read()//读上一次舵机转动角度
attached()//
detach()//断开舵机连接
普通舵机有3根线:GND(黑)、VCC(红)、Signal(黄),一般情况下,我们建议为舵机单独供电,此处实验为了图方便,用arduino为舵机供电。  

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

下载以下例程(程序可以在IDE>File>Examples>Servo>Sweep中找到,我只是做个中文介绍)

#include <Servo.h> 
Servo myservo;  //创建一个舵机控制对象
                          // 使用Servo类最多可以控制8个舵机
int pos = 0;    // 该变量用与存储舵机角度位置
/*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~ */
void setup() 
{ 
  myservo.attach(9);  // 该舵机由arduino第九脚控制
} 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~ */ 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // 从0度到180度运动 
  {                                                     // 每次步进一度
    myservo.write(pos);        // 指定舵机转向的角度
    delay(15);                       // 等待15ms让舵机到达指定位置
  } 
  for(pos = 180; pos>=1; pos-=1)   //从180度到0度运动  
  {                                
    myservo.write(pos);         // 指定舵机转向的角度 
    delay(15);                        // 等待15ms让舵机到达指定位置 
  } 
}

4.实例2
需要的器材:
arduino控制器、舵机、电位器、杜邦线若干

首先将舵机如下图连接:

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

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

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

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

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


如需更详细资料,如有好资源分享,请加入QQ交流群:214461008

欢迎阅读,欢迎转载,不用注明出处!本站只提供入门和进阶资料,做您学习的小伙伴!

老司机也欢迎光临指导!有好内容请加群:214461008 不要看声明了,看内容吧!

相关文章
  • 移位寄存器在Arduino上的应用

    移位寄存器在Arduino上的应用

    2016-05-13 16:05

  • Arduino硬件中断详解

    Arduino硬件中断详解

    2016-05-13 14:29

  • 利用Arduino制作键盘乐器

    利用Arduino制作键盘乐器

    2016-04-26 16:11

  • 利用Arduino和Android制作智能家居系统

    利用Arduino和Android制作智能家居系统

    2016-04-26 14:34

网友点评