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

  1. Fissa lo shield sopra la scheda di controllo.
  2. Collega cinque LED a cavallo dello spazio vuoto della breadboard.
  3. Collega un resistore da 220 Ohm al pin digitale 2.
  4. Collega il resistore al piedino lungo del primo LED.
  5. Collega i pin digitali 3, 4, 5 e 7 al LED corrispondente seguendo lo stesso metodo.
  6. Collega il piedino corto dei LED a GND per mezzo dei cavi di connessione neri.
  7. 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 in setup().

    • Parametri
      • (intlength: la quantità di LED del VU-meter.
      • (intpins: array di numeri dei pin digitali a cui sono collegati i LED.
  • begin(): inizializza il VU-meter. Deve essere richiamato nella funzione in setup().

  • clear(): spegne tutti i LED.

  • on( index ): accende un LED.

    • Parametri
      • (intindex: il numero di indice dell'array che corrisponde al LED da accendere.
  • off( index ): spegne un LED.

    • Parametri
      • (intindex: il numero di indice dell'array che corrisponde al LED da spegnere.
  • scrollRight( speed, startIndex ): accende un LED alla volta, da sinistra a destra.

    • Parametri
      • (intspeed: indica la durata di accensione di ogni LED, in millisecondi.
      • (intstartIndex: l'indice dell'array che corrisponde al primo LED da accendere.
  • scrollLeft(speed, startIndex ): accende un LED alla volta, da destra a sinistra.

    • Parametri
      • (intspeed: indica la durata di accensione di ogni LED, in millisecondi.
      • (intstartIndex: l'indice dell'array che corrisponde al primo LED da accendere.
  • blink( index, speed, times ): fa lampeggiare un LED.

    • Parametri
      • (intindex: indice dell'array corrispondente al LED da far lampeggiare.
      • (intspeed: velocità di lampeggiamento del LED, in millisecondi.
      • (inttimes: numero di lampeggiamenti del LED.
  • blinkAll( speed, times ): fa lampeggiare tutti i LED.

    • Parametri
      • (intspeed: velocità di lampeggiamento dei LED, in millisecondi.
      • (inttimes: numero di lampeggiamenti dei LED.
  • fillFrom( startIndex, stopIndex ): accende i LED da startIndex a stopIndex.

    • Parametri
      • (intstartIndex: l'indice dell'array che corrisponde al primo LED da accendere.
      • (intstopIndex: l'indice dell'array che corrisponde all'ultimo LED da accendere.
  • fill( length ): accende i LED dal primo a length.

    • Parametri
      • (intlength: la quantità di LED da accendere.

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.

Ultime modifiche: martedì, 8 novembre 2022, 16:10