VU-­ Meter de LEDs

Un VU–Metre és una línia que agrupa varis LEDs. Aquest exemple explica com connectar-los entre si i com controlar-los des de la llibreria BasicEducationShield. Pots utilitzar tots els LEDs que vulguis, sempre que l’Arduino tingui prou Pins. En aquest cas, n’utilitzarem 5.

Materials

  • 1 placa Arduino U
  • 1 Shield Bàsica Educativa
  • 5 LEDs
  • 5 resistències 220 ohm
  • 10 cables

Instruccions

  1. Connecta cinc LEDs a través del pont central de la breadboard.
  2. Connecta una resistència de 220 ohms al Pin digital 2.
  3. Connecta la resistència a la pota llarga del primer LED.
  4. Connecta cadascun dels Pins digitals, del 3 fins al 6, a un LED corresponent seguint el mateix mètode.
  5. Connecta la pota curta dels LEDs a un Pin de l’Arduino GND usant cables negres.

La pota curta del LED sempre va a terra (GND) i la pota llarga a un Pin digital a través d’una resistència de 220 ohms. Quan connectem varis LEDs, com que totes les potes curtes han d’estar connectades a terra, tots estan connectats entre si. Per poder controlar cada LED hem de connectar les potes llargues per separat a un Pin digital.

Com que hi ha molts components connectats a la breadboard, revisa’ls amb compte per tal que les dues potes d’un LED o de la resistència no estiguin a la mateixa línia (ja que provocarien un curtcircuit i no funcionaria).

Obre Arxiu -> Exemples -> 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 uses un nombre major o menor de LEDs que a l’exemple, recorda canviar int pinCount = 5 i indicar el número corresponent als LEDs connectats.

Quan has carregat el codi, el primer que ocorre és que tots els LEDs s’encenen durant 3 segons. El programa segueix les següents funcions:

  • clear(): Apaga tots els LEDs.
  • on(LEDindex): Encén un LED.
  • off(LEDindex): Apaga un LED.
  • scrollRight(speed, startIndex): Els LEDs es van encenent d’un en un de dreta a esquerra.
  • scrollLeft(speed, startIndex): Els LEDs es van encenent d’un en un d’esquerra a dreta.
  • blink(LEDindex,speed, times): Un LED parpelleja.
  • blinkAll(speed, times): Tots els LEDs parpellegen.
  • fillFrom(startIndex, stopIndex):  Passa els LEDs de startIndex a stopIndex.
  • fill(numberOfLEDs): Passa els LEDs des del primer a numberOfLEDs (número de LEDs).

No funciona?

  1. Si no s’il·luminen tots els LEDs, comprova que els cables, els LEDs i les resistències estiguin connectats correctament a la placa d’entrenament. Mira la referència de la breadboard si no estàs segur de com funciona. Si connectes els components que suposadament no han d’estar connectats a la mateixa filera a la breadboard, farà un curtcircuit.
  2. Comprova que has connectat els LEDs als mateixos Pins que has indicat al codi.
  3. Assegura’t que les potes curtes dels LEDs estan connectades a GND i no al revés.