Paso 6: Programación de Arduino
int M1_A = 4; variable para rotar armadura Motor
int M1_B = 5; variable para rotar armadura Motor
int M2_A = 8; variable para motores de tren de la impulsión izquierda
int M2_B = 9; variable para motores de tren de la impulsión izquierda
int M3_A = 10; variable para motores de tren de la impulsión derecha
int M3_B = 11; variable para motores de tren de la impulsión derecha
variable para almacenar los datos en serie
int incomingByte = 0;
void setup()
{
Inicio monitor serial a 9600 bps
Serial.Begin(9600); cambiar este valor dependiendo de la velocidad en baudios de tu módulo de bluetooth
pinMode (M1_A, salida);
pinMode (M1_B, salida);
pinMode (M2_A, salida);
pinMode (M2_B, salida);
pinMode (M3_A, salida);
pinMode (M3_B, salida);
Apague los motores por defecto
M1_stop();
M2_stop();
M3_stop();
Delay(500);
}
////////////////////////////////////
void loop()
{
Si (Serial.available() > 0)
{
leer el byte entrante:
incomingByte = Serial.read();
retardo de 25 milisegundos para permitir actualización serial
Delay(25);
Si (incomingByte == 32) / / si el byte es igual barra espaciadora, detener.
{
Serial.println("STOP");
M2_stop();
M3_stop();
Delay(25);
}
Si (incomingByte == 67) //if bytes entrantes de teléfono Android es igual a "C", alto.
{
Serial.println("STOP");
M2_stop();
M3_stop();
Delay(25);
}
Si (incomingByte == 99) / / si el byte es igual a "c", gire hacia la derecha Rotor
{
M1_Clock();
Delay(25);
}
Si (incomingByte == 101) //if bytes entrantes de teléfono Android es igual a "e", gire a la derecha de Rotor
{
M1_Clock();
Delay(25);
}
Si (incomingByte == 118) / / si el byte es igual a "v", girar Rotor agujas
{
M1_AntClock();
Delay(25);
}
Si (incomingByte == 102) //if bytes entrantes de teléfono Android es igual a "f", Rotor agujas
{
M1_AntClock();
Delay(25);
}
Si (incomingByte == 120) / / si el byte es igual a "x", parada de giro Rotor
{
M1_stop();
Delay(25);
}
Si (incomingByte == 103) //if bytes entrantes de teléfono Android es igual a "g", deje de girar el Rotor
{
M1_stop();
Delay(25);
}
Si el byte es igual a "w", ir hacia adelante
else if (incomingByte == 119)
{
Serial.println("forward");
M2_forward();
M3_forward();
Delay(25);
}
else if (incomingByte == 85) / / si bytes entrantes de teléfono Android es igual a "U", ir hacia adelante
{
Serial.println("forward");
M2_forward();
M3_forward();
Delay(25);
}
Si el byte es igual a "a", a la izquierda
else if (incomingByte == 97)
{
Serial.println("left");
M2_reverse();
M3_forward();
Delay(25);
}
Si bytes entrantes de teléfono Android es igual a "L", a la izquierda
else if (incomingByte == 76)
{
Serial.println("left");
M2_reverse();
M3_forward();
Delay(25);
}
Si el byte es igual a "d", a la derecha
else if (incomingByte == 100)
{
Serial.println("Right");
M2_forward();
M3_reverse();
Delay(25);
}
Si bytes entrantes de teléfono Android es igual a "R", a la derecha
else if (incomingByte == 82)
{
Serial.println("Right");
M2_forward();
M3_reverse();
Delay(25);
}
Si el byte es igual a "s", ir atrás
else if (incomingByte == 115)
{
Serial.println("REVERSE");
M2_reverse();
M3_reverse();
Delay(25);
}
Si bytes entrantes de teléfono Android es igual a "D", ir atrás
else if (incomingByte == 68)
{
Serial.println("REVERSE");
M2_reverse();
M3_reverse();
Delay(25);
}
otra cosa
{
Serial.println("STOP");
M2_stop();
M3_stop();
Delay(25);
}
}
}
void M1_Clock()
{
digitalWrite (M1_B, bajo);
digitalWrite (M1_A, alto);
}
void M1_AntClock()
{
digitalWrite (M1_A, LOW);
digitalWrite (M1_B, alto);
}
void M2_forward()
{
digitalWrite (M2_A, alto);
digitalWrite (M2_B, bajo);
}
void M2_reverse()
{
digitalWrite (M2_A, bajo);
digitalWrite (M2_B, alto);
}
void M3_forward()
{
digitalWrite (M3_A, alto);
digitalWrite (M3_B, bajo);
}
void M3_reverse()
{
digitalWrite (M3_A, bajo);
digitalWrite (M3_B, alto);
}
void M1_stop()
{
digitalWrite (M1_B, bajo);
digitalWrite (M1_A, LOW);
}
void M2_stop()
{
digitalWrite (M2_B, bajo);
digitalWrite (M2_A, bajo);
}
void M3_stop()
{
digitalWrite (M3_B, bajo);
digitalWrite (M3_A, bajo);
}