/* ServoBluet permite controlar el sentido de giro de un servomotor * controlado desde un movil Android * Se parte del ejemplo SEGUNBLU y se le incorpora el manejo * del servo. */ //Configuracion PARA EL SERVO********************** // Incluir la librería Servo #include Servo servo1; // Declaramos la variable para controlar el servo (servo1 int pinServo = 9; // Pin digital con PWM para el Servo int pulsoMin = 650; // Pulso en us para girar un ángulo de 0º int pulsoMax = 2550; // Pulso en us para girar un ángulo de 180º int angulo = 0; // Variable para guardar el ángulo del servo //FIN SETUP para el servo***************** void setup() { Serial.begin(9600); //Iniciar el serial pinMode(13, OUTPUT); // configura ‘pin’ como salida //Setup para el servo*************************** // Señal del Servo1 conectado al pin digital 9 (PWM)--> pinServo // Calibración del servo para suavizar movimientos -->(pulsoMin, pulsoMax) servo1.attach(pinServo, pulsoMin, pulsoMax); //Fin setup para el servo*********************** } void loop() { if(Serial.available()>=1) { //Delay para favorecer la lectura de caracteres delay(22); //Se crea una variable que servirá como buffer String bufferString = ""; /* * Se le indica a Arduino que mientras haya datos * disponibles para ser leídos en el puerto serie * se mantenga concatenando los caracteres en la * variable bufferString */ while (Serial.available()>0) { bufferString += (char)Serial.read(); } long entrada = bufferString.toInt(); //Se carga lo leido en la variable entrada //Para el servo**************************************** // El Servo avanza de a un grado en sentido horario if ((entrada == 12345) && (angulo < 180)) { digitalWrite(13,HIGH );//LED testigo // Avanza 10 grados servo1.write(angulo); angulo = angulo +10; //gira 10 grados delay(10);//Original 10 .Al aumentar baja la velocidad } // El Servo avanza de a 10 grados en sentido anti-horario else if ((entrada == 0) && (angulo > 0)) { digitalWrite(13,LOW );//LED testigo // Retrocede 10 grados cada 10 ms servo1.write(angulo); angulo = angulo -10; delay(10);//Original 10 Al aumentar baja la velocidad } //FIN para el servo ************************************ } }