如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

使用一个或两个带有Arduino的伺服很容易,但是如果我们想使用多个伺服电机怎么办?

在这里,我们将向您展示如何使用Arduino控制多个伺服电机。将多个伺服电机与Arduino连接似乎很容易,但是如果我们将所有伺服连接到Arduino电源引脚,那么由于没有足够的电流来驱动所有电机,它们将无法正常工作。因此,您必须为电机使用单独的电源,无论是来自某些适配器(5v 2A)还是来自优质 9v 电池。

所需材料

Arduino UNO

伺服电机

电源

面包板

连接线

电路图

如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

什么是伺服电机?

在详细介绍之前,首先我们应该了解伺服电机。

伺服电机有不同的形状和尺寸。伺服电机将主要有电线,一个用于正电压,另一个用于接地,最后一个用于位置设置。红线连接到电源,黑线接地,黄线连接到信号。

如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

伺服电机是直流电机、位置控制系统、齿轮的组合。直流电机轴的位置由伺服中的控制电子设备根据PWM信号的占空比SIGNAL引脚进行调整。

简单地说,控制电子设备通过控制直流电机来调整轴位置。有关轴位置的数据通过SIGNAL引脚发送。控制器的位置数据应通过伺服电机的信号引脚以PWM信号的形式发送。

PWM(脉宽调制)信号的频率可能因伺服电机的类型而异。这里重要的是PWM信号的占空比。根据此负载配给,控制电子设备调整轴。

如下图所示,要使轴移动到 9 点钟,打开口粮必须为 1/18.ie。在 18ms 信号中,1ms 的导通时间和 17ms 的关闭时间。

如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

对于要移动到 12 点时钟的轴,信号的导通时间必须为 1.5ms,关闭时间应为 16.5ms。该比率由控制系统在伺服中解码,并据此调整位置。这里的PWM是使用ARDUINO UNO生成的。

Arduino代码解释

最后给出了用于多伺服控制的完整Arduino代码。

Arduino具有伺服电机库,它处理所有与PWM相关的东西来旋转伺服器,您只需要输入要旋转的角度,并且有功能servo1.write(angle); 它将伺服器旋转到所需的角度。

因此,这里我们从定义伺服电机的库开始。

#include

在下面的代码中,我们将所有四个伺服器初始化为 Servo1、Servo2、Servo3 和 Servo4。

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

然后,我们使用Arduino设置所有伺服器的输入引脚。如下面的代码所示,Servo1连接到Arduino的第3个引脚。您可以根据自己更改引脚,但请记住,它应该是PWM引脚。使用带有Arduino数字引脚的伺服是不可靠的。

void setup() {

servo1.attach(3);

servo2.attach(5);

servo3.attach(6);

servo4.attach(9);

}

现在,在 void loop() 函数中,我们只是将所有伺服从 0 度旋转到 180 度,然后旋转180 度到 0 度。以下代码中使用的延迟用于增加或降低伺服的速度,因为它会影响变量“i”的速度增加或减少。

void loop() {

for (int i = 0; i < 180; i++) {

servo1.write(i);

servo2.write(i);

servo3.write(i);

servo4.write(i);

delay(10);

}

for (i = 180; i > 0; i–) {

servo1.write(i);

servo2.write(i);

servo3.write(i);

servo4.write(i);

delay(10);

}

}

使用 Arduino 控制多个伺服系统工作:

在将两个以上的伺服系统与一个Arduino一起使用时,我们都面临着当前的问题。唯一的解决方案是连接具有适当额定电流的外部电源(在此项目中,我使用2A和9v电源)。对于外部电源,您可以使用适配器,RPS(稳压电源仪表)或优质的9v伏电池,您可以使用笔记本电脑USB端口为小型伺服供电。要使用外部电源,您只需将 Arduino 接地短接至外部电源接地。

如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序

使用下面给出的Arduino代码对Arduino进行编程,并将电路图中所示的所有伺服电机连接到电机,并为电机提供适当的电源。因此,所有伺服器将不间断地协同工作。

#include

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

int i = 0;

void setup() {

servo1.attach(3);

servo2.attach(5);

servo3.attach(6);

servo4.attach(9);

}

void loop() {

for (i = 0; i < 180; i++) { 

servo1.write(i);

servo2.write(i);

servo3.write(i);

servo4.write(i);

delay(10);

}

for (i = 180; i > 0; i–) {

servo1.write(i);

servo2.write(i);

servo3.write(i);

servo4.write(i);

delay(10);

}

}

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:如何使用Arduino控制多个伺服电机-arduino控制伺服驱动器程序 https://www.yhzz.com.cn/a/6389.html

上一篇 2023-04-13 15:49:56
下一篇 2023-04-13 16:00:43

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。