Função motor1 e motor2 com parâmetro de direção

Fonte: Wikiversidade

void motor1(int direcao){

 if (direcao == 1) // Motor 1 no sentido horario
   {
   digitalWrite(4, 1);
   digitalWrite(5, 0);
   }
 else
 if (direcao == -1) // Motor 1 no sentido anti-horario
   {
   digitalWrite(4, 0);
   digitalWrite(5, 1);
   }
 else
   { // Motor 1 parar
   digitalWrite(4, 0);
   digitalWrite(5, 0);
   }

} void motor2(int direcao){

 if (direcao == 1) // Motor 2 no sentido horario
   {
   digitalWrite(6, 1);
   digitalWrite(7, 0);
   }
 else
 if (direcao == -1) // Motor 2 no sentido anti-horario
   {
   digitalWrite(6, 0);
   digitalWrite(7, 1);
   }
 else
   { // Motor 2 parar
   digitalWrite(6, 0);
   digitalWrite(7, 0);
   }

} void frente(int tempo){

 motor1(1);
 motor2(-1);
 delay(tempo);
 motor1(0);
 motor2(0);

} void volta(int tempo){

 motor1(-1);
 motor2(1);
 delay(tempo);
 motor1(0);
 motor2(0);

} void direita(int tempo){

 motor1(-1);
 motor2(-1);
 delay(tempo);
 motor1(0);
 motor2(0);

} void esquerda(int tempo){

 motor1(1);
 motor2(1);
 delay(tempo);
 motor1(0);
 motor2(0);

} void setup() {

 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);

} void loop() {

 frente(500);
 direita(100);
 volta(200);
 esquerda(150);
 frente(250);

}