新聞中心

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

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

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

在這個項目中,我們將看到如何使用和L298N器來控制一個直流電動機。有不同的方法來控制直流電動機,但由于許多原因,使用L298N器的直流電動機控制正在變得相當流行。

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

概述

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

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

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

使用PWM對直流電動機進行速度控制

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

現(xiàn)在,應用于直流電動機的平均電壓將取決于所謂的PWM信號的占空比。PWM信號的占空比是指信號接通或高電平的時間與信號總時間的比率,即接通時間和斷開時間之和。

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

Arduino DC Motor Control using L298N PWM Duty Cycle

使用L298N PWM占空比控制

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

來自任何來源的PWM信號,如本例中的Arduino,可以給MOSFET的柵極,根據(jù)PWM信號的占空比,直流電動機的速度會有所不同。

下圖顯示了一個簡單的電路圖,從Arduino輸出的PWM信號被送給一個MOSFET,12V直流電動機通過MOSFET被連接。

Arduino DC Motor Control using L298N MOSFET

使用L298N MOSFET的Arduino控制

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

代碼

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

使用H型橋控制直流電動機

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

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

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

Arduino DC Motor Control using L298N H-Bridge using Transistors

使用L298N H橋的Arduino直流電動機控制晶體管

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

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

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

使用晶體管來進行有效的H橋連接是很繁瑣的。為此,市場上有專門的H橋IC,兩個常見的IC是L293D和L298N。

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

關(guān)于L298N電機驅(qū)動器的簡要說明

L298N電機驅(qū)動器IC是一個15引線的高電壓、高電流電機驅(qū)動器IC,有兩個全橋驅(qū)動器。L298N IC的邏輯電平與標準TTL兼容,可用于驅(qū)動不同的電感負載,如直流電機、步進電機、繼電器等。

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

Arduino DC Motor Control using L298N Motor Driver Pin Diagram

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

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

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

Arduino DC Motor Control using L298N Motor Driver Module

使用L298N電機驅(qū)動模塊控制Arduino直流電機

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

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

Arduino DC Motor Control using L298N Motor Driver Module Pins

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

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

如果電源電壓大于12V,那么就去掉跳線,因為它可能會損壞穩(wěn)壓器。在這種情況下,L298N集成電路的5V邏輯電源是通過3針螺絲端子的第三針給的。

使用L298N控制Arduino直流電動機

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

電路圖

Arduino DC Motor Control using L298N Circuit Diagram

使用L298N的Arduino直流電動機控制電路圖

所需元件

Arduino UNO

L298N電機驅(qū)動模塊

12V直流電動機  

100KΩ電位器  

按鈕  

12V電源  

面包板  

連接線  

應用 

使用L298N電機驅(qū)動器的Arduino直流電機控制項目可以成為許多高級項目的開始。

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

L298N電機驅(qū)動器的一些機器人應用是手勢控制機器人、跟線機器人、避障機器人等。



評論


相關(guān)推薦

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

關(guān)閉