document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // se incluye las librerias software serial, servo y se definenen nombres para los pines usados
  2. #include <SoftwareSerial.h>
  3. #include <Servo.h>
  4. #define RxD 10
  5. #define TxD 11
  6. #define LED1 6
  7. #define LED2 7
  8. SoftwareSerial BTSerial(RxD, TxD);
  9.  
  10. // inicializacion de las variables usadas
  11. char letra;      //caracter recibido desde android
  12. int valor_1;     //valor eje x
  13. int valor_2;     //valor eje y
  14. int valor_3;     //valor eje z
  15. int valor_4;     //valor boton oprimido
  16.  
  17. Servo myservo_izq;  // se define clase para el servo izquierda
  18. Servo myservo_der;  // se define clase para el servo derecha
  19. int s_izq;       //valor enviado al servo
  20. int s_der;       //valor enviado al servo
  21.  
  22. void setup()
  23. {
  24.   myservo_izq.attach(3); //se identifica el pin del servo izquierda
  25.   myservo_der.attach(2); //se identifica el pin del servo derecha
  26.  
  27.   //se definen los pines de los leds como salidas
  28.   pinMode(LED1, OUTPUT);
  29.   pinMode(LED2, OUTPUT);
  30.  
  31.   // se inicia la comunicacion serial Software con el modulo
  32.   BTSerial.flush();        //se limpia el buffer
  33.   delay(500);              //retardo
  34.   BTSerial.begin(38400);   //se inicia la comunicacion serial con el framerate
  35.                            //configurado en el modulo
  36.   Serial.begin(9600);      //se inicia la comunicacion serial para ver el dato
  37.                            //recibido
  38.   delay(100);              //retardo
  39. }
  40.  
  41. void loop()
  42. {
  43.   if (BTSerial.available()){  // se ejecuta este bloque si hay un dato existente en el buffer
  44.      
  45.     // se lee el caracter inmediatamente disponible
  46.     letra = BTSerial.read();
  47.    
  48.     // aqui se condiciona el caracter leido
  49.     if (letra == \'b\'){                //si el caracter es "b"
  50.       valor_1 = BTSerial.parseInt();  //se guarda el valor numerico siguiente
  51.                                       //en valor_1
  52.     //Serial.println(valor_1);
  53.     }
  54.     if (letra == \'x\'){                //si el caracter es "x"
  55.       valor_2 = BTSerial.parseInt();  //se guarda el valor numerico siguiente
  56.                                       //en valor_2
  57.       //Serial.println(valor_2);
  58.     }
  59.     if (letra == \'y\'){                //si el caracter es "y"
  60.       valor_3 = BTSerial.parseInt();  //se guarda el valor numerico siguiente
  61.                                       //en valor_3
  62.       //Serial.println(valor_3);
  63.     }
  64.     if (letra == \'z\'){                //si el caracter es "z"
  65.       valor_4 = BTSerial.parseInt();  //se guarda el valor numerico siguiente
  66.                                       //en valor_4
  67.       //Serial.println(valor_4);
  68.     }
  69.      
  70.   }
  71.        
  72.   if((valor_4==0)&&(valor_3==0)){    //Condicion si el dato Y y Z es 0
  73.                                      //los servos se encuentran en posicion reposo (90)
  74.       s_izq= 90;
  75.       s_der= 90;
  76.   }
  77.   else{                              //si Y y Z son diferentes de cero se modifica la velocidad
  78.                                      //de los servos sumando el valor recibido de cada eje
  79.       s_izq= (valor_4+valor_3) + 90;   //se suman los valores de Y y Z a 90 para definir la velocidad
  80.       s_der= (-valor_4+valor_3) + 90;  //se resta el valor de Z y se suma el Y porque esta invertido
  81.   }
  82.    
  83.   myservo_izq.write(s_izq);        // se envia el dato al servo
  84.   myservo_der.write(s_der);        // se envia el dato al servo
  85.    
  86.   if(valor_1 == 6){                // se determina el numero de "b" es START
  87.     digitalWrite(LED1, HIGH);      // se encienden los leds
  88.     digitalWrite(LED2, HIGH);
  89.     delay(50);
  90.   }
  91.   if (valor_1==5){                // se deremina el numero de "b" es SELECT
  92.     digitalWrite(LED1, LOW);      // se apagan los leds
  93.     digitalWrite(LED2, LOW);
  94.     delay(50);
  95.   }
  96.  
  97.   //Serial.println(valor_1);
  98.   //Serial.println(digitalRead(LED1));
  99.  
  100. }
');