新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用L298N電機(jī)驅(qū)動(dòng)器控制Arduino直流電機(jī)

使用L298N電機(jī)驅(qū)動(dòng)器控制Arduino直流電機(jī)

作者: 時(shí)間:2023-04-21 來(lái)源:電子產(chǎn)品世界 收藏

在這個(gè)項(xiàng)目中,我們將看到如何使用和L298N器來(lái)控制一個(gè)直流電動(dòng)機(jī)。有不同的方法來(lái)控制直流電動(dòng)機(jī),但由于許多原因,使用L298N器的直流電動(dòng)機(jī)控制正在變得相當(dāng)流行。

本文引用地址:http://butianyuan.cn/article/202304/445858.htm

概述

直流電動(dòng)機(jī)是初學(xué)者和業(yè)余愛(ài)好者遇到的最簡(jiǎn)單的電動(dòng)機(jī)。它的操作非常簡(jiǎn)單:將電機(jī)的兩根導(dǎo)線連接到電池的兩個(gè)端子上,然后就可以了!你的電機(jī)就開(kāi)始旋轉(zhuǎn)了。

如果你調(diào)換引線,即顛倒極性,電機(jī)將以相反的方向旋轉(zhuǎn)。就這么簡(jiǎn)單。

如果你想控制一個(gè)簡(jiǎn)單的直流電動(dòng)機(jī)的旋轉(zhuǎn)速度,那么有一種技術(shù)叫做PWM直流電動(dòng)機(jī)控制。這種技術(shù)產(chǎn)生的脈沖寬度調(diào)制或PWM信號(hào)將使我們能夠控制輸送到的平均電壓。

使用PWM對(duì)直流電動(dòng)機(jī)進(jìn)行速度控制

使用PWM技術(shù),應(yīng)用于直流電動(dòng)機(jī)的平均電壓值是通過(guò)以非常高的速率打開(kāi)和關(guān)閉電源來(lái)控制的。這種開(kāi)關(guān)的頻率將在幾十千赫茲左右。

現(xiàn)在,應(yīng)用于直流電動(dòng)機(jī)的平均電壓將取決于所謂的PWM信號(hào)的占空比。PWM信號(hào)的占空比是指信號(hào)接通或高電平的時(shí)間與信號(hào)總時(shí)間的比率,即接通時(shí)間和斷開(kāi)時(shí)間之和。

占空比通常以百分比表示,下圖表示12V電源的不同PWM信號(hào),占空比分別為0%、25%、50%、75%和100%。

Arduino DC Motor Control using L298N PWM Duty Cycle

使用L298N PWM占空比控制

現(xiàn)在我們已經(jīng)控制了供應(yīng)給直流電動(dòng)機(jī)的平均電壓,我們?nèi)绾螌⑦@個(gè)電壓應(yīng)用到電動(dòng)機(jī)上呢?這就需要使用晶體管了。

來(lái)自任何來(lái)源的PWM信號(hào),如本例中的Arduino,可以給MOSFET的柵極,根據(jù)PWM信號(hào)的占空比,直流電動(dòng)機(jī)的速度會(huì)有所不同。

下圖顯示了一個(gè)簡(jiǎn)單的電路圖,從Arduino輸出的PWM信號(hào)被送給一個(gè)MOSFET,12V直流電動(dòng)機(jī)通過(guò)MOSFET被連接。

Arduino DC Motor Control using L298N MOSFET

使用L298N MOSFET的Arduino控制

這個(gè)電路的代碼在下面給出。使用該代碼,Arduino將以漸變的方式改變直流電動(dòng)機(jī)的速度,即逐漸增加速度到峰值,然后逐漸降低速度到停止。

代碼

這個(gè)電路對(duì)于控制電機(jī)的速度很好,但不是改變旋轉(zhuǎn)方向的有效方法。為了改變旋轉(zhuǎn)方向而不需要每次都把電機(jī)的引線反過(guò)來(lái),你需要使用一個(gè)特殊的電路,叫做H橋。

使用H型橋控制直流電動(dòng)機(jī)

H型橋是一個(gè)簡(jiǎn)單的電子電路,由四個(gè)開(kāi)關(guān)元件組成,如晶體管(BJT或MOSFET),可以在兩個(gè)方向上驅(qū)動(dòng)電機(jī),而無(wú)需切換引線。

H橋 "這個(gè)名字是指由四個(gè)晶體管和一個(gè)位于中心的電機(jī)組成的連接的外觀,形成字母 "H"。

一個(gè)使用四個(gè)晶體管和一個(gè)電機(jī)的簡(jiǎn)單H型橋連接如下所示。通過(guò)同時(shí)激活兩個(gè)特定的晶體管,我們可以控制流經(jīng)電機(jī)的電流,從而控制旋轉(zhuǎn)的方向。

Arduino DC Motor Control using L298N H-Bridge using Transistors

使用L298N H橋的Arduino直流電動(dòng)機(jī)控制晶體管

上述電路中的兩個(gè)控制輸入A和B將決定電機(jī)的旋轉(zhuǎn)方向。如果A為低電平,B為高電平,晶體管Q1和Q4將被打開(kāi),并允許電流按特定方向流過(guò)電機(jī)。

如果控制輸入A為高電平,B為低電平,那么晶體管Q2和Q3將被打開(kāi),流經(jīng)電機(jī)的電流被逆轉(zhuǎn),因此旋轉(zhuǎn)的方向也被逆轉(zhuǎn)。

通過(guò)結(jié)合這兩個(gè)特點(diǎn),即速度控制的PWM技術(shù)和方向控制的H橋連接,你可以完全控制一個(gè)直流電動(dòng)機(jī)。

使用晶體管來(lái)進(jìn)行有效的H橋連接是很繁瑣的。為此,市場(chǎng)上有專門的H橋IC,兩個(gè)常見(jiàn)的IC是L293D和L298N。

在前面的項(xiàng)目中,我們已經(jīng)看到了如何使用L293D來(lái)控制直流電動(dòng)機(jī)的速度。在這個(gè)項(xiàng)目中,我們將專注于更先進(jìn)的L298N電機(jī)驅(qū)動(dòng)器,看看Arduino直流電機(jī)控制使用L298N電機(jī)驅(qū)動(dòng)器使用PWM技術(shù)。

關(guān)于L298N電機(jī)驅(qū)動(dòng)器的簡(jiǎn)要說(shuō)明

L298N電機(jī)驅(qū)動(dòng)器IC是一個(gè)15引線的高電壓、高電流電機(jī)驅(qū)動(dòng)器IC,有兩個(gè)全橋驅(qū)動(dòng)器。L298N IC的邏輯電平與標(biāo)準(zhǔn)TTL兼容,可用于驅(qū)動(dòng)不同的電感負(fù)載,如直流電機(jī)、步進(jìn)電機(jī)、繼電器等。

下圖顯示了L298N IC在Multiwatt封裝(多引線電源封裝)中的引腳圖。

Arduino DC Motor Control using L298N Motor Driver Pin Diagram

使用L298N電機(jī)驅(qū)動(dòng)器的Arduino直流電機(jī)控制引腳圖

由于L298N電機(jī)驅(qū)動(dòng)器IC是一個(gè)雙全橋驅(qū)動(dòng)器IC,你可以用單獨(dú)的輸入同時(shí)控制兩個(gè)電機(jī)。邏輯電源電壓為5V,但電機(jī)電源電壓可高達(dá)45V。每個(gè)通道的峰值輸出電流為2A。

一般來(lái)說(shuō),L298N驅(qū)動(dòng)器是以模塊的形式出現(xiàn)的,它包含了控制兩個(gè)直流電動(dòng)機(jī)所需的所有元件和連接器。一個(gè)這樣的模塊如下圖所示。我將解釋這個(gè)模塊的幾個(gè)重要組件。

Arduino DC Motor Control using L298N Motor Driver Module

使用L298N電機(jī)驅(qū)動(dòng)模塊控制Arduino直流電機(jī)

L298N電機(jī)驅(qū)動(dòng)模塊由兩個(gè)2針的螺絲接線板組成,用于連接兩個(gè)電機(jī)。它還有六個(gè)針腳的公頭,用于連接兩個(gè)啟用輸入和四個(gè)輸入針腳(每個(gè)電機(jī)兩個(gè))。

有一個(gè)3針的螺絲端子板,你需要通過(guò)它給電機(jī)提供電源電壓。如果使用的電機(jī)額定電壓為12V或更低,那么通過(guò)這個(gè)螺絲端子給出12V電源,板載的5V穩(wěn)壓器將為L(zhǎng)298N IC提供5V邏輯電源。

Arduino DC Motor Control using L298N Motor Driver Module Pins

使用L298N電機(jī)驅(qū)動(dòng)模塊引腳的Arduino直流電機(jī)控制

你也可以通過(guò)3針螺絲端子中的第三個(gè)引腳來(lái)獲得這個(gè)穩(wěn)壓的5V。3針螺絲端子附近提供的跳線必須在電源電壓達(dá)到12V時(shí)參與,因?yàn)檫@個(gè)跳線將啟用板載的穩(wěn)壓器。3針螺絲端子的第三個(gè)針腳的5V輸出只有在跳線參與時(shí)才可用,即電源電壓為12V。這個(gè)5V輸出可以用來(lái)給你的Arduino板供電。

如果電源電壓大于12V,那么就去掉跳線,因?yàn)樗赡軙?huì)損壞穩(wěn)壓器。在這種情況下,L298N集成電路的5V邏輯電源是通過(guò)3針螺絲端子的第三針給的。

使用L298N控制Arduino直流電動(dòng)機(jī)

現(xiàn)在我們將看到一個(gè)簡(jiǎn)單的電路,我們使用Arduino和L298N集成電路來(lái)控制直流電動(dòng)機(jī)的速度和方向。這個(gè)項(xiàng)目需要一些額外的元件,完整的清單如下。在使用L298N的Arduino直流電機(jī)控制項(xiàng)目中,我們將使用PWM信號(hào)和L298N(H橋)的組合來(lái)控制一個(gè)簡(jiǎn)單的直流電機(jī)的功能,即速度和旋轉(zhuǎn)方向。

電路圖

Arduino DC Motor Control using L298N Circuit Diagram

使用L298N的Arduino直流電動(dòng)機(jī)控制電路圖

所需元件

Arduino UNO

L298N電機(jī)驅(qū)動(dòng)模塊

12V直流電動(dòng)機(jī)  

100KΩ電位器  

按鈕  

12V電源  

面包板  

連接線  

應(yīng)用 

使用L298N電機(jī)驅(qū)動(dòng)器的Arduino直流電機(jī)控制項(xiàng)目可以成為許多高級(jí)項(xiàng)目的開(kāi)始。

幾乎所有的機(jī)器人都有輪子,我們需要控制與這些輪子相連的電機(jī)。因此,任何基于Arduino的機(jī)器人都可以使用L298N實(shí)現(xiàn)這種類型的電機(jī)控制。

L298N電機(jī)驅(qū)動(dòng)器的一些機(jī)器人應(yīng)用是手勢(shì)控制機(jī)器人、跟線機(jī)器人、避障機(jī)器人等。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉