//Sketch para controlar el funcionamiento de un robot móvil mediante un teléfono móvil y utilizando la señal de bluetooth

#include <SoftwareSerial.h>
int pinE1=10;
int pinI1=9;
int pinI2=8;
int pinE2=11;
int pinI3=12;
int pinI4=13;
       //Pin para el LED
 
SoftwareSerial ModuloHC05 (5, 6);  //pin TX, pin RX
void adelante(){
  digitalWrite(pinE1,HIGH);
  digitalWrite(pinI1,HIGH);
  digitalWrite(pinI2,LOW);
  digitalWrite(pinE2,HIGH);
  digitalWrite(pinI3,HIGH);
  digitalWrite(pinI4,LOW);
}
void atras(){
  digitalWrite(pinE1,HIGH);
  digitalWrite(pinI1,LOW);
  digitalWrite(pinI2,HIGH);
  digitalWrite(pinE2,HIGH);
  digitalWrite(pinI3,LOW);
  digitalWrite(pinI4,HIGH);
}
void girarDerecha(){
  digitalWrite(pinE1,HIGH);
  digitalWrite(pinI1,HIGH);
  digitalWrite(pinI2,LOW);
  digitalWrite(pinE2,HIGH);
  digitalWrite(pinI3,LOW);
  digitalWrite(pinI4,HIGH);
}
void girarIzquierda(){
  digitalWrite(pinE1,HIGH);
  digitalWrite(pinI1,LOW);
  digitalWrite(pinI2,HIGH);
  digitalWrite(pinE2,HIGH);
  digitalWrite(pinI3,HIGH);
  digitalWrite(pinI4,LOW);
}

void parar(){
  digitalWrite(pinE1,LOW);
  digitalWrite(pinI1,HIGH);
  digitalWrite(pinI2,LOW);
  digitalWrite(pinE2,LOW);
  digitalWrite(pinI3,HIGH);
  digitalWrite(pinI4,LOW);
}
void setup() {
 
 Serial.begin(9600);        
 ModuloHC05.begin(9600);
  pinMode(pinE1,OUTPUT);
  pinMode(pinI1,OUTPUT);
  pinMode(pinI2,OUTPUT);
  pinMode(pinE2,OUTPUT);
  pinMode(pinI3,OUTPUT);
  pinMode(pinI4,OUTPUT);
}
 
void loop() {
 char dato;
 if (ModuloHC05.available()) {         //Llega algo por bluetooth?
  dato=ModuloHC05.read();            //Leer el dato recibido
  Serial.write(dato);                       //Mostrar el dato por el monitor serie

 if (dato=='1') adelante();           //Si el dato recibido es "1", el robot avanza adelante
  if (dato=='0') atras();               //Si el dato recibido es "0", el robot retrocede
 if (dato=='3') girarDerecha();    //Si el dato recibido es  "3" el robot gira a la derecha
 if (dato=='2') girarIzquierda();   // Si el dato recibido es "2" el robot gira a la izquierda
 if(dato=='5') parar();               //Si el dato recibido es "5", el robot se detiene
 }
           
 
}