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

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

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

如何使用Arduino和L293D電機驅(qū)動器芯片來控制小型DCmotor的方向和速度

454398 ? 來源:網(wǎng)絡整理 ? 作者:網(wǎng)絡整理 ? 2019-12-02 10:41 ? 次閱讀

概述

在本課程中,您將學習如何使用Arduino和L293D電機驅(qū)動器芯片來控制小型DCmotor的方向和速度。

電位器控制電動機的速度,并通過按鈕控制方向。

零件

要構(gòu)建本課中描述的項目,您將需要以下零件。

零件 數(shù)量

小型6V直流電動機

1

L293D IC

1

10kΩ可變電阻器(pot)

1

觸摸開關(guān)

1

半面包板

1

Arduino Uno R3

1

跳線包

1

實驗

在獲得用于控制電機的Arduino板之前,我們應該先對L293D電機控制芯片進行實驗,以了解其工作原理。

我們可以僅使用Arduino向電動機提供5V電壓。

請注意電動機的旋轉(zhuǎn)方式。您可以通過將電動機軸夾在手指之間來做到這一點。交換電動機導線,使原先要達到+ 5V的電動機導線到達GND,反之亦然。電動機將沿相反方向旋轉(zhuǎn)。

這為我們提供了有關(guān)L293D芯片工作原理的線索。它的控制銷使我們能夠執(zhí)行等效的交換電動機端子以反轉(zhuǎn)電動機方向的操作。

按如下所示構(gòu)建面包板。 Arduino仍然只是供電,但是我們可以在讓Arduino接管之前手動對控制引腳進行實驗。

我們感興趣的L293D的三個引腳是引腳1(啟用),引腳2(In1)和引腳7(In2)。 )。使用紫色,黃色和橙色的跳線將它們連接到5V或GND。

如上所示,電動機應該在一個方向上旋轉(zhuǎn),我們將其稱為A方向。

如果將引腳1(使能)移至GND時,無論使用控制引腳In1和In2做什么,電動機都將停止。啟用可打開和關(guān)閉所有功能。這對于使用PWM輸出控制電動機速度非常有用。將引腳1重新連接至5V,以便電動機再次啟動。

現(xiàn)在嘗試將In1(引腳2,黃色)從5V移至GND。In1和In2現(xiàn)在都已連接至GND,因此電動機將再次停止。/p》

將In2從GND移至5V將導致電動機沿相反方向(B方向)旋轉(zhuǎn)。

最后,將In1移回5V,以使In1和In2都處于5V導致電動機停止。

引腳In1和In2對電動機的影響總結(jié)在下表中:

In1In2電動機

GNDGND已停止

5VGND向A方向轉(zhuǎn)動

GND5V向B方向轉(zhuǎn)動

5V5V已停止

面包板布局

現(xiàn)在我們已經(jīng)掌握了直接控制電機的功能,我們可以讓Arduino管理 Enable , In1 和 In2 引腳。

構(gòu)建面包板時,需要確保IC正確定位。凹口應位于面包板的頂部。

Arduino代碼

將以下草圖加載到您的Arduino上。

下載:文件

復制代碼

/*

Adafruit Arduino - Lesson 15. Bi-directional Motor

*/

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(enablePin, OUTPUT);

pinMode(switchPin, INPUT_PULLUP);

}

void loop()

{

int speed = analogRead(potPin) / 4;

boolean reverse = digitalRead(switchPin);

setMotor(speed, reverse);

}

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

} /*

Adafruit Arduino - Lesson 15. Bi-directional Motor

*/

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(enablePin, OUTPUT);

pinMode(switchPin, INPUT_PULLUP);

}

void loop()

{

int speed = analogRead(potPin) / 4;

boolean reverse = digitalRead(switchPin);

setMotor(speed, reverse);

}

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

}

定義了引腳,并在“設置”功能中正常設置了它們的模式。

在循環(huán)功能中,電機速度的值為通過將鍋中的模擬讀數(shù)除以4可以找到。

因數(shù)為4,因為模擬讀數(shù)將在0到1023之間,并且模擬輸出需要在0到255之間。

如果按下按鈕,電機將正向運行,否則將反向運行。 “ reverse”變量的值僅設置為從開關(guān)引腳讀取的值。因此,如果按下按鈕,它將為False,否則將為True。

速度和反向值將傳遞給名為“ setMotor”的函數(shù),該函數(shù)將設置驅(qū)動器芯片上的適當引腳以控制

下載:文件

復制代碼

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

} void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

}

首先,通過對enable引腳使用AnalogWrite來設置速度。無論L293的in1和in2引腳設置為什么,L293的使能引腳都可以打開或關(guān)閉電動機。

要控制電動機的方向,in1和in2引腳必須為

如果in1為HIGH而in2為LOW,則電動機將以一種方式旋轉(zhuǎn);如果in1為LOW而in2為HIGH,則電動機將以相反的方向旋轉(zhuǎn)。/p》

‘!’命令的意思是“不是”。因此,in1的第一個digitalWrite命令將其設置為與“ reverse”的值相反的值,因此,如果reverse為HIGH則將其設置為LOW,反之亦然。

in2的第二個digitalWrite將引腳設置為“ reverse”的值。這意味著它將永遠與in1是相反的。

L293D

這是一個非常有用的芯片。它實際上可以獨立控制兩個電動機。在本課程中,我們僅使用一半的芯片,芯片右側(cè)的大多數(shù)引腳用于控制第二個電機。

第二個電動機將連接在OUT3和OUT4之間。您還需要另外三個控制引腳。

EN2已連接到Arduino上的PWM使能輸出引腳

IN3和IN4已連接到Arduino上的數(shù)字輸出。

L293D具有兩個+ Vpin(8和16)。 ‘+ Vmotor(8)引腳為電機供電,而+ V(16)則為芯片邏輯供電。我們已經(jīng)將它們都連接到Arduino 5V引腳。但是,如果您使用的是功率更高的電機或更高電壓的電機,則可以使用連接到正電源的引腳8為電機提供單獨的電源,而第二個電源的接地端則連接到Arduino的接地端。/p》

其他要做的事情

您可以嘗試更改草圖以控制電動機,而無需使用電位器或開關(guān)。它可能會在向前方向上開始緩慢,然后逐漸變快,然后變慢,然后反轉(zhuǎn),重復此模式。

責任編輯:wv

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

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185933
  • L293D
    +關(guān)注

    關(guān)注

    4

    文章

    50

    瀏覽量

    20009
收藏 人收藏

    評論

    相關(guān)推薦

    使用L293D電機驅(qū)動器控制直流電機

    直流電機是指能將直流電能轉(zhuǎn)換成機械能(直流電動機)或?qū)C械能轉(zhuǎn)換成直流電能(直流發(fā)電機)的旋轉(zhuǎn)電機。當直流電機作為電動機運行時,它將電能轉(zhuǎn)換為機械能,用于
    的頭像 發(fā)表于 06-21 15:55 ?649次閱讀
    使用<b class='flag-5'>L293D</b><b class='flag-5'>電機</b><b class='flag-5'>驅(qū)動器</b><b class='flag-5'>控制</b>直流<b class='flag-5'>電機</b>

    伺服驅(qū)動器對伺服電機控制要求

    伺服驅(qū)動器對伺服電機控制要求是一個復雜而深入的話題。以下是關(guān)于伺服驅(qū)動器對伺服電機控制要求的概
    的頭像 發(fā)表于 06-14 15:24 ?530次閱讀

    伺服驅(qū)動器控制模式有哪幾種?

    介紹伺服驅(qū)動器的幾種主要控制模式,以及它們的特點和應用場景。 速度控制模式 速度控制模式是伺服
    的頭像 發(fā)表于 06-14 14:41 ?1012次閱讀

    plc如何控制伺服電機速度方向?

    的基本原理 伺服電機是一種閉環(huán)控制系統(tǒng),其工作原理是通過檢測電機的實際位置、速度等信息,與給定的指令值進行比較,然后根據(jù)偏差值調(diào)整
    的頭像 發(fā)表于 06-12 10:46 ?975次閱讀

    伺服驅(qū)動器方向反了怎樣設置

    伺服驅(qū)動器是現(xiàn)代工業(yè)自動化領域中非常重要的一種設備,它通過接收控制信號驅(qū)動伺服電機,實現(xiàn)精確的位置控制
    的頭像 發(fā)表于 06-12 10:15 ?1778次閱讀

    步進電機驅(qū)動器常見故障維修

    的常見故障及其維修方法。 一、步進電機驅(qū)動器的工作原理 步進電機驅(qū)動器主要由脈沖輸入、方向控制、
    的頭像 發(fā)表于 06-11 17:28 ?3260次閱讀

    為什么步進電機要加驅(qū)動器

    步進電機作為一種能夠?qū)崿F(xiàn)精確位移控制電機類型,在工業(yè)自動化、精密測量、數(shù)控機床等領域得到了廣泛應用。然而,步進電機本身并不能直接接受控制
    的頭像 發(fā)表于 06-05 17:30 ?882次閱讀

    L293D雙路全橋驅(qū)動電路原理

    L293D芯片內(nèi)部包含兩個單獨的全橋驅(qū)動器,每個驅(qū)動器控制一個電機。每個全橋
    的頭像 發(fā)表于 05-20 17:04 ?1076次閱讀

    L293D新型雙路全橋式驅(qū)動IC工作原理

    。 一、L293D的結(jié)構(gòu)與特性 L293D內(nèi)部集成兩個完全獨立的H橋式驅(qū)動器,每個驅(qū)動器均可獨立控制一個
    的頭像 發(fā)表于 05-07 18:25 ?1029次閱讀

    L6230電機驅(qū)動器芯片是如何控制電機的,例如引腳設置,信號之類?

    L6230電機驅(qū)動器芯片是如何控制電機的 例如引腳設置,信號之類?
    發(fā)表于 05-06 08:53

    先了解這些芯片吧!

    L293D是一款常見的直流電機驅(qū)動芯片,具有兩個獨立的H橋電路,可同時驅(qū)動兩個直流電機。該
    的頭像 發(fā)表于 02-21 11:42 ?770次閱讀

    如何使用Arduino UNO和TIP120晶體管驅(qū)動控制直流電機速度

    在本 Arduino 電機指南中,您將學習如何使用 Arduino UNO 和 TIP120晶體管驅(qū)動控制直流
    的頭像 發(fā)表于 02-11 10:08 ?878次閱讀
    如何使用<b class='flag-5'>Arduino</b> UNO和TIP120晶體管<b class='flag-5'>驅(qū)動</b>和<b class='flag-5'>控制</b>直流<b class='flag-5'>電機</b>的<b class='flag-5'>速度</b>

    L293D驅(qū)動器電路圖介紹

    。 L293D驅(qū)動器模塊的原理是利用H橋電路控制電機的正反轉(zhuǎn)和速度調(diào)節(jié)。H橋是一個四象限輸出功
    的頭像 發(fā)表于 02-02 14:53 ?3212次閱讀
    <b class='flag-5'>L293D</b><b class='flag-5'>驅(qū)動器</b>電路圖介紹

    伺服電機驅(qū)動器設置參數(shù)教程

    伺服電機驅(qū)動器是現(xiàn)代工業(yè)控制領域中廣泛應用的一種設備。通過合理設置參數(shù),可以實現(xiàn)電機的高精度定位、速度
    的頭像 發(fā)表于 01-25 11:36 ?5643次閱讀

    淺談步進電機驅(qū)動器TB5128FTG芯片的測試經(jīng)驗

    重要功能。通過將每個脈沖信號細分為更小的步進,可以提高步進電機的精度和平滑性。細分控制可以實現(xiàn)更高的分辨率和更平滑的運動。 4.方向控制:步進電機
    發(fā)表于 12-05 12:40