当前位置:文档之家› Arduino教程(提高篇)——舵机的驱动

Arduino教程(提高篇)——舵机的驱动

Arduino教程(提高篇)——舵机的驱动在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。

舵机是一种俗称,其实是一种伺服马达。

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

3.实例1
需要的器材:
arduino控制器、舵机、杜邦线若干
首先将舵机如下图连接:
下载以下例程(程序可以在IDE>File>Examples>Servo>Sweep中找到,我只是做个中文介绍)
1.#include <Servo.h>
2.Servo myservo; //创建一个舵机控制对象
3.// 使用Servo类最多可以控制8个舵机
4.intpos = 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.}
24.
4.实例2
需要的器材:
arduino控制器、舵机、电位器、杜邦线若干
首先将舵机如下图连接:
下载以下例程(程序可以在IDE>File>Examples>Servo>Knob中找到)
1.#include <Servo.h>
2.
3.Servo myservo;
4.//创建一个舵机控制对象
5.
6.intpotpin = 0; //该变量用于存储用电位器读出的模拟值
7.intval;
8.// 该变量用与存储舵机角度位置
9.
10.void setup()
11.{
12.myservo.attach(9);
13.// 该舵机由arduino第九脚控制
14.}
15.
16.void loop()
17.{
18.val = analogRead(potpin); //读取电位器控制的模拟值 (范围在0-1023)
19.val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo
(value between 0 and 180)
20.myservo.write(val);
21.// 指定舵机转向的角度
22.delay(15);
23.// 等待15ms让舵机到达指定位置
24.}
5.其他驱动方法:
传送门:。

相关主题