有很多模塊可用於Arduino或由製造商在DIY項目中使用。 如果是 L298N是控制電機的模塊。 有了它們,您可以使用簡單的代碼來 對我們的Arduino開發板進行編程 並能夠以簡單且可控的方式控制直流電動機。 通常,這種類型的模塊更多地用於機器人技術或電動執行器中,儘管它可以用於多種應用。
我們已經輸入了您需要的所有信息 ESP模塊,帶有ESP8266芯片一 允許擴展容量的模塊 Arduino開發板和其他項目,以便它們具有WiFi連接。 這些模塊不僅可以單獨使用,還可以將它們組合在一起。 例如,ESP8266可用於我們的原型和L298N,通過它們我們可以通過Internet或無線方式獲得可控制的電機。
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集成
那裡 可以使用此模塊的大量項目。 實際上,您可以想像可以使用它做的所有事情並開始工作。 例如,一個簡單的示例就是控制兩個直流電動機,如上一幅使用弗里辛製作的圖表所示。
在使用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>