如前所述,Arduino Due是基于ARM控制器的主板,专为电子工程师和业余爱好者设计。该DUE板可用于制造CNC机器,3D打印机,机械臂等。所有这些项目的共同特征是位置控制。这些项目都需要准确定位。这些机器上的准确位置可以通过伺服电机来实现。在本节中,我们将使用Arduino Due控制伺服电动机的位置。我们已经介绍了使用Arduino Uno的伺服电机接口和使用8051单片机的伺服电机接口。
伺服马达:
伺服电机以其准确的轴运动或位置而闻名。不建议将这些用于高速应用。这些建议用于低速,中等扭矩和精确的位置应用。这些马达用于机械手臂,飞行控制和控制系统。伺服电机还用于某些打印机和传真机。
伺服电机有不同的形状和尺寸。在本教程中,我们将使用SG90伺服电机。SG90是180度伺服电机。因此,使用该伺服器,我们可以将轴定位在0到180度之间。
伺服电机主要有三根线,一根用于正电压,另一根用于接地,最后一根用于位置设置。红色线连接到电源,棕色线连接到地,黄色线(或白色)连接到信号。
伺服电机是直流电机,位置控制系统和齿轮的组合。在伺服系统中,我们有一个控制系统,该系统从信号引脚获取PWM信号。它解码信号并从中获取占空比。之后,它将比率与预定义的位置值进行比较。如果值存在差异,则会相应调整伺服器的位置。因此,伺服电机的轴位置基于PWM信号与SIGNAL引脚的占空比。
的频率的PWM(脉宽调制)信号可基于式伺服电机。这里重要的是PWM信号的占空比。使用Arduino Due检查此PWM。但是,在这种情况下,我们甚至不必担心占空比选择。在Arduino中,我们有一个特殊的功能;调用它后,我们只需声明角度即可调整伺服器的位置。我们将在下面的工作部分中讨论这一点。
在将Servo Motor连接到Arduino Due之前,您可以借助此Servo Motor Tester电路来测试您的伺服。还要检查这些项目以通过Flex Sensor或Force Sensor来控制Servo。
组件:
硬件: Arduino Due,电源(5v),伺服电机。
软件:每晚Arduino,请从下面的链接下载(https://www.arduino.cc/en/Main/Software)
有关如何下载和安装此软件的详细信息,请访问第一个教程《 Arduino Due入门》。
电路图及工作说明:
如先前在ARDUINO中所述,我们有预定义的库,一旦调用或包含头文件,该库将相应地设置频率和占空比。在ARDUINO中,我们只需声明所需的伺服器位置,DUE即可为伺服器生成适当的PWM信号。为了获得准确的伺服器位置,我们需要做的事情是
#包括
伺服myservo;
myservo.attach(servo_signal_pin_attached_to);
myservo.write(需要的位置角度);
头文件 “ #include
其次,通过使用 “ Servo myservo” 为伺服选择一个名称,这里的 myservo 是选择的名称,因此在写位置时我们将使用该名称,当我们要控制多个伺服时,此功能非常方便,我们可以控制多达12个伺服器。
使用具有12个PWM通道的Arduino Due,我们需要告诉DUE伺服的信号引脚连接在哪里或需要在哪里生成PWM信号。为此,我们有 “ myservo.attach(2);” ,这里我们告诉DUE,我们已将伺服器的信号引脚连接到PIN2。
剩下的就是设置位置,我们将使用 “ myservo.write(45);” 来设置伺服的位置 。 ,通过此命令,伺服手移动45度。如果将“ 45”更改为“ 175”,则伺服轴角度将变为175度并停留在那里。之后,每当需要更改伺服器的位置时,只需调用命令 “ myservo.write(needed_position_angle);”即可。 。
在程序中,我们将使用循环来增加和减少角度。因此,伺服从0扫描到180,然后从180扫描到0,依此类推。Arduino Due的伺服电机控制最好在下面的C代码逐步说明中进行解释。