Potenciómetro para encender 5 LEDs

Utilizando el potenciómetro haremos que a medida que variamos la resistencia interna, se irán encendiendo más o menos LEDs. Cuando los 5 leds estén encendidos daremos un aviso con el buzzer.

Entradas que debes saber:

potenciometro

Material requerido

 arduino
  • Arduino Uno o similar. Esta sesión acepta cualquier otro modelo de Arduino.
 Img_3_4
  •  Una Protoboard.
 RedLed_
  • 5 diodo LED.
 potenciometro
  • Un potenciómetro de 10KΩ
 Img_3_5
  • 5 resistencia de 330 Ohmios.
 Img_3_6-300x185
  • Algunos cables de Protoboard.

El esquema.

Conectaremos el potenciómetro: la patilla de la derecha, la conectaremos a la alimentación de 5V (cable rojo), la patilla central la conectaremos al pin analógico A0 (cable amarillo), y finalmente, el cable blanco irá conectado a masa.

Una vez tenemos esta parte hecha, procedemos a conectar los LEDs.

Hay que tener en cuenta que para cada diodo LED, es necesario conectar una resistencia de 330Ω para evitar que éste pueda ser dañado.

Una vez terminado con los leds y el potenciómetro conectamos el buzzer.

leds_potenciometro_bb

El programa.

Una vez realizado el montaje, pasamos a escribir el código para poder mandarle la información a nuestro arduino.

int leds[]={8,9,10,11,12};

int buz = 6;
int pot;
int n=0;

void setup(){
   for(n=0;n<5;n++) {
            pinMode(leds[n],OUTPUT);
  }
  Serial.begin(9600);
}

void loop(){
  pot = analogRead(0);// variable pot entrada analógica en A0
  Serial.print(«Valor del potenciometro: «);
  Serial.println(pot);
  if (pot==0)
      encender(0);
  else if(pot > 0 && pot <= 200){
     encender(1);
  }
  else if(pot >= 200 && pot <= 400){
     encender(2);
  }
  else if(pot >= 400 && pot <= 600){
     encender(3);
  }
  else if(pot >= 600 && pot <= 800){
      encender(4);
  }
  else if(pot >= 800){
      encender(5);
  }

  // sonorá el buzzer si supera el valor 1000
  if (pot >=1000)
      beep(200);
  else
    beep(0);
}

void encender(int x){
 for(n=0;n<x;n++)
         digitalWrite(leds[n],HIGH);
 for(n=x;n<5;n++)
        digitalWrite(leds[n],LOW);
}

void beep(unsigned char pausa) {
            analogWrite(buz, 20);
            delay(pausa);                      // Espera
            analogWrite(buz, 0);     // Apaga
            delay(pausa);                      // Espera
}

Deja un comentario