Paso 4: Código de Arduino
int motor1Pin2 = 4; PIN 7 IC L293D
int enable1Pin = 6; Pin 1 de IC L293D
int motor2Pin1 = 8; PIN 10 IC L293D
int motor2Pin2 = 9; PIN 15 IC L293D
int enable2Pin = 11; PIN 9 IC L293D
int estado;
int bandera = 0; se cerciora de que la serie sólo imprime una vez el estado
int stateStop = 0;
void setup() {}
define los pines como salidas:
pinMode (motor1Pin1, salida);
pinMode (motor1Pin2, salida);
pinMode (enable1Pin, salida);
pinMode (motor2Pin1, salida);
pinMode (motor2Pin2, salida);
pinMode (enable2Pin, salida);
Juegos de enable1Pin y enable2Pin alta para que el motor puede girar:
digitalWrite (enable1Pin, HIGH);
digitalWrite (enable2Pin, HIGH);
inicializar la comunicación serial a 9600 bits por segundo:
Serial.Begin(9600);
}
void loop() {}
Si alguna fecha se envía, Lee y guarda en estado
if(serial.Available() > 0) {}
Estado = Serial.read();
Bandera = 0;
}
Si el estado es '1' el motor de la C.C. irá adelante
Si (estado == '1') {}
digitalWrite (motor1Pin1, HIGH);
digitalWrite (motor1Pin2, bajo);
digitalWrite (motor2Pin1, bajo);
digitalWrite (motor2Pin2, HIGH);
if(flag == 0) {}
Serial.println ("ir hacia adelante!");
bandera = 1;
}
}
Si el estado es '2' el motor a girar a la izquierda
else if (estado == '2') {}
digitalWrite (motor1Pin1, HIGH);
digitalWrite (motor1Pin2, bajo);
digitalWrite (motor2Pin1, bajo);
digitalWrite (motor2Pin2, bajo);
if(flag == 0) {}
Serial.println ("gire a la izquierda");
bandera = 1;
}
Delay(1500);
estado = 3;
stateStop = 1;
}
Si el estado es '3' el motor se detendrá
else if (estado == '3' || stateStop == 1) {}
digitalWrite (motor1Pin1, bajo);
digitalWrite (motor1Pin2, bajo);
digitalWrite (motor2Pin1, bajo);
digitalWrite (motor2Pin2, bajo);
if(flag == 0) {}
Serial.println("STOP!");
bandera = 1;
}
stateStop = 0;
}
Si el estado es '4' el motor a girar a la derecho
else if (estado == '4') {}
digitalWrite (motor1Pin1, bajo);
digitalWrite (motor1Pin2, bajo);
digitalWrite (motor2Pin1, bajo);
digitalWrite (motor2Pin2, HIGH);
if(flag == 0) {}
Serial.println ("gire a la derecha");
bandera = 1;
}
Delay(1500);
estado = 3;
stateStop = 1;
}
Si el estado es '5' el motor de la inversión
else if (estado == "5") {}
digitalWrite (motor1Pin1, bajo);
digitalWrite (motor1Pin2, HIGH);
digitalWrite (motor2Pin1, HIGH);
digitalWrite (motor2Pin2, bajo);
if(flag == 0) {}
Serial.println("REVERSE!");
bandera = 1;
}
}
Para propósito de depuración
Serial.println(State);
}