domingo, 22 de marzo de 2015

Encender uno a uno una serie de LEDs con un potenciómetro

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.

Podemos ver el proyecto en el siguiente enlace:



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