| 使用Arduino开发板控制一台或两台伺服电机非常容易实现,但是如果我们想要控制多台伺服电机时,那该怎么做呢? 
 在本篇文章中,我们将向您介绍如何使用Arduino开发板控制多台伺服电机。将多台伺服电机连接到Arduino开发板看上去似乎很容易,但是如果我们将所有舵机连接到Arduino的电源引脚,那么就会因为缺乏足够的电流来驱动所有电机,从而导致它们无法正常工作。所以你必须采用独立的电源向电机供电,可以是电源适配器(5V/2A),也可以是优质的9V电池。 
 所需的材料 ●    Arduino UNO开发板 ●    伺服电机 ●    电源 ●    面包板 ●    连接导线 
 电路原理图 
  使用Arduino控制多台伺服电机的电路图 
 什么是伺服电机? 在详细讨论之前,首先我们应该了解伺服电机。 
 伺服电机有不同的形状和尺寸。伺服电机主要有三根导线,一根是电源线,另一根是地线,最后一根是位置。 红线连接到电源,黑线连接到地,黄线连接到信号。 
  
 
  
 一个伺服电机包含直流电机、位置控制系统以及齿轮。根据信号引脚的PWM信号占空比,直流电机轴的位置由伺服电机的控制电路进行调整。 
 简单地说,控制电路通过控制直流电机来调整轴位置。轴位置相关的数据通过信号引脚发送。控制的位置数据应通过伺服电机的信号引脚以PWM信号的形式发送。 PWM(脉宽调制)信号的频率因伺服电机的类型而略有变化。这里重要的参数是PWM信号的占空比(DUTY RATIO)。根据占空比,控制电路调整轴的位置。 如下图所示,要想将轴移动到9点钟方向,开启的占空比必须是1 / 18,也就是18ms信号中1ms的ON时间和17ms的OFF时间。 
  
 要想将轴移动到12点钟方向,信号的ON时间必须为1.5ms,OFF时间应为16.5ms。伺服电机里面的控制系统解码该占空比,并根据此比例调整位置。这里的PWM是通过使用ARDUINO UNO生成的。 
 Arduino代码说明 在本文的末尾给出了用于控制多台伺服电机的完整Arduino代码。 
 Arduino IDE自带伺服电机库,它处理所有PWM相关的事情来旋转伺服电机,你只需要输入想旋转的角度,然后使用函数servo1.write(angle);将使伺服电机旋转到所需的角度。 
 因此,我们首先定义伺服电机库。 
 在下面的代码中,我们分别将四台伺服电机初始化为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开发板控制两台以上的伺服电机时,我们都面临着电流不足的问题。唯一的解决办法是连接一个外部电源,可以提供适量的电流额定值(本文中,我采用的是9V/2A电源)。您可以使用适配器、RPS(稳压电源设备)或优质的9V电池作为外部电源,甚至在某些情况下,您可以使用笔记本电脑的USB端口为小型伺服电机供电。要使用外部电源,您只需将Arduino的地与外部电源的地连在一起。 
  
 使用下面给出的Arduino代码对Arduino开发板进行编程,并按照电路图所示连接所有的伺服电机,并为电机提供适当的电源。这样,所有舵机都可以同时工作,没有任何中断。 
 代码 本文所使用的完整代码如下:
 main.txt
(610 Bytes, 下载次数: 102) |