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
- Conecta cinco LEDs a través del puente central de la breadboard.
- Conecta una resistencia de 220 ohmios al Pin digital 2.
- Conecta la resistencia a la pata larga del primer LED.
- Conecta cada uno de los Pins digitales 3 hasta 6 a un LED correspondiente siguiendo el mismo método.
- 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 destartIndex
astopIndex
fill(numberOfLEDs)
: Pasa los LEDs desde el primero anumberOfLEDs
(número de LEDs).
¿No funciona?
- 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.
- Asegúrate de que has conectado los LEDs a los mismos Pins que has indicado en el código.
- Asegúrate de que las patas cortas de los LEDs están conectados a GND y no al revés.