intento hacer girar dos motores DC por medio del monitor serial ingresando cadenas String pero no se en que me esta fallando. Les comparto el codigo para que me ayuden a identificar el error.
//Motor 1
const int IN1 = 9;
const int IN2 = 8;
// Motor 2
const int IN3 = 7;
const int IN4 = 6;
char caracter;
String cadena="";
void setup (){
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
Serial.println(" ***BIENVENIDO*** ");
Serial.println("**ELIGE UN COMANDO\n ATRAS\nADELANTE\nIZQUIERDA\nDERECHA\nALTO");
}
void Adelante (){
//Dirección motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Dirección motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}
void Atras (){
//Dirección motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Dirección motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Derecha (){
//Dirección motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Dirección motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Izquierda (){
//Dirección motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Dirección motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}
void Parar (){
//Dirección motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Dirección motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
void loop (){
if(Serial.available())
{
caracter = Serial.read();
delay(50);
cadena.concat(caracter);
if (cadena=="ADELANTE" || caracter=="adelante")
{
Serial.println("adelante");
Adelante();
}
else if(caracter=="ATRAS" || caracter=="atras")
{
Serial.println("retrocede");
Atras();
}
else if(caracter=="DERECHA" || caracter=="derecha")
{
Serial.println("Girando a la derecha");
Derecha();
}
else if(caracter=="IZQUIERDA" || caracter=="izquierda")
{
Serial.println("Gira a la Izquierda");
Izquierda();
}
else if(caracter=="ALTO" || caracter=="alto")
{
Serial.println("Detenido");
Parar();
}
}
else
{
Serial.println("Ingresa un comando");
}
}
