小車車的前後左右
int MotorRight1=14; //A0 IN1
int MotorRight2=15; //A1 IN2
int MotorLeft1=16; //A2 IN3
int MotorLeft2=17; //A3 IN4
int MotorRPWM=5; //PWM 5
int MotorLPWM=3; //PWM 3
void setup()
{
Serial.begin(9600);
pinMode(MotorRight1, OUTPUT); // 腳位 14 (PWM)
pinMode(MotorRight2, OUTPUT); // 腳位 15 (PWM)
pinMode(MotorLeft1, OUTPUT); // 腳位 16 (PWM)
pinMode(MotorLeft2, OUTPUT); // 腳位 17 (PWM)
pinMode(MotorLPWM, OUTPUT); // 腳位 5 (PWM)
pinMode(MotorRPWM, OUTPUT); // 腳位 3 (PWM)
}
void advance(int a) // 前進
{
digitalWrite(MotorRight1,LOW);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,HIGH);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,HIGH);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,LOW);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,130);
delay(a * 100);
}
void right(int b) //右轉(單輪)
{
digitalWrite(MotorRight1,LOW);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,LOW);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,0);
digitalWrite(MotorLeft1,HIGH);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,LOW);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,130);
delay(b * 100);
}
void left(int c) //左轉(單輪)
{
digitalWrite(MotorRight1,LOW);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,HIGH);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,LOW);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,LOW);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,0);
delay(c * 100);
}
void turnR(int d) //右轉(雙輪)
{
digitalWrite(MotorRight1,__________);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,__________);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,__________);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,__________);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,130);
delay(d * 100);
}
void turnL(int e) //左轉(雙輪)
{
digitalWrite(MotorRight1,__________);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,__________);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,__________);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,__________);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,130);
delay(e * 100);
}
void stopp(int f) //停止
{
digitalWrite(MotorRight1,LOW);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,LOW);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,0);
digitalWrite(MotorLeft1,LOW);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,LOW);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,0);
delay(f * 100);
}
void back(int g) //後退 后退
{
digitalWrite(MotorRight1,HIGH);//IN1 右馬達高電壓反轉
digitalWrite(MotorRight2,LOW);//IN2 右馬達高電壓正轉
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,LOW);//IN3 左馬達高電壓正轉
digitalWrite(MotorLeft2,HIGH);//IN4 左馬達高電壓反轉
analogWrite(MotorLPWM,130);
delay(g * 100);
}
void loop()
{
advance(1); // 正常前進
delay(1000);
back(1); // 正常後退
delay(1000);
turnL(1); // 雙輪左轉
delay(1000);
turnR(1); // 雙輪右轉
delay(1000);
}