Buenas tardes:
Aquí tenemos el código que va en el arduino es muy sencillo lo único que hace es esperar a tener algún dato recibido por el puerto serie y una vez obtenido lo compara con las distintas posibilidades que tenemos (adelante, atrás, adelante-derecha, adelante-izquierda....). La única precaucion que hay que tener es que si utilizais un arduino uno/nano que solo disponen de 1 puerto serie se debe desconectar el modulo a la hora de meterle el programa, ya que si no se queda colgado. Aquí va el programa:
/* estos pines iran conectados a los cables de
la emisora cada uno cumple unas funcion hay alguna que
se han citado antes
*/
int izquierda = 2;
int adelante = 3;
int atras = 4;
int derecha = 5;
void setup() {
Serial.begin(9600);
// se definen como salidas
pinMode(izquierda, OUTPUT);
pinMode(adelante , OUTPUT);
pinMode(atras , OUTPUT);
pinMode(derecha , OUTPUT);
// se colocan a 1 ya que poniendolas a masa es
//como estan activas
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , HIGH);
digitalWrite(atras , HIGH);
digitalWrite(derecha , HIGH);
}
void loop() {
/*en el loop del programa basicamente estamos
basicamente esperando a que por el puerto serie
(en este caso es moudlo bluetooth) nos lleguen
las ordenes
*/
while (Serial.available())
{
//Guardamos en la variable dato el valor leido por el modulo bluetooth
char dato= Serial.read();
//Comprobamos el dato obtenido y lo asignamos a una combinacion
switch(dato)
{
case'1':// adelante IZQUIERDA
{
digitalWrite(izquierda, LOW);
digitalWrite(adelante , LOW);
digitalWrite(derecha , HIGH);
digitalWrite(atras , HIGH);
delay(100);
dato=0;
break;
}
case'2':// adelante
{
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , LOW);
digitalWrite(derecha , HIGH);
digitalWrite(atras , HIGH);
delay(100);
dato=0;
break;
}
case'3':// adelante DERECHA
{
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , LOW);
digitalWrite(derecha , LOW);
digitalWrite(atras , HIGH);
delay(100);
dato=0;
break;
}
case'4':// atras izquierda
{
digitalWrite(izquierda, LOW);
digitalWrite(adelante , HIGH);
digitalWrite(derecha , HIGH);
digitalWrite(atras , LOW);
delay(100);
dato=0;
break;
}
case'5':// atras
{
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , HIGH);
digitalWrite(derecha , HIGH);
digitalWrite(atras , LOW);
delay(100);
dato=0;
break;
}
case'6':// atras derecha
{
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , HIGH);
digitalWrite(derecha , LOW);
digitalWrite(atras , LOW);
delay(100);
dato=0;
break;
}
default:
{
digitalWrite(izquierda, HIGH);
digitalWrite(adelante , HIGH);
digitalWrite(derecha , HIGH);
digitalWrite(atras , HIGH);
dato=0;
delay(100);
}
}
}
}
Saludos
Editado, mas faltas de ortografía.