/*
1.- Al mover el potenciómetro de izquierda a derecha se moverá el servo de izquierda a derecha 
al mismo tiempo que parpadea un led. Si se pulsa el botón cambiará el led que parpadea a otro 
y el servomotor se moverá de manera inversa al movimiento del potenciómetro. Si pulsa de nuevo 
el botón se volverá al modo anterior.
*/
#include <Servo.h>
#include <neotimer.h>

int boton = 5;
int ledRojo = 8;
int ledAzul = 10;
int ledSelect = 0;
int ledApagado = 0; 

bool botonPulsado = false;
bool estadoBoton = false;

Servo myServo;
int posServo = 0;
int potenciometro = A0;

Neotimer temp;
bool parpadeoLed = false;

void setup(){
  pinMode(boton, INPUT);
  pinMode(ledRojo, OUTPUT);
  pinMode(ledAzul, OUTPUT);
  myServo.attach(9);
  temp.set(250);
  temp.start();
}

void loop(){

  int posPot = analogRead(potenciometro);
  botonPulsado = digitalRead(boton);

  if (botonPulsado == HIGH){
    delay(100);
    estadoBoton = !estadoBoton;
  }
  if(estadoBoton == false){
    posServo = map(posPot, 0, 1023, 0, 180);
    ledSelect = ledRojo;
    ledApagado = ledAzul;
  }
  if (estadoBoton == true){
    posServo = map(posPot, 0, 1023, 180, 0);
    ledSelect = ledAzul;
    ledApagado = ledRojo;
  }
  digitalWrite(ledApagado, LOW);
  myServo.write(posServo);
  if(temp.waiting()){
    digitalWrite(ledSelect, !parpadeoLed);
    }
  if(temp.done()){
    parpadeoLed = !parpadeoLed;
    temp.reset();
    temp.start();
  }
}