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

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

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

如何使用L298N雙電機(jī)控制器模塊和Arduino控制DC和步進(jìn)電機(jī)

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-04 17:29 ? 次閱讀

步驟1:了解L298模塊連接

如何使用L298N雙電機(jī)控制器模塊和Arduino控制DC和步進(jìn)電機(jī)

首先,我們將遍歷所有連接,然后說(shuō)明如何控制直流電動(dòng)機(jī),然后是步進(jìn)電動(dòng)機(jī)。此時(shí),請(qǐng)檢查L(zhǎng)298N H橋模塊上的連接。

考慮圖像–將數(shù)字與圖像下方的列表匹配:

DC電動(dòng)機(jī)1“ +”或步進(jìn)電動(dòng)機(jī)A +

DC電動(dòng)機(jī)1“-”或步進(jìn)電動(dòng)機(jī)A-

12V跳線–如果使用的電源電壓大于12V DC,則將其移除。這樣可以為板載5V穩(wěn)壓器供電。

在此處連接電動(dòng)機(jī)電源電壓,最大35V DC。如果》 12V DC

GND

如果有12V跳線,則移除5V輸出,非常適合為Arduino

直流電動(dòng)機(jī)1啟用跳線。使用步進(jìn)電機(jī)時(shí),將其保留在原位。連接到用于直流電動(dòng)機(jī)速度控制的PWM輸出。

IN1

IN2

IN3

IN4

直流電動(dòng)機(jī)2啟用跳線。使用步進(jìn)電機(jī)時(shí),將其保留在原位。連接到用于直流電動(dòng)機(jī)速度控制的PWM輸出

直流電動(dòng)機(jī)2“ +”或步進(jìn)電動(dòng)機(jī)B +

直流電動(dòng)機(jī)2 “-”或步進(jìn)電動(dòng)機(jī)B-

步驟2:控制直流電動(dòng)機(jī)

到使用L298N H橋模塊控制一兩個(gè)直流電動(dòng)機(jī)非常容易。首先將每個(gè)電動(dòng)機(jī)連接到L298N模塊上的A和B連接。

如果您為機(jī)器人(例如)使用兩個(gè)電機(jī),請(qǐng)確保兩個(gè)輸入的電機(jī)極性相同。否則,當(dāng)您同時(shí)將兩個(gè)電動(dòng)機(jī)都設(shè)置為正轉(zhuǎn)而將其設(shè)置為倒退時(shí),可能需要交換它們!

下一步,連接電源-將正極連接至模塊上的引腳4,將負(fù)極/GND連接至引腳5。如果您提供的電壓最高為12V,則可以保留12V跳線(上圖中的點(diǎn)3),并且模塊上的引腳6可以提供5V電壓。

可以將其饋送到Arduino的5V引腳,以從電動(dòng)機(jī)的電源為其供電。別忘了將Arduino GND連接到模塊上的引腳5,以完成電路?,F(xiàn)在,您將在Arduino上需要六個(gè)數(shù)字輸出引腳,其中兩個(gè)需要是PWM(脈沖寬度調(diào)制)引腳。

PWM引腳在引腳編號(hào)旁邊由波浪號(hào)(?)表示,例如在Arduino Uno的數(shù)字引腳圖像中。

最后,將Arduino數(shù)字輸出引腳連接到驅(qū)動(dòng)程序模塊。在我們的示例中,我們有兩個(gè)直流電動(dòng)機(jī),因此數(shù)字引腳D9,D8,D7和D6將分別連接到引腳IN1,IN2,IN3和IN4。然后將D10連接到模塊插針7(先卸下跳線),然后將D5連接到模塊插針12(同樣要卸下跳線)。

通過(guò)向驅(qū)動(dòng)器發(fā)送HIGH或LOW信號(hào)來(lái)控制電動(dòng)機(jī)的方向每個(gè)馬達(dá)(或通道)。例如,對(duì)于電動(dòng)機(jī)一,從IN1到HIGH的高電平和向IN2發(fā)出LOW的低電平將使它在一個(gè)方向上旋轉(zhuǎn),而到HIGH和LOW的低電平將使它在另一個(gè)方向上旋轉(zhuǎn)。

但是,直到將HIGH設(shè)置為啟用引腳(電機(jī)1為7,電機(jī)2為12)后,電機(jī)才會(huì)轉(zhuǎn)動(dòng)。并且它們可以通過(guò)低電平連接到同一引腳來(lái)關(guān)閉。但是,如果需要控制電動(dòng)機(jī)的速度,則可以通過(guò)來(lái)自連接到使能引腳的數(shù)字引腳的PWM信號(hào)來(lái)解決這一問(wèn)題。

這就是我們對(duì)直流電動(dòng)機(jī)演示草圖所做的工作。如上所述,連接了兩個(gè)直流電動(dòng)機(jī)和一個(gè)Arduino Uno,以及一個(gè)外部電源。然后輸入并上傳以下草圖:

// connect motor controller pins to Arduino digital pins

// motor one

int enA = 10;

int in1 = 9;

int in2 = 8;

// motor two

int enB = 5;

int in3 = 7;

int in4 = 6;

void setup()

{

// set all the motor control pins to outputs

pinMode(enA, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

}

void demoOne()

{

// this function will run the motors in both directions at a fixed speed

// turn on motor A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// set speed to 200 out of possible range 0~255

analogWrite(enA, 200);

// turn on motor B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// set speed to 200 out of possible range 0~255

analogWrite(enB, 200);

delay(2000);

// now change motor directions

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

delay(2000);

// now turn off motors

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void demoTwo()

{

// this function will run the motors across the range of possible speeds

// note that maximum speed is determined by the motor itself and the operating voltage

// the PWM values sent by analogWrite() are fractions of the maximum speed possible

// by your hardware

// turn on motors

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// accelerate from zero to maximum speed

for (int i = 0; i 《 256; i++)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// decelerate from maximum speed to zero

for (int i = 255; i 》= 0; --i)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// now turn off motors

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void loop()

{

demoOne();

delay(1000);

demoTwo();

delay(1000);

}

那么該草圖中發(fā)生了什么?在函數(shù)demoOne()中,我們打開(kāi)電動(dòng)機(jī)并以200的PWM值運(yùn)行它們。這不是速度值,而是一次施加200/255的時(shí)間量的功率。

然后片刻之后,電動(dòng)機(jī)反向運(yùn)行(請(qǐng)參閱如何更改digitalWrite()函數(shù)中的HIGH和LOW?)。為了了解您的硬件可能的速度范圍,我們?cè)诤瘮?shù)demoTwo()中遍歷了整個(gè)PWM范圍,這將打開(kāi)電動(dòng)機(jī),并且它們通過(guò)零至255的PWM值運(yùn)行,并通過(guò)兩個(gè)for循環(huán)返回零。 。

最后,這是在此頁(yè)面的視頻中進(jìn)行的演示–使用我們的破舊的坦克底盤和兩個(gè)直流電動(dòng)機(jī)。

第3步:使用Arduino控制步進(jìn)電動(dòng)機(jī)和L298N

步進(jìn)電機(jī)可能看起來(lái)很復(fù)雜,但事實(shí)并非如此。在此示例中,我們控制一個(gè)典型的NEMA-17步進(jìn)電機(jī),該電機(jī)具有四根電線,如該步驟中的圖像所示。

每轉(zhuǎn)200步,并且可以60 RPM的速度運(yùn)行。如果您還沒(méi)有電動(dòng)機(jī)的步進(jìn)和速度值,請(qǐng)立即查找,并在草圖中使用它。

成功進(jìn)行步進(jìn)電動(dòng)機(jī)控制的關(guān)鍵是識(shí)別電線-即一個(gè)是哪個(gè)。您將需要確定A +,A-,B +和B-線。在我們的示例電動(dòng)機(jī)中,它們是紅色,綠色,黃色和藍(lán)色。現(xiàn)在,讓我們完成接線。

將來(lái)自步進(jìn)電機(jī)的A +,A-,B +和B-線分別連接到模塊連接1、2、13和14。將L298N模塊隨附的跳線放置在模塊點(diǎn)7和12上的線對(duì)上。然后根據(jù)需要將電源連接到點(diǎn)4(正)和點(diǎn)5(負(fù)/GND)。

再次,如果您的步進(jìn)電機(jī)的電源低于12V,則將跳線安裝到模塊的第3點(diǎn),為您的Arduino提供整潔的5V電源。接下來(lái),將L298N模塊引腳IN1,IN2,IN3和IN4分別連接到Arduino數(shù)字引腳D8,D9,D10和D11。

最后,如果從模塊中獲取5V電壓,則將Arduino GND連接至模塊上的點(diǎn)5,將Arduino 5V連接至點(diǎn)6。借助Arduino IDE隨附的Stepper Arduino庫(kù)作為標(biāo)準(zhǔn),從草圖控制步進(jìn)電機(jī)非常簡(jiǎn)單。

要演示您的電動(dòng)機(jī),只需加載Stepper庫(kù)中隨附的stepper_oneRevolution草圖。要找到它,請(qǐng)?jiān)贏rduino IDE中單擊“文件”》“示例”》“步進(jìn)器”菜單。

最后,檢查草圖中

const int stepsPerRevolution = 200;的值并將200更改為步進(jìn)電機(jī)的每轉(zhuǎn)步數(shù),以及在以下行中預(yù)設(shè)為60 RPM的速度:myStepper.setSpeed(60);

現(xiàn)在,您可以保存和上傳草圖,這會(huì)將步進(jìn)電機(jī)發(fā)送大約一轉(zhuǎn),然后再回來(lái)。這可以通過(guò)功能

myStepper.step(stepsPerRevolution); // for clockwise

myStepper.step(-stepsPerRevolution); // for anti-clockwise

實(shí)現(xiàn)。最后,在此步驟的視頻中快速展示了我們的測(cè)試硬件。

責(zé)任編輯:wv

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

    關(guān)注

    151

    文章

    3115

    瀏覽量

    147645
  • L298N
    +關(guān)注

    關(guān)注

    21

    文章

    224

    瀏覽量

    78727
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6473

    瀏覽量

    187423
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Made with KiCad(十一):Sangaboard步進(jìn)電機(jī)控制

    “ ?Sangaboard 是用于單極步進(jìn)電機(jī)(如廉價(jià)的 28BYJ-48 電機(jī))的電機(jī)控制器。 ? ” 概覽 Sangaboard 是用于
    的頭像 發(fā)表于 12-04 11:52 ?226次閱讀
    Made with KiCad(十一):Sangaboard<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>板

    步進(jìn)電機(jī)如何自適應(yīng)控制?步進(jìn)電機(jī)如何細(xì)分驅(qū)動(dòng)控制

    步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換為角位移或線位移的電機(jī),廣泛應(yīng)用于各種自動(dòng)化控制系統(tǒng)中。為了提高步進(jìn)電機(jī)
    的頭像 發(fā)表于 10-23 10:04 ?687次閱讀

    步進(jìn)電機(jī)的伺服控制方法有哪些

    步進(jìn)電機(jī)的伺服控制方法主要包括以下幾種: 1. 位置模式 定義 :在位置模式下,步進(jìn)伺服電機(jī)根據(jù)輸入的位置指令,通過(guò)閉環(huán)
    的頭像 發(fā)表于 09-04 09:48 ?626次閱讀

    步進(jìn)電機(jī)控制器電路圖 步進(jìn)電機(jī)控制器的分類及其特點(diǎn)

      步進(jìn)電機(jī)控制器是一種專門用于控制步進(jìn)電機(jī)的設(shè)備,它通過(guò)發(fā)出脈沖信號(hào)來(lái)驅(qū)動(dòng)
    的頭像 發(fā)表于 06-24 17:12 ?3512次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制器</b>電路圖 <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制器</b>的分類及其特點(diǎn)

    什么是步進(jìn)電機(jī)控制器?步進(jìn)電機(jī)控制器電路圖

    步進(jìn)電機(jī)控制器是一種專門用于控制步進(jìn)電機(jī)運(yùn)行的裝置。步進(jìn)
    的頭像 發(fā)表于 06-20 16:14 ?2094次閱讀
    什么是<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制器</b>?<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制器</b>電路圖

    極性步進(jìn)電機(jī)的結(jié)構(gòu)與控制模式

    在現(xiàn)代工業(yè)控制領(lǐng)域,步進(jìn)電機(jī)以其獨(dú)特的步進(jìn)特性和精確的位置控制而備受青睞。其中,極性
    的頭像 發(fā)表于 06-12 14:40 ?661次閱讀

    步進(jìn)電機(jī)通過(guò)什么控制轉(zhuǎn)動(dòng)角度

    的注意事項(xiàng)。 一、步進(jìn)電機(jī)的工作原理 1.1 基本結(jié)構(gòu) 步進(jìn)電機(jī)主要由定子、轉(zhuǎn)子和驅(qū)動(dòng)三部分組成。定子是
    的頭像 發(fā)表于 06-12 09:49 ?1680次閱讀

    步進(jìn)電機(jī)控制器怎么調(diào)速度

    引言 步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換為角位移的電機(jī),具有控制精度高、響應(yīng)速度快、結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。在自動(dòng)化設(shè)備、機(jī)器人、數(shù)控機(jī)床等領(lǐng)域得到了廣泛應(yīng)用。
    的頭像 發(fā)表于 06-12 09:17 ?2219次閱讀

    電機(jī)控制器的原理和應(yīng)用

    電機(jī)控制器作為現(xiàn)代電機(jī)系統(tǒng)中的重要組成部分,其性能的優(yōu)劣直接影響到電機(jī)的工作效率、穩(wěn)定性和安全性。隨著科技的不斷進(jìn)步,電機(jī)
    的頭像 發(fā)表于 06-03 18:17 ?1626次閱讀

    硬件模塊---L298N電機(jī)控制模塊實(shí)現(xiàn)方法

    第一:L298N模塊的介紹? ?? ? ? ? L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片,該芯片采用15腳封裝。 主要特點(diǎn)是: 工作電壓高,最高工作電壓可達(dá)46V;輸出
    的頭像 發(fā)表于 05-11 09:20 ?7871次閱讀
    硬件<b class='flag-5'>模塊</b>---<b class='flag-5'>L298N</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b><b class='flag-5'>模塊</b>實(shí)現(xiàn)方法

    什么是步進(jìn)電機(jī)的細(xì)分控制?步進(jìn)電機(jī)為什么要細(xì)分,如何細(xì)分?

    什么是步進(jìn)電機(jī)的細(xì)分控制?步進(jìn)電機(jī)為什么要細(xì)分,如何細(xì)分? 步進(jìn)
    的頭像 發(fā)表于 02-18 09:39 ?7898次閱讀

    arduino控制步進(jìn)電機(jī)代碼

    Arduino是一種開(kāi)放源代碼的電路板平臺(tái),它可以用于控制各種不同的電子設(shè)備,包括步進(jìn)電機(jī)。步進(jìn)電機(jī)
    的頭像 發(fā)表于 02-14 16:29 ?2097次閱讀

    步進(jìn)電機(jī)控制器電路圖分享

    步進(jìn)電機(jī)控制器是一種能夠發(fā)出均勻脈沖信號(hào)的電子產(chǎn)品,主要用于控制步進(jìn)電機(jī)的運(yùn)動(dòng)。它發(fā)出的信號(hào)進(jìn)入
    的頭像 發(fā)表于 02-07 17:57 ?5149次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制器</b>電路圖分享

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)和伺服電機(jī)的區(qū)別

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)是一種將電信號(hào)轉(zhuǎn)化為機(jī)械轉(zhuǎn)動(dòng)的電動(dòng)機(jī),其輸出轉(zhuǎn)角是按照電脈沖控制信號(hào)的
    的頭像 發(fā)表于 01-22 17:18 ?1222次閱讀

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)控制器參數(shù)設(shè)置

    控制,需要使用步進(jìn)電機(jī)控制器。步進(jìn)電機(jī)控制器是一種電
    的頭像 發(fā)表于 01-19 10:50 ?3082次閱讀