电子开发 | 基础入门 | 电路原理图 | 姊舰鍥惧疄渚� | PLC鍩虹   銆婂鏋滃枩娆㈡湰绔欙紝璇锋寜 Ctrl+D 鎵嬪姩鏀惰棌锛佹劅璋㈡偍鐨勬敮鎸併€�涓€璧峰涔犱竴璧疯繘姝ワ紝鐢靛瓙寮€鍙戠帇娆㈣繋鎮紒.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

鈽呯數璺叕寮忔墜鍐岋紝鏈€鏂扮増銆婄數瀛愮數璺叕寮忚绠楀櫒銆嬶紝鐢佃矾鍏紡鏌ヨ鎵嬪唽 鐢佃矾鍏紡璁$畻鍣ㄣ€愮數瀛愪粠涓氫汉鍛樺繀澶囨墜鍐屻€�
鈽嗗崄澶╁浼氬崟鐗囨満瀹炰緥100 c璇█ chm鏍煎紡銆傝祫鏂欏唴瀹硅缁嗭紝瑕嗙洊渚嬪瓙澶氾紝鍐呭骞裤€愮數瀛愪粠涓氫汉鍛樺繀澶囨墜鍐屻€�
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> 伺服电机与控制 >> 正文

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

作者:佚名    文章来源:本站原创    点击数:5117    更新时间:2019-05-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 个字
    [ 查看全部 ] 网友评论
        没有任何评论
    最新推荐
    鐢靛瓙寮€鍙戠綉锛氭眹闆嗙患鍚堝悇绫荤數瀛愬埗浣滀笌鐢佃矾鍥剧殑缃戠珯锛宲lc宸ユ帶鎶€鏈�,妯$數鏁扮數鐭ヨ瘑,鍗曠墖鏈篍DA绛夌瓑锛佽崯钀冪數璺浘缃戠珯绮惧崕锛屼负宸ョ▼甯堝垱閫犱环鍊笺€傛杩庡叧娉ㄥ井淇″叕浼楀彿锛氱數瀛愬紑鍙戠綉锛�
    璧勬枡鍖呬笅杞�
     [闁告娲滄晶鏍嫉妤﹁法銈柡鍌︽嫹]闁告ぞ绀侀妵澶屸偓娑崇細缁变即宕¢弴鐘差暬闁哄牆鎼悿鍕瑹閿燂拷100 c閻犲浄鎷�
     [閺夌儐鍨▎銏㈢尵閿燂拷]濞戞挸顦宠ぐ绀烲C閻庢冻缂氱弧鍕鐠恒劍鍩傞弶鐑嗗灟濞嗩敩X-TR
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]LM324閺夆晜鍔栭弬锟�4~20mA閺夌儑鎷�1~5V闁汇垹鐏氱粊锟�
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]LM386濡炲湱绮悗顒佹媴閹捐顔婇柛蹇擃儔椤ユ捇寮ㄩ幆褋浜i柛锝冨妼鐢拷
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]936闁绘帒锕よぐ鎾偨娴e啰鐔呴柛妯煎枔閹﹪宕堕敓锟�
     [闁告娲滄晶鏍嫉妤﹁法銈柡鍌︽嫹]閻℃帒鎳庨敍鎰枖閵忥紕銈撮悹鐚存嫹+婵炴挴鏅涚€癸拷+闁硅翰鍎撮鐔兼儍閸曨偄绀�
     [闂侇偅姘ㄩ弫銈夋偨闂堟稓鎽嶉悹浣瑰礃椤撳憡娼娆愵偨]S7-200PLC闁汇劌瀚挒銏ゆ儑閻旀槒鎷ù鐙呮嫹 S7_2
     [閺夌儐鍨▎銏㈢尵閿燂拷]S7-200閹煎瓨鎸婚弸鍐╃鐠佸湱绀勯柛蹇g厜缁憋拷,STEP7
     [閺夌儐鍨▎銏㈢尵閿燂拷]ModbusPoll闁告粌顒爋dbusSalve闁稿骏鎷�
     [閺夌儐鍨▎銏㈢尵閿燂拷]STEP7婵☆垪鍓濈€氭瑩鏌岃箛鏂跨樄濞寸姰鍊曠花锟� Smart_
     [閺夌儐鍨▎銏㈢尵閿燂拷]Modbus閻犲鍟抽惁顖滃垝閸撗傜触 v1.024 缂備緤鎷�
     [閺夌儐鍨▎銏㈢尵閿燂拷]Modscan32闁告粌顒爋dsim32,modb
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]89c51闁稿繐顦遍悵娑㈠棘闁稖闆归柣顏嗗櫐缁辨獤rotues
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]濞戞挸娲ら崟楣冨储閸炴姰otues濞寸姾娉曞﹢锛勭矙鐎n亞纰嶆繝褎鍔楅悥锟�
     [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]51闁告娲滄晶鏍嫉閸濆嫬鍧婄紒瀣舵嫹 protues濞寸姾娉曞﹢锟�
    热门文章
    • 此栏目下没有热点文章
    鏈€鏂版枃绔�
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询