📜  Arduino伺服马达

📅  最后修改于: 2020-12-27 10:05:57             🧑  作者: Mango

Arduino伺服马达

伺服电动机的原理基于脉宽调制(PWM) 。这意味着施加到特定控制销的脉冲持续时间控制着电动机的旋转角度。

伺服电机的结构类似于直流电机。这意味着它具有转子,定子和控制组件。它具有用于控制扭矩和速度的闭环反馈。

伺服电机的优点如下:

  • 高效率
  • 高输出功率
  • 小尺寸
  • 力量不错
  • 高精准度
  • 负载快速加速

伺服电机的应用是机械,自动化制造,机器人技术,无线电控制器飞机等。控制器被视为伺服电机的重要组成部分。

伺服电动机的运动由电信号决定,该电信号可以是数字的也可以是模拟的。

伺服库是允许Arduino与伺服电机一起使用的库。

什么是Servo库,为什么要使用它?

伺服库允许控制集成的轴和齿轮。我们还可以将轴定位在0到180度之间的不同角度。 Arduino板上的伺服库最多可支持12个电机,而Arduino Mega板上的伺服库最多可支持48个电机。

这是因为伺服器不会干扰Arduino Mega板上PWM引脚的功能。在其他Arduino板上,即使将伺服器连接到这些引脚,伺服库也会禁用PWM引脚9和10。

Mega上的电机使用也受到限制。这意味着我们可以在Arduino Mega上使用12个电机。但是,在Mega板上使用12到23个电机可以禁用11号和12号插针上的PWM功能。

普通电机和伺服电机有什么区别?

普通电机与伺服电机的区别如下:

  • 伺服电机的输出轴可以移动到特定的速度,位置和角度,而普通电机则不能。
  • 伺服电机控制回路使用来自电机的反馈,这有助于电机达到所需的速度和位置。

步进电机和伺服电机有什么区别?

步进电机与伺服电机的区别如下:

  • 伺服电机需要控制回路反馈。控制回路用于监视当前距离和速度。因此,它比步进电机更可靠。
  • 伺服电机的极数通常很少,而步进电机的极数很多。
  • 与步进电机相比,伺服电机的速度曲线更加灵活。
  • 步进电机的速度和精度比伺服电机低。

项目

让我们从Arduino开始该项目。

在这里,伺服电机只需连接到Arduino。

所需硬件

该项目所需的组件如下:

  • 1 x迷你伺服马达
  • Arduino UNO R3开发板(我们可以使用任何Arduino开发板)。
  • 跳线

小型伺服电动机:定义为微型电动机,可以旋转大约180度。它的工作原理与通常的伺服电机类似,但尺寸更小。

我们也可以使用任何伺服电机。连接和过程将相同。

原理

该项目使我们能够将轴控制在0到180度之间的角度。我们还可以将轴的旋转速度设置为不同的速度。

伺服电动机具有信号,电源和接地的三个端子。信号端子通常借助电线连接到Arduino板的5V引脚。

地线,电源线和信号线用黑色,绿色和红色表示。

项目结构

连接或项目的结构如下所示:

连接

下面列出了建立连接的步骤:

  • 将伺服电机的信号端子连接到Arduino板的5V引脚。
  • 将伺服电机的电源端子连接到Arduino板的引脚5。我们可以将电动机的电源端子连接到Arduino板上的任何数字PWM引脚。
  • 将伺服电机的接地端子连接到Arduino板的GND引脚。

草图

考虑下面的代码:

#include 
int POSservo = 0;
Servo servo_5;
void setup()
{
  servo_5.attach(5); // power pin connected to pin 5 of Arduino board
// Here, the pin of the Arduino board connected to the servo should be a PWM pin 
}
void loop()
{
  // It will sweep the servo from 0 to 180 degrees
  for (POSservo = 0; POSservo <= 180; POSservo=POSservo+1) 
  {
    // tell servo to go to position in variable 'POSservo'
    servo_5.write(POSservo);
    // It will wait for the specified duration (20 milliseconds) to reach the position
    delay(20); // delay of 15 millisecond(s)
  }
  for (POSservo = 180; POSservo >= 0;POSservo= POSservo-1) 
  {
    // It will tell servo to go to position in the declared variable 'POSservo'
    servo_5.write(POSservo);
    delay(20);
    // we can modify the duration as per the requirements
  }
}

将代码上传到项目的步骤

步骤如下:

  • 打开Arduino IDE。
  • 从工具->板-> Arduino UNO中选择板的类型。
  • 从工具->端口-> COM中选择端口。
  • 将草图上传到连接图。

连接图

我们将使用模拟器来显示连接,以便使连接更清晰,更精确。

我们可以使用硬件设备进行相同的连接。

输出量

轴将在每个方向上旋转90度,即大约。 180度