#include <Servo.h> //libreria para controlar el servo motor
#include <Bounce.h>//libreria para eliminar el rebote
Servo myservo; ;// crea el objeto para controlar el servo
int Adelante ; //variables para guardar el valor de el pulsador1
int Atras;//variables para guardar el valor de el pulsador2
int i=0;
int nivel=0;
int TLEDs=7; //numero maximo de leds
int LEDs[] = { 4, 5, 6, 7, 8,9,10};// conjunto de pines a utilizar para los leds
int Angulo[] = { 0, 30, 60, 90, 120, 150, 179};//conjunto de valores a tomar el servo motor
void setup() {
myservo.attach(10);
for (i=0; i<TLEDs; i++)
{
pinMode(LEDs[i], OUTPUT); // define el puerto i de salida, para los LEDs
}
for (i=11; i<=12; i++)
{
pinMode (i, INPUT) ;
digitalWrite (i, HIGH); // activa el pull-up resistor de los botones
}
for (i=0; i<TLEDs; i++)
Controled(i);
}
void loop()
{
Adelante = digitalRead(11) ;
Bounce Badelantar = Bounce( Adelante, 5);
if (Adelante==LOW) // presionaron el boton (hay un pull-up)
{
nivel++;
if (nivel>MAXLEDs-1){ nivel=TLEDs-1;} // no puede pasar de MAXLEDs-1, 6 en este caso
}
Atras = digitalRead(12) ;
Bounce Batras = Bounce( Atras, 5);
if (Atras==LOW) // presionaron el boton (hay un pull-up)
{
nivel--;
if (nivel<0) nivel=0; // no puede pasar de 0
}
Controled(nivel);
}
void Controled(int pos)
{
// apaga todos los LEDs
for (i=0; i<TLEDs; i++)
digitalWrite(LEDs[i], LOW);
// prende el LED que se necesita
digitalWrite(LEDs[pos], HIGH);
// mueve el servo al angulo que se necesita
myservo.write(Angulo[pos]);
}