18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 基礎入門 >> 伺服電機與控製 >> 正文

如何用Arduino同時控製多個舵機

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2019-05-30

關(guan) 於(yu) Arduino控製舵機在以往的文章中已有介紹,如何通過Arduino使用語音命令控製伺服電機、利用Nodemcu控製SG90舵機、利用MPU6050來控製舵機等等,但是這些文章都是基於(yu) 單一舵機的控製,也就是說我們(men) 控製一個(ge) 舵機是很容易實現的,那假如我們(men) 需要同時控製兩(liang) 個(ge) 、三個(ge) 甚至更多的舵機時該怎麽(me) 辦呢?

如何用Arduino同時控製多個(ge) 

在本文中,我們(men) 將向您展示如何使用Arduino來控製多個(ge) 舵機。用Arduino連接單個(ge) 舵電機是很容易,但是如果我們(men) 把所有的舵機都連接到Arduino的電源引腳上,它們(men) 就不能正常工作了,因為(wei) Arduino的電流不足以驅動所有舵機。因此,使用Arduino來控製多個(ge) 舵機,你必須使用單獨的電源。如,5v-2A的獨立電源或9v的電池。

Arduino同時控製多個舵機的電路圖

Arduino同時控製多個(ge) 

什麽是舵機?

有的朋友對舵機還很陌生,舵機是通俗的叫法,它的正式名字叫伺服電機。建議查看以前的幾篇文章深入了解下:

伺服電機的分類及應用

伺服電機是如何工作的?

什麽(me) 是PWM:脈衝(chong) 寬度調製

秒懂舵機角度控製原理

Arduino控製多個舵機代碼解析

Arduino有單獨的舵機支持庫,這個(ge) 庫可以處理所有與(yu) PWM控製相關(guan) 的工作,也可以用來控製舵機,使用這個(ge) 庫,我們(men) 隻需要在servo1.write(angle); 函數中輸入想要旋轉的角度,就可以將舵機旋轉到所需角度了。

因此,開始我們(men) 需要引入舵機的庫文件。

#include <Servo.h>

在下麵的代碼中,我們(men) 將初始化四個(ge) 舵機,它們(men) 分別是Servo1、Servo2、Servo3和Servo4。

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

接下來,設置舵機的輸入引腳。如下麵的代碼所示,Servo1連接到Arduino的第三個(ge) 引腳。你也可以根據自己的需要更改引腳序號,但請記住引腳必須支持PWM,使用的Arduino數字引腳會(hui) 導致工作不穩定。

void setup() { servo1.attach(3); servo2.attach(5); servo3.attach(6); servo4.attach(9); }

現在,在void loop()函數中,將所有的舵機從(cong) 0度旋轉到180度,然後從(cong) 180度旋轉到0度。下列代碼中使用的延遲時間是用來增加或減少舵機的響應速度的,因為(wei) 延遲時間直接影響到變量 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控製多個(ge) 舵機的完整代碼如下:

#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與(yu) Arduino的GND連接起來,形成電路的等電位連接,否則會(hui) 造成運行不穩定或存在幹擾。

Tags:舵機,伺服電機,Arduino,控製  
責任編輯:admin
  • 上一個文章:
  • 下一個文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢