电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> 伺服电机步进电机与控制 >> 正文

如何用Arduino同时控制多个舵机

作者:佚名    文章来源:本站原创    点击数:    更新时间:2019/5/30

关于Arduino控制舵机在以往的文章中已有介绍,如何通过Arduino使用语音命令控制伺服电机、利用Nodemcu控制SG90舵机、利用MPU6050来控制舵机等等,但是这些文章都是基于单一舵机的控制,也就是说我们控制一个舵机是很容易实现的,那假如我们需要同时控制两个、三个甚至更多的舵机时该怎么办呢?

如何用Arduino同时控制多个舵机 

在本文中,我们将向您展示如何使用Arduino来控制多个舵机。用Arduino连接单个舵电机是很容易,但是如果我们把所有的舵机都连接到Arduino的电源引脚上,它们就不能正常工作了,因为Arduino的电流不足以驱动所有舵机。因此,使用Arduino来控制多个舵机,你必须使用单独的电源。如,5v-2A的独立电源或9v的电池。

Arduino同时控制多个舵机的电路图

Arduino同时控制多个舵机的电路图 

什么是舵机?

有的朋友对舵机还很陌生,舵机是通俗的叫法,它的正式名字叫伺服电机。建议查看以前的几篇文章深入了解下:

伺服电机的分类及应用

伺服电机是如何工作的?

什么是PWM:脉冲宽度调制

秒懂舵机角度控制原理

Arduino控制多个舵机代码解析

Arduino有单独的舵机支持库,这个库可以处理所有与PWM控制相关的工作,也可以用来控制舵机,使用这个库,我们只需要在servo1.write(angle); 函数中输入想要旋转的角度,就可以将舵机旋转到所需角度了。

因此,开始我们需要引入舵机的库文件。

#include <Servo.h>

在下面的代码中,我们将初始化四个舵机,它们分别是Servo1、Servo2、Servo3和Servo4。

Servo servo1; 
Servo servo2; 
Servo servo3; 
Servo servo4;

接下来,设置舵机的输入引脚。如下面的代码所示,Servo1连接到Arduino的第三个引脚。你也可以根据自己的需要更改引脚序号,但请记住引脚必须支持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控制多个舵机的完整代码如下:

 
#include <Servo.h> 
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); 
} 
} 

需要注意的是,当使用外部电源对舵机供电时,需要将外部电源的GND与Arduino的GND连接起来,形成电路的等电位连接,否则会造成运行不稳定或存在干扰。

Tags:舵机,伺服电机,Arduino,控制  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询