TO 超新手 感謝您的解答
程式碼 似乎沒提到用哪兩根腳?? 以下是使用的程式碼
// L298N 馬達驅動板
#define MotorR_I1 8 //定義 I1 接腳
#define MotorR_I2 9 //定義 I2 接腳
#define MotorL_I3 10 //定義 I3 接腳
#define MotorL_I4 11 //定義 I4 接腳
#define MotorR_ENA 5 //定義 ENA (PWM調速) 接腳
#define MotorL_ENB 6 //定義 ENB (PWM調速) 接腳
void setup()
{
Serial.begin(9600);
pinMode(MotorR_I1,OUTPUT);
pinMode(MotorR_I2,OUTPUT);
pinMode(MotorL_I3,OUTPUT);
pinMode(MotorL_I4,OUTPUT);
pinMode(MotorR_ENA,OUTPUT);
pinMode(MotorL_ENB,OUTPUT);
analogWrite(MotorR_ENA,500); //設定馬達 (右) 轉速
analogWrite(MotorL_ENB,500); //設定馬達 (左) 轉速
}
void advance(int a) // 前進
{
digitalWrite(MotorR_I1,HIGH); //馬達(右)順時針轉動
digitalWrite(MotorR_I2,LOW);
digitalWrite(MotorL_I3,HIGH); //馬達(左)逆時針轉動
digitalWrite(MotorL_I4,LOW);
delay(a * 100);
}
void turnR(int d) //右轉
{
digitalWrite(MotorR_I1,LOW); //馬達(右)逆時針轉動
digitalWrite(MotorR_I2,HIGH);
digitalWrite(MotorL_I3,HIGH); //馬達(左)逆時針轉動
digitalWrite(MotorL_I4,LOW);
delay(d * 100);
}
void turnL(int e) //左轉
{
digitalWrite(MotorR_I1,HIGH); //馬達(右)順時針轉動
digitalWrite(MotorR_I2,LOW);
digitalWrite(MotorL_I3,LOW); //馬達(左)順時針轉動
digitalWrite(MotorL_I4,HIGH);
delay(e * 100);
}
void stopRL(int f) //停止
{
digitalWrite(MotorR_I1,HIGH); //馬達(右)停止轉動
digitalWrite(MotorR_I2,HIGH);
digitalWrite(MotorL_I3,HIGH); //馬達(左)停止轉動
digitalWrite(MotorL_I4,HIGH);
delay(f * 100);
}
void back(int g) //後退
{
digitalWrite(MotorR_I1,LOW); //馬達(右)逆時針轉動
digitalWrite(MotorR_I2,HIGH);
digitalWrite(MotorL_I3,LOW); //馬達(左)順時針轉動
digitalWrite(MotorL_I4,HIGH);
delay(g * 100);
}
void loop()
{
int cmd = Serial.read(); // 讀取藍芽指令
switch(cmd) // 執行藍芽指令
{
case 'S': // 倒車
back(5);
break;
case 'A': // 左轉
turnL(5);
break;
case 'D': // 右轉
turnR(5);
break;
case 'W': // 前進
advance(5);
break;
case 'Q': // 停止
stopRL(5);
break;
}
} |