Al girar el potenciómetro encendemos uno a uno una serie de LEDs y luego los apagamos. Solo hay uno encendido salvo en los extremos del potenciómetro.
Encendemos uno a uno 14 LEDs usando un potenciómetro, salvo en los extremos de la rueda del potenciómetro donde en un extremo apagamos todos y en contrario encendemos todos.
int i;
int j;
int pinPotenciometro = A0;
int valorPotenciometro = 0;
int tocaLed; //este es el LED que toca encender en cada momento
void setup()
{
pinMode(pinPotenciometro, INPUT);
for (i = 0; i < 14; i++)
pinMode(i, OUTPUT);
Serial.begin(9600);
}
void loop()
{
valorPotenciometro = analogRead(pinPotenciometro);
for (i = 0; i < 14; i++)
{
if (valorPotenciometro == 0) apagarLeds();
if (valorPotenciometro > i*73 && valorPotenciometro <= (i+1)*73) //en este rango está el LED que toca encender
{
tocaLed = i;
for (j=0; j<14; j++) //creamos otro bucle para encender el LED que toca y apagar el resto
{
if (j==tocaLed) digitalWrite(j, HIGH);
else digitalWrite(j, LOW);
}
}
if (valorPotenciometro == 1023) encenderLeds();
}
}
void apagarLeds()
{
for (i = 0; i < 14; i++)
digitalWrite(i, LOW);
}
void encenderLeds()
{
for (i = 0; i < 14; i++)
digitalWrite(i, HIGH);
}

No hay comentarios:
Publicar un comentario