小車車的前後左右

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);

}