伺服电机

伺服电机是一种有输出轴的小型设备。通过向伺服发送信号,可以将该轴转到特定角度。

实际上,伺服电机用于无线电控制的飞机中来定位控制面,如升降舵和方向舵。它们还用于无线电控制的汽车,木偶,当然还有机器人。正是因为早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。

结构与接线

舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。

你还可以看到连接到外部的3根电线。中间的红线是接电源(+5伏),棕线接地,而另一根是控制线,接PWM输出的引脚(即编号带有波浪线的引脚)。

工作原理

舵机工作分成两个部分,检测舵机当前角度以及控制舵机转到特定角度。

基准信号

舵机内部有一个基准电路,产生周期为20ms、宽度为1.5ms的基准信号。基准信号(1.5ms)与控制信号(0.5ms~2.5ms)相比较,从而判断舵机应该往何种方向转动以及转动的角度大小。

例如,1.5毫秒脉冲(控制信号,周期20ms)将使电机转到90度位置(通常称为中性位置)。如果脉冲短于0.5毫秒,则电机将轴转到更接近-90度。如果脉冲为2.5毫秒,则轴转接近+90度。

控制信号

舵机的控制信号为Stduino板输出的PWM信号,周期为20ms,其中脉冲宽度从0.5ms~2.5ms,对应舵盘的0°到180°,呈线性变化。

也就是说,给舵机提供一定的脉宽,它的输出轴就会保持在一个与之对应的角度上,直到下一个不同的脉宽出现,转到新的对应角度。

反馈信号

舵机接收来自信号线的控制信号,电机在转动时,会带动反馈电位计的转动,电位计将输出一个电压信号到舵机控制板,进行反馈,该信号与控制信号进行比较,从而调整转动方向与速度,直到反馈信号与控制信号相同。

(动图引用自八色木.秒懂舵机角度控制原理https://www.basemu.com/servo-angle-control-principle.html
(控制信号图片引用自TonyCode
. Arduino基础入门篇28-舵机控制. https://www.jianshu.com/p/f3fee0082519

必需的组件

你将需要以下组件:

  • 1 × Stduino UNO板
  • 1 × SG90舵机
  • 杜邦线

电路连接

伺服电机有三个连线:电源,接地和信号。电源线通常为红色,应连接到Stduino上的5V引脚。接地线通常为棕色,应连接到GND。第三个引脚选择可PWM输出的引脚即可。

代码

该例程控制舵机由左向右转动180°,再又反方向转回。

#include <Arduino.h>
#include <Servo.h>
Servo myServo; //创建一个舵机控制对象
int pos=0; //角度(0~180°)

void setup() 
{
    myServo.attach(12); // 该舵机由Stduino第12脚控制
    myServo.write(pos); 
    delay(15);
}

void loop() 
{
    for (pos = 0; pos <= 180; pos += 1) 
    { 
        myServo.write(pos);              
        delay(15);                       
    }
    delay(60);
    for (pos = 180; pos >= 0; pos -= 1) 
    { 
        myServo.write(pos);              
        delay(15);                       
    }
    delay(60);
}
文档更新时间: 2021-02-14 14:31   作者:admin