最新消息:

【Arduino教程】第二十讲:9G舵机实验

Arduino 少儿编程 3436浏览 0评论
Arduino教程一

产品介绍

舵机舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。

工作原理:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。

舵机的控制:舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:

0.5ms- – - – - – -0度

1ms- – - – - – - 45度

1.5ms- – - – - - 90度

2ms- – - – - – - -135度

2.5ms- – - – - – -180度

 这只是一种参考数值,具体的参数,请参见舵机的技术参数。

【Arduino教程】第二十讲:9G舵机实验

红线:电源正

棕线:电源负

橙线:信号输出

实验器件及连线

【Arduino教程】第二十讲:9G舵机实验

■ 9G舵机:1个

■ 多彩面包板实验跳绳:若干

【Arduino教程】第二十讲:9G舵机实验

程序代码

米思齐代码:

【Arduino教程】第二十讲:9G舵机实验

Arduino代码:

#include <Servo.h>

Servo myservo; //

// 最多可以控制8 路舵机

int pos = 0; // 用于存储舵机位置的变量

//初始化

void setup()

{

myservo.attach(9); // 舵机控制信号引脚

}

//主循环

void loop()

{

for(pos = 0; pos < 180; pos += 1) // 从0 度-180度

{ // 步进角度1 度

myservo.write(pos); // 输入对应的角度值,舵机会转到此位置

delay(15); // 15ms后进入下一个位置

}

for(pos = 180; pos>=1; pos-=1) // 从180 度-0 度

{

myservo.write(pos); // 输入对应的角度值,舵机会转到此位置

delay(15); // 15ms后进入下一个位置

}

实验结论

上电后可以看到,舵机在循环自传。

转自公众号:
29号造物吧

您必须 登录 才能发表评论!