📜  Arduino-伺服电机

📅  最后修改于: 2020-11-05 03:45:05             🧑  作者: Mango


伺服电机是具有输出轴的小型设备。通过向伺服发送编码信号,可以将该轴定位到特定的角度位置。只要输入线上存在编码信号,伺服系统将保持轴的角位置。如果编码信号发生变化,则轴的角度位置也会发生变化。实际上,在无线电控制飞机中使用伺服器来定位控制表面,例如电梯和方向舵。它们还用于无线电遥控汽车,木偶,当然还有机器人。

伺服马达

Servos在机器人技术中非常有用。电机体积小,具有内置控制电路,并且尺寸强大。诸如Futaba S-148之类的标准舵机具有42盎司/英寸的扭矩,这对于其尺寸来说很强大。它还汲取与机械负载成比例的功率。因此,轻负载的伺服器不会消耗太多能量。

伺服电机的内胆如下图所示。您可以看到控制电路,电动机,一组齿轮和机壳。您还可以看到连接到外界的3条电线。一种是用于电源(+ 5V),地线,白线是控制线。

伺服电机控制电路

伺服电机的工作

伺服电机具有一些控制电路和连接到输出轴的电位计(可变电阻器,又称电位计)。在上图中,可以在电路板的右侧看到锅。该电位器允许控制电路监视伺服电机的当前角度。

如果轴的角度正确,则电动机将关闭。如果电路发现角度不正确,它将转动电动机,直到达到所需角度为止。伺服器的输出轴可以在大约180度的范围内移动。通常,它在210度范围内,但是根据制造商而有所不同。普通伺服器用于控制0到180度的角运动。由于内置在主输出齿轮上的机械挡块,因此机械上无法进一步旋转。

施加到电动机上的功率与它需要行进的距离成正比。因此,如果轴需要转动很远的距离,则电动机将以全速运行。如果只需要转动少量,则电动机将以较低的速度运行。这称为比例控制

您如何传达伺服旋转的角度?

控制线用于传达角度。该角度由施加到控制线的脉冲的持续时间确定。这称为脉冲编码调制。伺服器希望每20毫秒(.02秒)看到一个脉冲。脉冲的长度将决定电机旋转多远。例如,一个1.5毫秒的脉冲将使电动机转到90度位置(通常称为空挡位置)。如果脉冲短于1.5毫秒,则电动机会将轴旋转到接近0度的位置。如果脉冲长于1.5毫秒,则轴将更接近180度。

转角

所需组件

您将需要以下组件-

  • 1个Arduino UNO板
  • 1×伺服电机
  • 1×ULN2003驱动IC
  • 1×10KΩ电阻

程序

按照电路图进行连接,如下图所示。

伺服电机连接

草图

打开计算机上的Arduino IDE软件。使用Arduino语言进行编码将控制您的电路。通过单击“新建”打开一个新的草图文件。

草图

Arduino代码

/* Controlling a servo position using a potentiometer (variable resistor) */

#include 
   Servo myservo; // create servo object to control a servo
   int potpin = 0; // analog pin used to connect the potentiometer
   int val; // variable to read the value from the analog pin

void setup() {
   myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
   val = analogRead(potpin);
   // reads the value of the potentiometer (value between 0 and 1023)
   val = map(val, 0, 1023, 0, 180);
   // scale it to use it with the servo (value between 0 and 180)
   myservo.write(val); // sets the servo position according to the scaled value
   delay(15);
}

注意代码

伺服电机具有三个端子-电源,接地和信号。电源线通常为红色,应连接至Arduino的5V引脚。接地线通常为黑色或棕色,应连接至ULN2003 IC(10 -16)的一个端子。为了保护您的Arduino开发板不受损坏,您需要使用一些驱动器IC。在这里,我们使用ULN2003 IC驱动伺服电机。信号引脚通常为黄色或橙色,应连接至Arduino引脚编号9。

连接电位器

分压器/分压器是串联电路中的电阻器,可将输出电压缩放到所施加输入电压的特定比例。以下是电路图-

连接电位器

$$ V_ {out} =(V_ {in} \ times R_ {2})/(R_ {1} + R_ {2})$$

V out是输出电势,它取决于串联的施加的输入电压(V in )和电阻器(R 1和R 2 )。这意味着流过R 1的电流也将流过R 2而不被分流。在上式中,随着R 2的值改变,V out相对于输入电压V in相应缩放。

通常,电位计是一个分压器,可以根据可变电阻器的值来缩放电路的输出电压,该可变电阻器的值可以使用旋钮进行缩放。它具有三个引脚:GND,信号和+ 5V,如下图所示-

带说明的电位器

结果

通过改变电位计的NOP位置,伺服电动机将改变其角度。