L298N:用於Arduino的電機控制模塊

l298n

有很多模塊可用於Arduino或由製造商在DIY項目中使用。 如果是 L298N是控制電機的模塊。 有了它們,您可以使用簡單的代碼來 對我們的Arduino開發板進行編程 並能夠以簡單且可控的方式控制直流電動機。 通常,這種類型的模塊更多地用於機器人技術或電動執行器中,儘管它可以用於多種應用。

我們已經輸入了您需要的所有信息 ESP模塊,帶有ESP8266芯片允許擴展容量的模塊 Arduino開發板和其他項目,以便它們具有WiFi連接。 這些模塊不僅可以單獨使用,還可以將它們組合在一起。 例如,ESP8266可用於我們的原型和L298N,通過它們我們可以通過Internet或無線方式獲得可控制的電機。

L298N和數據表簡介:

L298N引腳排列

儘管使用Arduino也可以使用機器人技術中眾所周知的步進電機,但在這種情況下,通常更常見的是使用控制器或 直流電動機驅動器。 您可以在製造商的數據表中獲取有關L298芯片和模塊的信息,例如 STMicroelectronics從此鏈接。 如果您想查看特定模塊的數據表,而不僅僅是芯片,則可以下載該模塊的其他PDF文件。 漢森泰克 L298N.

但是從廣義上講,L298N是一種H橋型驅動器,它可以控制直流電動機的速度和旋轉方向。 多虧了2,它也可以輕鬆地與步進電機一起使用 H橋 實現。 也就是說,在H處有一個橋,這意味著它由4個晶體管組成,這些晶體管將使電流的方向反向,從而使電動機的轉子可以按我們想要的一個方向或另一個方向旋轉。 與僅允許您通過僅控制電源電壓值來控制轉速(RPM)的控制器相比,這是一個優勢。

L298N可以與各種 電壓,從3v到35v, 強度為2A。 這才是真正決定電機性能或轉速的因素。 必須考慮到,模塊消耗的電子設備通常消耗3v左右的電壓,因此,電動機向我們提供的電源所接收到的功率總是少3v。 如圖中所示,它的消耗有些高,實際上它具有需要散熱片的高功率元件。

為了控制速度,在這種情況下,您可以做一些與LM35相反的操作,而不是在輸出端獲得一定的電壓並將其轉換為度,而是相反。 我們向驅動器提供較低或較高的電壓,以獲得 更快或更慢的轉彎。 此外,只要我們以至少298v的電壓為驅動器供電,L5N模塊還允許Arduino板以12v供電。

與Arduino集成

Arduino的L298n的電路圖

那裡 可以使用此模塊的大量項目。 實際上,您可以想像可以使用它做的所有事情並開始工作。 例如,一個簡單的示例就是控制兩個直流電動機,如上一幅使用弗里辛製作的圖表所示。

在使用L298N之前,我們必須考慮模塊或Vin的輸入。 支持3v至35v之間的電壓 並且我們還必須將其連接到地面或GND,如分別使用紅色和黑色電纜的圖像所示。 一旦連接到電源,下一步就是將一個或多個其接受控制的電動機同時連接。 這很簡單,只需要將電動機的兩個端子連接到兩側都有模塊的連接卡舌即可。

現在可能是最複雜的,是連接模塊連接或 正確固定到Arduino的針腳。 請記住,如果模塊的跳線或調節器橋已關閉,即打開,則模塊的電壓調節器已激活,並且有一個5v輸出可用於為Arduino板供電。 另一方面,如果卸下跳線,則會停用調節器,並且需要獨立給Arduino供電。 眼睛! 由於跳線只能設置為12v的電壓,因此,除此以外,您必須將其卸下,以免損壞模塊...

你會感激的 每個電機有3個連接。 標記為IN1到IN4的是控制電動機A和B的電動機。如果由於只需要一台電動機而沒有連接一台電動機,那麼就不必全部安裝它們。 每個電動機在這些連接的每一側的跳線為ENA和ENB,即激活電動機A和B,如果我們希望兩個電動機都工作,則必須存在該跳線。

電機A (對於B來說是相同的),我們必須連接IN1和IN2以控制旋轉方向。 如果IN1處於高電平而IN2處於低電平,則電動機沿一個方向旋轉,如果它們處於LOW和HIGH,則電動機沿另一個方向旋轉。 要控制旋轉速度,您必須卸下INA或INB跳線,並使用將其連接到Arduino PWM的引腳,以便如果將其設置為0到255之間的值,則分別獲得較低或較高的速度。

關於 在Arduino IDE中進行編程也很容易。 例如,代碼為:

<pre>// Motor A
int ENA = 10;
int IN1 = 9;
int IN2 = 8;

// Motor B
int ENB = 5;
int IN3 = 7;
int IN4 = 6;

void setup ()
{
 // Declaramos todos los pines como salidas
 pinMode (ENA, OUTPUT);
 pinMode (ENB, OUTPUT);
 pinMode (IN1, OUTPUT);
 pinMode (IN2, OUTPUT);
 pinMode (IN3, OUTPUT);
 pinMode (IN4, OUTPUT);
}
//Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre>
<pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH

void Adelante ()
{
 //Direccion motor A
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 255); //Velocidad motor A
 //Direccion motor B
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 255); //Velocidad motor B
}</pre>

成為第一個發表評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。