APA106 led ed Arduino

luca 28/07/2015 3

Da qualche tempo esistono in commercio dei led che racchiudono anche un chip di controllo (WS2811, WS2812, APA106…).

I vantaggi principali di questi led sono:

  • è possibile controllarli con un solo PIN digitale
  • possono essere collegati in cascata ed essere comunque controllabili singolarmente
  • possono essere alimentati a 5V senza richiedere resistenze esterne (come i comuni led)

I led

Troniqa vende del led RGB da 8mm contenenti il chip APA106: in questo breve tutorial vi mostrerò come controllarli con Arduino.

I led hanno 4 PIN:

apa-1

Il collegamento è molto semplice: l’alimentazione (5V e massa) va collegata ai PIN VDDGND.

I PIN DINDOUT (data-indata-out) sono i PIN di controllo: per collegare i led in cascata, al PIN DOUT del led precedente va collegato il PIN DIN del led seguente. Il PIN DIN del primo led della catena va collegato ad Arduino mentre il PIN DOUT dell’ultimo led può essere lasciato non collegato.

In questo esempio utilizzerò un solo led, effettuando i collegamenti su breadboard (userò il PIN 6 di Arduino per controllare il led):

apa-2

Arduino

Adafruit ha sviluppato una comoda libreria per Arduino (NeoPixel) per controllare questi led.

Se avete un IDE recente, l’installazione della libreria può essere fatta via Library Manager:

add-library-1

Con la funzione di ricerca è possibile trovare la libreria Adafruit NeoPixel ed installarla:

add-library-2

L’utilizzo è molto semplice: basta definire il numero di led collegati in cascata, il PIN di Arduino a cui sono collegati e istanziare un oggetto Adafruit_NeoPixel:

#define PIN            6
#define NUMPIXELS      1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
void setup() {
  pixels.begin();
}

Adafruit ha reso disponibile un ottimo tutorial che illustra tutte le funzionalità della libreria. Come demo per questo articolo ho preparato uno sketch (lo trovate su Github) che cambia il colore del led attraversando tutto lo spettro visibile:

3 Comments »

  1. mirco ughi 08/03/2016 at 13:02 - Reply

    ciao Luca

    ho scoperto questi led grazie al tuo blog, comprati ed arrivato. Spero di provarli stasera

    Stavo leggendo sul link a github il file ESP8266.c. che tu sappia è il nome dell’integrato che gestisce il led? cercando con san google esp8266 mi sembra essere un modulo wifi.. proverò a cercare meglio. è interessante la temporizzazione fatta con i cicli di clock. Forse è una cosa scontata per molti, ma per me è una novità. potrebbe essere usata al posto del millis in temporizzazioni ultrabrevi? sarebbe interessante un tutorial a riguardo
    torno a studiare, intanto complimenti per il blog e per il lavoro svolto. ho imparato diverse cose grazie a te.
    se avrà la parvenza di qualcosa di funzionate ti mostrerò cosa volevo fare con i led.

    buon lavoro

    mirco

    • luca 09/03/2016 at 12:04 - Reply

      Ciao Mirco… che link hai seguito per andare su Github? ESP8266 è un integrato wifi, non ha legami con i led (che hanno come chip di controllo appunto l’APA106). grazie per i complimenti ;)

      • mirco ughi 11/03/2016 at 00:43 - Reply

        ciao luca

        ho preso un granchio
        evidentemente avevo bisogno di un caffe…

        sono andato su github cliccando sulla parola neopixel della frase “Adafruit ha sviluppato una comoda libreria per Arduino (NeoPixel) per controllare…” e li ho aperto il file ESP8266.c

        Questo fine settimana voglio provare a comandare i led montati in una placca di un punto luce del garage dove ci sono tre pulsanti tutti e tre luminosi.
        la mia idea idea era di usare i colori dei led per indicare se i pulsanti sono attivi per comandare la luce oppure se è attivo un eventuale sensore di presenza per l’accensione automatica della luce.
        voglio vedere se 4/5 metri di cavo tra l’arduino ed i led raccoglieranno abbastanza disturbi per far si che non funzioni nulla… con un po di fortuna…

        spero di darti presto notizie positive.

        buon lavoro,

        mirco

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi