VU meter
Un VU-meter è una linea composta da più LED. Questo esempio spiega come collegarli tra loro e come gestirli tramite la libreria EducationShield. È possibile utilizzare tutti i LED desiderati, laddove il limite è costituito dal numero di pin digitali disponibili sulla scheda Arduino. In questo esempio, useremo 5 LED. Per collegare insieme più LED è necessario collegare i piedini corti a GND. Tuttavia, per poter gestire ogni singolo LED, i piedini lunghi devono essere collegati separatamente a un pin digitale.
Materiali
- 1 scheda di controllo
- 1 Education shield
- 5 LED
- 5 resistori da 220 Ohm
- 10 cavi di connessione
Istruzioni
Fase 1
Fase 2
Fase 3
Fase 4
Fase 5
Fase 6
Fase 7
Fase 8
- Fissa lo shield sopra la scheda di controllo.
- Collega cinque LED a cavallo dello spazio vuoto della breadboard.
- Collega un resistore da 220 Ohm al pin digitale 2.
- Collega il resistore al piedino lungo del primo LED.
- Collega i pin digitali 3, 4, 5 e 7 al LED corrispondente seguendo lo stesso metodo.
- Collega il piedino corto dei LED a GND per mezzo dei cavi di connessione neri.
- Collega la scheda al computer e carica l'esempio vuMeter.
CODICE
Il codice è disponibile in File>Examples>EducationShield>Help>VuMeter
/*
* VU-Meter
* VU-Meter is a few LEDs grouped together into a line.
*
* This library has some features that makes it easy to control
* several LEDs. Functions to use are:
*
* clear() - turns all LEDs off.
* on(LEDindex) - turns one LED on
* off(LEDindex) - turns one LED off
* scrollRight(speed, startIndex) - one LED light up at a time from left to right
* scrollLeft(speed, startIndex) - one LED light up at a time from right to left
* blink(LEDindex,speed, times) - one LED blinks
* blinkAll(speed, times) - all LEDs blink
* fillFrom(startIndex, stopIndex) - turns LEDs from startIndex to stopIndex on
* fill(numberOfLEDs) - turns LEDs on from first to numberOfLEDs
*
* (c) 2013-2016 Arduino LLC.
*/
#include <educationshield.h>
//Declare the VUMeter
VUMeter me;
//The pins used by the VUMeter, default to 2-5 and 7. Can be
//customized as wish, but do change the pinCount if the
//number of LEDs are changed.
int pins[]={2,3,4,5,7};
//How many pins are used. Should reflect the pins array above.
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(number)
// number: how many leds from first pin shall be turned on
//
//Fill 5 LEDs
me.fill(5);
delay(3000);
//clear()
//
//turn all the LEDs off
me.clear();
delay(1000);
//on(index)
// index: which LED being turned on
//
//Turn the 3rd LED on
me.on(2);
delay(1000);
//off(index)
// index: which LED being turned off
//
//Turn the 3rd LED off
me.off(2);
delay(1000);
//scrollRight(speed, startIndex)
// speed: milliseconds before the next LED turns on
// startIndex: from which LED to the left it start
// scrolling. If not specified, it's 1.
//
//One LED light up at a time, scroll from left to right
me.scrollRight(700);
//scrollLeft(speed, startIndex)
// speed: milliseconds before the next LED turns on
// startIndex: from which LED TO THE RIGHT it start
// scrolling. If not specified, it's 1.
//
//And then scroll back from the 2nd on the right
me.scrollLeft(700,1);
//blink(index, speed, times)
// index: which LED should blink
// speed: milliseconds, of which the LED light on and off
// times: how many times the LED blinks. Defaults to 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);
//blinkAll(speed, times)
// speed: milliseconds, of which all LEDs light on and off
// times: how many times the LED blinks. Defaults to 1
//
//All LEDs will be blinking 10 times
me.blinkAll(100,10);
//fillFrom(leftIndex,rightIndex)
// leftIndex: start filling from which LED
// rightIndex: end filling to which LED
//
//The 2nd to 4th LED will be light up
me.fillFrom(1,3);
delay(2000);
}</educationshield.h>
Tutti i LED si accendono per 3 secondi, dopodiché eseguono una serie di sequenze di lampeggiamento. Per informazioni dettagliate, consulta la parte seguente.
COMANDI
VUMeter
: crea un oggetto VUMeter.config( length, pins)
: configura il VUmeter. Deve essere richiamato nella funzione insetup()
.- Parametri
- (
int
)length
: la quantità di LED del VU-meter. - (
int
)pins
: array di numeri dei pin digitali a cui sono collegati i LED.
- (
- Parametri
begin()
: inizializza il VU-meter. Deve essere richiamato nella funzione insetup()
.clear()
: spegne tutti i LED.on( index )
: accende un LED.- Parametri
- (
int
)index
: il numero di indice dell'array che corrisponde al LED da accendere.
- (
- Parametri
off( index )
: spegne un LED.- Parametri
- (
int
)index
: il numero di indice dell'array che corrisponde al LED da spegnere.
- (
- Parametri
scrollRight( speed, startIndex )
: accende un LED alla volta, da sinistra a destra.- Parametri
- (
int
)speed
: indica la durata di accensione di ogni LED, in millisecondi. - (
int
)startIndex
: l'indice dell'array che corrisponde al primo LED da accendere.
- (
- Parametri
scrollLeft(speed, startIndex )
: accende un LED alla volta, da destra a sinistra.- Parametri
- (
int
)speed
: indica la durata di accensione di ogni LED, in millisecondi. - (
int
)startIndex
: l'indice dell'array che corrisponde al primo LED da accendere.
- (
- Parametri
blink( index, speed, times )
: fa lampeggiare un LED.- Parametri
- (
int
)index
: indice dell'array corrispondente al LED da far lampeggiare. - (
int
)speed
: velocità di lampeggiamento del LED, in millisecondi. - (
int
)times
: numero di lampeggiamenti del LED.
- (
- Parametri
blinkAll( speed, times )
: fa lampeggiare tutti i LED.- Parametri
- (
int
)speed
: velocità di lampeggiamento dei LED, in millisecondi. - (
int
)times
: numero di lampeggiamenti dei LED.
- (
- Parametri
fillFrom( startIndex, stopIndex )
: accende i LED da startIndex a stopIndex.- Parametri
- (
int
)startIndex
: l'indice dell'array che corrisponde al primo LED da accendere. - (
int
)stopIndex
: l'indice dell'array che corrisponde all'ultimo LED da accendere.
- (
- Parametri
fill( length )
: accende i LED dal primo a length.- Parametri
- (
int
)length
: la quantità di LED da accendere.
- (
- Parametri
Come risolvere eventuali problemi
- Se alcuni LED non si accendono, controlla che i cavi di connessione, i LED e i resistori siano collegati correttamente alla breadboard. In caso di dubbi, consulta il riferimento breadboard. Il collegamento di componenti sulla riga errata della breadboard può causare un corto circuito.
- Assicurati di avere collegato i LED ai pin indicati nel codice.
- Controlla di avere collegato i piedini corti dei LED a GND e non viceversa.