友情提示:380元/半年,儿童学编程,就上码丁实验室。
产品介绍
舵机:舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。
工作原理:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。
舵机的控制:舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms- – - – - – -0度
1ms- – - – - – - 45度
1.5ms- – - – - - 90度
2ms- – - – - – - -135度
2.5ms- – - – - – -180度
这只是一种参考数值,具体的参数,请参见舵机的技术参数。
红线:电源正
棕线:电源负
橙线:信号输出
实验器件及连线
■ 9G舵机:1个
■ 多彩面包板实验跳绳:若干
程序代码
米思齐代码:
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号造物吧