電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 基礎(chǔ)入門 >> 伺服電機(jī)步進(jìn)電機(jī)與控制 >> 正文

如何用Arduino同時(shí)控制多個(gè)舵機(jī)

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2019/5/30

關(guān)于Arduino控制舵機(jī)在以往的文章中已有介紹,如何通過Arduino使用語音命令控制伺服電機(jī)、利用Nodemcu控制SG90舵機(jī)、利用MPU6050來控制舵機(jī)等等,但是這些文章都是基于單一舵機(jī)的控制,也就是說我們控制一個(gè)舵機(jī)是很容易實(shí)現(xiàn)的,那假如我們需要同時(shí)控制兩個(gè)、三個(gè)甚至更多的舵機(jī)時(shí)該怎么辦呢?

如何用Arduino同時(shí)控制多個(gè)舵機(jī) 

在本文中,我們將向您展示如何使用Arduino來控制多個(gè)舵機(jī)。用Arduino連接單個(gè)舵電機(jī)是很容易,但是如果我們把所有的舵機(jī)都連接到Arduino的電源引腳上,它們就不能正常工作了,因?yàn)锳rduino的電流不足以驅(qū)動(dòng)所有舵機(jī)。因此,使用Arduino來控制多個(gè)舵機(jī),你必須使用單獨(dú)的電源。如,5v-2A的獨(dú)立電源或9v的電池。

Arduino同時(shí)控制多個(gè)舵機(jī)的電路圖

Arduino同時(shí)控制多個(gè)舵機(jī)的電路圖 

什么是舵機(jī)?

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

伺服電機(jī)的分類及應(yīng)用

伺服電機(jī)是如何工作的?

什么是PWM:脈沖寬度調(diào)制

秒懂舵機(jī)角度控制原理

Arduino控制多個(gè)舵機(jī)代碼解析

Arduino有單獨(dú)的舵機(jī)支持庫,這個(gè)庫可以處理所有與PWM控制相關(guān)的工作,也可以用來控制舵機(jī),使用這個(gè)庫,我們只需要在servo1.write(angle); 函數(shù)中輸入想要旋轉(zhuǎn)的角度,就可以將舵機(jī)旋轉(zhuǎn)到所需角度了。

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

#include <Servo.h>

在下面的代碼中,我們將初始化四個(gè)舵機(jī),它們分別是Servo1、Servo2、Servo3和Servo4。

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

接下來,設(shè)置舵機(jī)的輸入引腳。如下面的代碼所示,Servo1連接到Arduino的第三個(gè)引腳。你也可以根據(jù)自己的需要更改引腳序號(hào),但請(qǐng)記住引腳必須支持PWM,使用的Arduino數(shù)字引腳會(huì)導(dǎo)致工作不穩(wěn)定。

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

現(xiàn)在,在void loop()函數(shù)中,將所有的舵機(jī)從0度旋轉(zhuǎn)到180度,然后從180度旋轉(zhuǎn)到0度。下列代碼中使用的延遲時(shí)間是用來增加或減少舵機(jī)的響應(yīng)速度的,因?yàn)檠舆t時(shí)間直接影響到變量 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控制多個(gè)舵機(jī)的完整代碼如下:

 
#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); 
} 
} 

需要注意的是,當(dāng)使用外部電源對(duì)舵機(jī)供電時(shí),需要將外部電源的GND與Arduino的GND連接起來,形成電路的等電位連接,否則會(huì)造成運(yùn)行不穩(wěn)定或存在干擾。

Tags:舵機(jī),伺服電機(jī),Arduino,控制  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
日韩美女乱淫试看视频软件| 91九色视频在线观看| 美女把尿口扒开让男人桶| 欧美丝袜高跟鞋一区二区| 天海翼一区二区三区四区| 国产偷久久久精品专区| 亚洲国产精品免费在线观看| www国产成人免费观看视频| 美国一级毛片免费| 日本三级免费观看| 国产激爽大片高清在线观看| 亚洲精品**中文毛片| yy6080欧美三级理论| 福利区在线观看| 成人欧美一区二区三区黑人3p| 国产嫩草影院在线观看| 亚洲中久无码永久在线观看同| 99久热re在线精品视频| 永生动漫免费观看完整版高清西瓜| 成人免费一级片| 四虎永久在线观看视频精品| 久久成人免费电影| 青娱乐精品视频| 日韩午夜电影网| 国产成人精品视频播放| 亚洲gv白嫩小受在线观看| 6080午夜一级毛片免费看6080夜福利| 欧美精品亚洲精品日韩专区 | 被女同桌调教成鞋袜奴脚奴| 欧美日韩综合在线视频免费看| 天天操视频夜夜| 免费午夜扒丝袜www在线看| 两个人看www免费视频| 秋葵视频在线免费观看| 年轻的嫂子在线线观免费观看 | 嫩b人妻精品一区二区三区| 午夜爽爽爽男女污污污网站| 一级一片一a一片| 污网站在线免费观看| 国内大量揄拍人妻精品視頻| 亚洲精品成人区在线观看|