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

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

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

如何使用Arduino控制多個伺服電機

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

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

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

所需材料

Arduino UNO

伺服電機

電源

面包板

連接線

電路圖

poYBAGN0qxOAb-mcAACIgpCYHgw554.png

什么是伺服電機?

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

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

pYYBAGN0qxWADU_7AAB5wPm_3ls256.jpg

poYBAGN0qxeAV9DRAAAseigpAmY389.jpg

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

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

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

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

pYYBAGN0qxmAQyhUAAC4XU_6UKQ939.gif

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

Arduino代碼解釋

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

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

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

#include

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

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

然后,我們使用Arduino設(shè)置所有伺服器的輸入引腳。如下面的代碼所示,Servo1連接到Arduino的第3個引腳。您可以根據(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 度。以下代碼中使用的延遲用于增加或降低伺服的速度,因為它會影響變量“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 控制多個伺服系統(tǒng)工作:

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

poYBAGN0qxuAKZm_AAD5QmXAqaw292.jpg

使用下面給出的Arduino代碼對Arduino進行編程,并將電路圖中所示的所有伺服電機連接到電機,并為電機提供適當(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機
    +關(guān)注

    關(guān)注

    141

    文章

    8837

    瀏覽量

    144622
  • 伺服電機
    +關(guān)注

    關(guān)注

    85

    文章

    2015

    瀏覽量

    57564
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186363
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用Arduino的藍牙控制伺服電機

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

    伺服電機控制Arduino平臺

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

    基于Arduino UNO和HC-05藍牙模塊控制伺服電機

    了解如何在移動設(shè)備,Arduino UNO和HC-05藍牙模塊中使用Android應(yīng)用程序控制伺服電機。
    的頭像 發(fā)表于 04-28 15:25 ?4928次閱讀
    基于<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上的串行監(jiān)視器控制伺服電機

    電子發(fā)燒友網(wǎng)站提供《使用Arduino上的串行監(jiān)視器控制伺服電機.zip》資料免費下載
    發(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'>電機</b>

    帶按鈕的Arduino控制伺服電機位置

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

    使用Arduino Uno和POT控制伺服電機

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

    Arduino/Android藍牙伺服電機控制安卓APP

    電子發(fā)燒友網(wǎng)站提供《Arduino/Android藍牙伺服電機控制安卓APP.zip》資料免費下載
    發(fā)表于 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的手勢控制伺服電機

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

    Arduino和電位器控制伺服電機的位置

    電子發(fā)燒友網(wǎng)站提供《用Arduino和電位器控制伺服電機的位置.zip》資料免費下載
    發(fā)表于 02-06 11:10 ?0次下載
    用<b class='flag-5'>Arduino</b>和電位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機</b>的位置

    Arduino/Android藍牙多伺服電機控制

    電子發(fā)燒友網(wǎng)站提供《Arduino/Android藍牙多伺服電機控制.zip》資料免費下載
    發(fā)表于 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開發(fā)板控制伺服電機

    到達信號指定的位置,它將保 持其位置,并抵抗試圖將其從該位置移動的任何外力。該電阻稱為伺服的轉(zhuǎn)矩額定值,可在數(shù)據(jù)表中找到。 脈沖寬度調(diào)制PWM: 參考:PWM占空比控制電機轉(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'>電機</b>

    Arduino控制伺服電機的超級簡單方法

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

    Arduino和MPU6050控制伺服電機

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

    如何使用操縱桿和Arduino控制伺服電機

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

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

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