Arduino實踐詳細說明(三)L298N驅動直流電機
本實驗基於arduino uno 利用l298n驅動板來控制直流電機的正反轉和速度
L298N說明
這是其中一個板,貌似還有藍色綠色什麼的,但是使用方法差不多
接口說明
-
12V供電: 這個是外部電源爲驅動板供電的接口,一般驅動電壓實際可以接受的輸入範圍是7~12V,此時可以使能板載的5V邏輯供電。當使用大於12V的驅動電壓時,爲了避免穩壓芯片損壞,首先要拔掉板載5V輸出使能的跳線帽,然後在5V輸出端口外部接入5V電壓對L298N內部邏輯供電。
-
5V供電 :(引出5V電壓接到Arduino板,給Arduino板供電(驅動電壓7~12V)連接到UNO板的5V)同時Arduino板也要引出一條GND線,連接到L298N的GND與外部電源共地。
-
ENA ENB通道A使能,通道B使能:當你不用PWM時不需要拔掉跳線帽,當你需要PWM時,將需要拔掉跳線帽,接到Arduino上的模擬輸入輸出接口,我的只需要外側接上,下面回介紹。 (就是用來調速的)
-
IN1 IN2 IN3 IN4邏輯輸出口:其中IN1 IN2 控制一個電機的轉動,IN3 IN4 控制另一個電機的轉動,只要一個置高 一個置低,就可以讓電機轉動起來。(控制轉向),
-
板載5V::用於板載5V供電,如果把掉跳線帽,需要在5V輸出接口上,通過外部電源輸入5V電壓爲L298N驅動版供電。
通常是爲了避免穩壓芯片損壞,當輸入驅動電壓大於12V時,拔掉跳線帽,需要使用其它電源輸入5V電壓爲驅動板供電。
正反轉及調速說明
若in1與in2還有ENA控制A電機
IN1 | IN2 | IN3 | IN4 | ENA | ENB | A電機 | B電機 |
---|---|---|---|---|---|---|---|
HIGH | LOW | \ | \ | n | m | 正轉速度爲n | \ |
LOW | HIGH | \ | \ | n | m | 反轉速度爲n | \ |
LOW | LOW | \ | \ | n | m | 不轉 | \ |
HIGH | HIGH | \ | \ | n | m | 不轉 | \ |
LOW | HIGH | \ | \ | 0 | m | 不轉 | \ |
對於B電機也同理
接線說明
接線方法很多,下面介紹種
值得注意的是有時候Arduino接5V供電是不足以提供電壓的,則按方法二
方法一
如圖
- 9V~12v電池正極接L298N的12v供電,負極接L298N的GND
- L298N的5v供電接arduino的5v,arduino的GND也連接L298N的GND
- 然後IN1~IN4接arduino的2 ~13都可以,根據需求而定,代碼中定義即可
- L298N的輸出A,輸出B分別連接一個直流電機
- ENA,ENB分別連接arduino的模擬輸出,以控制速度
方法二
如圖
- L298N的GND和板載5V使能(拔掉跳線帽)分別連接arduino的GND,5V
- 12V電源連接L298N的12v供電與GND
- 將數字3、4腳接L298模塊的IN1和IN2(邏輯輸入)腳,
- 10接ENA腳(通道A使能)
- 電機接OUT1和OUT2輸出口,
源代碼
只提供了正反轉的往復功能,其他功能自由發揮
#define IN1 3 //定義IN1爲3口
#define IN2 4 //定義IN2爲4口
#define ENA 10 //定義ENA爲10口
void setup()
{
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENA,OUTPUT);
}
void loop()
{ //正轉速度爲滿速的 200/255
digitalWrite(IN1,HIGH); //控制電機正轉
digitalWrite(IN2,LOW);
analogWrite(ENA,200); //控制電機轉速,逕我自己測試超過150電機纔開始轉
delay(5000);
digitalWrite(IN1,LOW); //電機反轉
digitalWrite(IN2,HIGH);
analogWrite(ENA,200);
delay(5000);
digitalWrite(IN1,LOW); //控制電機停下
digitalWrite(IN2,LOW);
analogWrite(ENA,255);
}
最後
持續更新arduino 樹莓派 python 等等
接到有幫助的話 求點贊👍 求關注❤️ 求分享👥
有問題可以評論
點關注,不迷路
如果有任何錯誤,如何建議,請批評指教,不勝感激 !