0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino控制多个伺服电机

科技观察员 来源:circuitdigest 作者:潘卡伊·卡特里 2022-11-16 17:19 次阅读

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

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

所需材料

Arduino UNO

伺服电机

电源

面包板

连接线

电路图

poYBAGN0qxOAb-mcAACIgpCYHgw554.png

什么是伺服电机?

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

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

pYYBAGN0qxWADU_7AAB5wPm_3ls256.jpg

poYBAGN0qxeAV9DRAAAseigpAmY389.jpg

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

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

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

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

pYYBAGN0qxmAQyhUAAC4XU_6UKQ939.gif

对于要移动到 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 接地短接至外部电源接地。

poYBAGN0qxuAKZm_AAD5QmXAqaw292.jpg

使用下面给出的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);

}


}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电机
    +关注

    关注

    142

    文章

    9002

    浏览量

    145345
  • 伺服电机
    +关注

    关注

    85

    文章

    2045

    浏览量

    57816
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186961
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino的蓝牙控制伺服电机

    使用伺服电机在机器人技术中很常见,以实现精确控制。在这里,在本教程中,我们将向您展示如何通过蓝牙连接将伺服电机
    发表于 11-16 16:19 3540次阅读
    如何使用<b class='flag-5'>Arduino</b>的蓝牙<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    伺服电机控制Arduino平台

    什么是伺服电机?它们是如何起作用的?(基本驾驶方法和技术)如何选择伺服电机应用Arduino平台工作
    发表于 05-02 15:37 23次下载

    基于Arduino UNO和HC-05蓝牙模块控制伺服电机

    了解如何在移动设备,Arduino UNO和HC-05蓝牙模块中使用Android应用程序控制伺服电机
    的头像 发表于 04-28 15:25 5050次阅读
    基于<b class='flag-5'>Arduino</b> UNO和HC-05蓝牙模块<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    使用Arduino上的串行监视器控制伺服电机

    电子发烧友网站提供《使用Arduino上的串行监视器控制伺服电机.zip》资料免费下载
    发表于 11-03 11:28 0次下载
    使用<b class='flag-5'>Arduino</b>上的串行监视器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    带按钮的Arduino控制伺服电机位置

    电子发烧友网站提供《带按钮的Arduino控制伺服电机位置.zip》资料免费下载
    发表于 11-07 15:04 3次下载
    带按钮的<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>位置

    使用Arduino Uno和POT控制伺服电机

    电子发烧友网站提供《使用Arduino Uno和POT控制伺服电机.zip》资料免费下载
    发表于 11-10 14:19 0次下载
    使用<b class='flag-5'>Arduino</b> Uno和POT<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    Arduino/Android蓝牙伺服电机控制安卓APP

    电子发烧友网站提供《Arduino/Android蓝牙伺服电机控制安卓APP.zip》资料免费下载
    发表于 12-05 09:14 4次下载
    <b class='flag-5'>Arduino</b>/Android蓝牙<b class='flag-5'>伺服</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>安卓APP

    基于Arduino UNO的手势控制伺服电机

    电机旋转 180 度。通过跟踪,伺服器只会在食指抬起而其他手指保持闭合时才会转动。这可以在具有多个伺服器的许多项目中实现,但在这种情况下,我们坚持使用一个
    发表于 12-21 11:26 0次下载

    Arduino和电位器控制伺服电机的位置

    电子发烧友网站提供《用Arduino和电位器控制伺服电机的位置.zip》资料免费下载
    发表于 02-06 11:10 1次下载
    用<b class='flag-5'>Arduino</b>和电位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的位置

    Arduino/Android蓝牙多伺服电机控制

    电子发烧友网站提供《Arduino/Android蓝牙多伺服电机控制.zip》资料免费下载
    发表于 02-08 15:14 0次下载
    <b class='flag-5'>Arduino</b>/Android蓝牙多<b class='flag-5'>伺服</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>

    使用Arduino开发板控制伺服电机

    到达信号指定的位置,它将保 持其位置,并抵抗试图将其从该位置移动的任何外力。该电阻称为伺服的转矩额定值,可在数据表中找到。 脉冲宽度调制PWM: 参考:PWM占空比控制电机转速 当我们使用
    发表于 05-06 10:15 0次下载
    使用<b class='flag-5'>Arduino</b>开发板<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    Arduino控制伺服电机的超级简单方法

    电子发烧友网站提供《用Arduino控制伺服电机的超级简单方法.zip》资料免费下载
    发表于 06-28 09:51 0次下载
    用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的超级简单方法

    Arduino和MPU6050控制伺服电机

    电子发烧友网站提供《用Arduino和MPU6050控制伺服电机.zip》资料免费下载
    发表于 07-03 10:59 1次下载
    用<b class='flag-5'>Arduino</b>和MPU6050<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    如何使用操纵杆和Arduino控制伺服电机

    在这篇文章中,我们将学习如何使用操纵杆和Arduino控制伺服电机。我们将看到有关操纵杆,其销,其结构和工作的概述。我们将从操纵杆中提取有用的数据,这些数据将成为
    的头像 发表于 07-27 11:47 1794次阅读
    如何使用操纵杆和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服
    的头像 发表于 02-11 10:11 2795次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>