1 電路接線圖
說明:L298N ENA位置的跳線帽需要摘除,ENA接Arduino UNO 9端口
我接電路時,用9V電源正極接入Arduino UNO Vin接口,用串口連接時,電機不轉(電壓不夠)。 另外用電池接入時,串口供電會自動斷開,所以調試時,不用将串口斷開,這樣調試時,可以觀察串口輸出信息。
2 實物接線圖
3 程序
此程序包含了3個函數,1個是電機正反轉,1個是自動電機調速,1個是通過電位器對電機進行調速,如下程序,将2個函數注釋掉了,這樣調試時,可以就一個函數進行分析和觀察
# define ENA 9
# define IN1 8
# define IN2 7
void setup() {
pinMode(ENA,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
Serial.begin(9600);
}
void Pos_NegRotation()
{
analogWrite(ENA,255);//占空比80/255,可以是0到255之前的數
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
delay(1000);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
delay(1000);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
delay(1000);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
delay(1000);
}
void PWMcontrol()
{int i;
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
for(i=0;i<=255;i )
{
Serial.print("Value_i=");
Serial.println(i);
analogWrite(ENA,i);
delay(20);
}
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
delay(1000);
}
void Potentiometer()
{
int pValue=analogRead(A0);
int PWMout=map(pValue,0,1023,0,255);
Serial.print("PWMout=");
Serial.println(PWMout);
analogWrite(ENA,PWMout);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
delay(1000);
}
void loop() {
//Pos_NegRotation();
//PWMcontrol();
Potentiometer();
}
4 電位器對電機進行調速時,端口信息輸出
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!