0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino控制多個(gè)伺服電機(jī)

科技觀察員 ? 來源:circuitdigest ? 作者:潘卡伊·卡特里 ? 2022-11-16 17:19 ? 次閱讀

使用一個(gè)或兩個(gè)帶有Arduino的伺服很容易,但是如果我們想使用多個(gè)伺服電機(jī)怎么辦?

在這里,我們將向您展示如何使用Arduino控制多個(gè)伺服電機(jī)。將多個(gè)伺服電機(jī)與Arduino連接似乎很容易,但是如果我們將所有伺服連接到Arduino電源引腳,那么由于沒有足夠的電流來驅(qū)動(dòng)所有電機(jī),它們將無法正常工作。因此,您必須為電機(jī)使用單獨(dú)的電源,無論是來自某些適配器(5v 2A)還是來自優(yōu)質(zhì) 9v 電池。

所需材料

Arduino UNO

伺服電機(jī)

電源

面包板

連接線

電路圖

poYBAGN0qxOAb-mcAACIgpCYHgw554.png

什么是伺服電機(jī)?

在詳細(xì)介紹之前,首先我們應(yīng)該了解伺服電機(jī)。

伺服電機(jī)有不同的形狀和尺寸。伺服電機(jī)將主要有電線,一個(gè)用于正電壓,另一個(gè)用于接地,最后一個(gè)用于位置設(shè)置。紅線連接到電源,黑線接地,黃線連接到信號(hào)。

pYYBAGN0qxWADU_7AAB5wPm_3ls256.jpg

poYBAGN0qxeAV9DRAAAseigpAmY389.jpg

伺服電機(jī)是直流電機(jī)、位置控制系統(tǒng)、齒輪的組合。直流電機(jī)軸的位置由伺服中的控制電子設(shè)備根據(jù)PWM信號(hào)的占空比SIGNAL引腳進(jìn)行調(diào)整。

簡單地說,控制電子設(shè)備通過控制直流電機(jī)來調(diào)整軸位置。有關(guān)軸位置的數(shù)據(jù)通過SIGNAL引腳發(fā)送。控制器的位置數(shù)據(jù)應(yīng)通過伺服電機(jī)的信號(hào)引腳以PWM信號(hào)的形式發(fā)送。

PWM(脈寬調(diào)制)信號(hào)的頻率可能因伺服電機(jī)的類型而異。這里重要的是PWM信號(hào)的占空比。根據(jù)此負(fù)載配給,控制電子設(shè)備調(diào)整軸。

如下圖所示,要使軸移動(dòng)到 9 點(diǎn)鐘,打開口糧必須為 1/18.ie。在 18ms 信號(hào)中,1ms 的導(dǎo)通時(shí)間和 17ms 的關(guān)閉時(shí)間。

pYYBAGN0qxmAQyhUAAC4XU_6UKQ939.gif

對(duì)于要移動(dòng)到 12 點(diǎn)時(shí)鐘的軸,信號(hào)的導(dǎo)通時(shí)間必須為 1.5ms,關(guān)閉時(shí)間應(yīng)為 16.5ms。該比率由控制系統(tǒng)在伺服中解碼,并據(jù)此調(diào)整位置。這里的PWM是使用ARDUINO UNO生成的。

Arduino代碼解釋

最后給出了用于多伺服控制的完整Arduino代碼。

Arduino具有伺服電機(jī)庫,它處理所有與PWM相關(guān)的東西來旋轉(zhuǎn)伺服器,您只需要輸入要旋轉(zhuǎn)的角度,并且有功能servo1.write(angle); 它將伺服器旋轉(zhuǎn)到所需的角度。

因此,這里我們從定義伺服電機(jī)的庫開始。

#include

在下面的代碼中,我們將所有四個(gè)伺服器初始化為 Servo1、Servo2、Servo3 和 Servo4。

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

然后,我們使用Arduino設(shè)置所有伺服器的輸入引腳。如下面的代碼所示,Servo1連接到Arduino的第3個(gè)引腳。您可以根據(jù)自己更改引腳,但請記住,它應(yīng)該是PWM引腳。使用帶有Arduino數(shù)字引腳的伺服是不可靠的。

void setup() {

servo1.attach(3);

servo2.attach(5);

servo3.attach(6);

servo4.attach(9);

}

現(xiàn)在,在 void loop() 函數(shù)中,我們只是將所有伺服從 0 度旋轉(zhuǎn)到 180 度,然后旋轉(zhuǎn)180 度到 0 度。以下代碼中使用的延遲用于增加或降低伺服的速度,因?yàn)樗鼤?huì)影響變量“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è)伺服系統(tǒng)工作:

在將兩個(gè)以上的伺服系統(tǒng)與一個(gè)Arduino一起使用時(shí),我們都面臨著當(dāng)前的問題。唯一的解決方案是連接具有適當(dāng)額定電流的外部電源(在此項(xiàng)目中,我使用2A和9v電源)。對(duì)于外部電源,您可以使用適配器,RPS(穩(wěn)壓電源儀表)或優(yōu)質(zhì)的9v伏電池,您可以使用筆記本電腦USB端口為小型伺服供電。要使用外部電源,您只需將 Arduino 接地短接至外部電源接地。

poYBAGN0qxuAKZm_AAD5QmXAqaw292.jpg

使用下面給出的Arduino代碼對(duì)Arduino進(jìn)行編程,并將電路圖中所示的所有伺服電機(jī)連接到電機(jī),并為電機(jī)提供適當(dāng)?shù)碾娫?。因此,所有伺服器將不間斷地協(xié)同工作。

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

}


}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 電機(jī)
    +關(guān)注

    關(guān)注

    142

    文章

    8874

    瀏覽量

    144854
  • 伺服電機(jī)
    +關(guān)注

    關(guān)注

    85

    文章

    2020

    瀏覽量

    57628
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6457

    瀏覽量

    186501
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用Arduino的藍(lán)牙控制伺服電機(jī)

    使用伺服電機(jī)在機(jī)器人技術(shù)中很常見,以實(shí)現(xiàn)精確控制。在這里,在本教程中,我們將向您展示如何通過藍(lán)牙連接將伺服電機(jī)
    發(fā)表于 11-16 16:19 ?3387次閱讀
    如何使用<b class='flag-5'>Arduino</b>的藍(lán)牙<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>

    伺服電機(jī)控制Arduino平臺(tái)

    什么是伺服電機(jī)?它們是如何起作用的?(基本駕駛方法和技術(shù))如何選擇伺服電機(jī)應(yīng)用Arduino平臺(tái)工作
    發(fā)表于 05-02 15:37 ?23次下載

    基于Arduino UNO和HC-05藍(lán)牙模塊控制伺服電機(jī)

    了解如何在移動(dòng)設(shè)備,Arduino UNO和HC-05藍(lán)牙模塊中使用Android應(yīng)用程序控制伺服電機(jī)。
    的頭像 發(fā)表于 04-28 15:25 ?4967次閱讀
    基于<b class='flag-5'>Arduino</b> UNO和HC-05藍(lán)牙模塊<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>

    使用Arduino上的串行監(jiān)視器控制伺服電機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino上的串行監(jiān)視器控制伺服電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-03 11:28 ?0次下載
    使用<b class='flag-5'>Arduino</b>上的串行監(jiān)視器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>

    帶按鈕的Arduino控制伺服電機(jī)位置

    電子發(fā)燒友網(wǎng)站提供《帶按鈕的Arduino控制伺服電機(jī)位置.zip》資料免費(fèi)下載
    發(fā)表于 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'>電機(jī)</b>位置

    使用Arduino Uno和POT控制伺服電機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno和POT控制伺服電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 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'>電機(jī)</b>

    Arduino/Android藍(lán)牙伺服電機(jī)控制安卓APP

    電子發(fā)燒友網(wǎng)站提供《Arduino/Android藍(lán)牙伺服電機(jī)控制安卓APP.zip》資料免費(fèi)下載
    發(fā)表于 12-05 09:14 ?4次下載
    <b class='flag-5'>Arduino</b>/Android藍(lán)牙<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>安卓APP

    基于Arduino UNO的手勢控制伺服電機(jī)

    電機(jī)旋轉(zhuǎn) 180 度。通過跟蹤,伺服器只會(huì)在食指抬起而其他手指保持閉合時(shí)才會(huì)轉(zhuǎn)動(dòng)。這可以在具有多個(gè)伺服器的許多項(xiàng)目中實(shí)現(xiàn),但在這種情況下,我們堅(jiān)持使用一個(gè)
    發(fā)表于 12-21 11:26 ?0次下載

    Arduino和電位器控制伺服電機(jī)的位置

    電子發(fā)燒友網(wǎng)站提供《用Arduino和電位器控制伺服電機(jī)的位置.zip》資料免費(fèi)下載
    發(fā)表于 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'>電機(jī)</b>的位置

    Arduino/Android藍(lán)牙多伺服電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《Arduino/Android藍(lán)牙多伺服電機(jī)控制.zip》資料免費(fèi)下載
    發(fā)表于 02-08 15:14 ?0次下載
    <b class='flag-5'>Arduino</b>/Android藍(lán)牙多<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>

    使用Arduino開發(fā)板控制伺服電機(jī)

    到達(dá)信號(hào)指定的位置,它將保 持其位置,并抵抗試圖將其從該位置移動(dòng)的任何外力。該電阻稱為伺服的轉(zhuǎn)矩額定值,可在數(shù)據(jù)表中找到。 脈沖寬度調(diào)制PWM: 參考:PWM占空比控制電機(jī)轉(zhuǎn)速 當(dāng)我們使用
    發(fā)表于 05-06 10:15 ?0次下載
    使用<b class='flag-5'>Arduino</b>開發(fā)板<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>

    Arduino控制伺服電機(jī)的超級(jí)簡單方法

    電子發(fā)燒友網(wǎng)站提供《用Arduino控制伺服電機(jī)的超級(jí)簡單方法.zip》資料免費(fèi)下載
    發(fā)表于 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'>電機(jī)</b>的超級(jí)簡單方法

    Arduino和MPU6050控制伺服電機(jī)

    電子發(fā)燒友網(wǎng)站提供《用Arduino和MPU6050控制伺服電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 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'>電機(jī)</b>

    如何使用操縱桿和Arduino控制伺服電機(jī)

    在這篇文章中,我們將學(xué)習(xí)如何使用操縱桿和Arduino控制伺服電機(jī)。我們將看到有關(guān)操縱桿,其銷,其結(jié)構(gòu)和工作的概述。我們將從操縱桿中提取有用的數(shù)據(jù),這些數(shù)據(jù)將成為
    的頭像 發(fā)表于 07-27 11:47 ?1708次閱讀
    如何使用操縱桿和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>

    如何使用Arduino UNO板和電位器控制伺服電機(jī)

    在本Arduino伺服電機(jī)教程中,您將學(xué)習(xí)如何使用Arduino UNO板和電位器控制伺服
    的頭像 發(fā)表于 02-11 10:11 ?2455次閱讀
    如何使用<b class='flag-5'>Arduino</b> UNO板和電位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>