VU-Meter de LED

Un VU–Metro es una línea que agrupa varios LED. Este ejemplo te explicará cómo conectarlos entre sí y cómo controlarlos desde la librería BasicEducationShield. Puedes utilizar cuantos LED quieras, siempre y cuando Arduino tenga suficientes Pins. En este ejemplo utilizaremos 5 LED.

Materiales

  • 1 placa Arduino Uno
  • 1 shield Básica Educativa
  • 5 LEDs
  • 5 resistencia 220 ohm
  • 10 cables

Instrucciones

  1. Conecta cinco LEDs a través del puente central de la breadboard.
  2. Conecta una resistencia de 220 ​​ohmios al Pin digital 2.
  3. Conecta la resistencia a la pata larga del primer LED.
  4. Conecta cada uno de los Pins digitales 3 hasta 6 a un LED correspondiente siguiendo el mismo método.
  5. Conecta la pata corta de los LEDs a un Pin de Arduino GND utilizando cables negros.

La pata corta del LED siempre va a tierra (GND) y la pata larga a un Pin digital a través de una resistencia de 220 ​​ohmios. Cuando conectamos varios LEDs, puesto que todas las patas cortas deben estar conectadas a tierra, todos ellos están conectados entre sí. Para poder controlar cada LED tenemos que conectar las patas largas por separado a un Pin digital.

Dado que hay muchos componentes conectados a la breadboard, revísalos con cuidado para que las dos patas de un LED o de la resistencia no estén en la misma línea (ya que provocarían un corto circuito y no funcionaría).

Abre Archivo -> Ejemplos -> BasicEducationShield -> Help -> vuMeter

/*
VU-Meter
*/

#include <BasicEducationShield.h>

//Declare the VUMeter
VUMeter me;
int pins[]={2,3,4,5,6};
int pinCount=5;

void setup(){
//Configure the VU meter using parameters defined previously.
me.config(pinCount,pins);

//initialize the component. Must be called.
me.begin();

}
void loop(){
//Fill 5 LEDs
me.fill(5);
delay(3000);

//turn all the LEDs off
me.clear();
delay(1000);

//Turn the 3rd LED on
me.on(2);
delay(1000);

//Turn the 3rd LED off
me.off(2);
delay(1000);

//One LED light up at a time, scroll from left to right
me.scrollRight(700);

//And then scroll back from the 2nd on the right
me.scrollLeft(700,1);

//the 3rd led will be blinking for 10 times, each time
//with 100 milliseconds on and 100 milliseconds off
me.blink(2,100,10);

//All LEDs will be blinking 10 times
me.blinkAll(100,10);

//The 2nd to 4th LED will be light up
me.fillFrom(1,3);
delay(2000);
}

Si utilizas un número mayor o menor de LEDs que en el ejemplo, recuerda cambiar int pinCount = 5 e indica el número correspondiente a los LEDs conectados.

Cuando has cargado el código, lo primero que ocurre es que todos los LEDs se encienden durante 3 segundos. El programa sigue la siguientes funciones:

  • clear(): Apaga todos los LEDs.
  • on(LEDindex): Enciende un LED.
  • off(LEDindex): Apaga un LED.
  • scrollRight(speed, startIndex): Los LEDs se van encendiendo de uno en uno de derecha a izquierda.
  • scrollLeft(speed, startIndex): Los LEDs se van encendiendo de uno en uno de izquierda a derecha.
  • blink(LEDindex,speed, times): Un LED parpadea.
  • blinkAll(speed, times): Todos los LEDs parpadean.
  • fillFrom(startIndex, stopIndex): Pasa los LEDs de startIndex a stopIndex
  • fill(numberOfLEDs): Pasa los LEDs desde el primero a numberOfLEDs (número de LEDs).

¿No funciona?

  1. Si no se iluminan todos los LEDs, asegúrate de que los cables, los LEDs y las resistencias estén conectados correctamente a la placa de entrenamiento. Mira la referencia de la breadboard si no estás seguro de cómo funciona. Si conectas los componentes que supuestamente no deben estar conectados a la misma fila en la breadboard, hará corto circuito.
  2. Asegúrate de que has conectado los LEDs a los mismos Pins que has indicado en el código.
  3. Asegúrate de que las patas cortas de los LEDs están conectados a GND y no al revés.