/*
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();
}
}