Collegamento del NeoPixel Ring LED RGB

La striscia LED indirizzabile del modulo Arduino NeoPixel Ring ws2812b consente di creare diversi effetti di illuminazione. In questa recensione, esamineremo le caratteristiche e lo schema di collegamento dell’anello LED RGB da 16 o 24 pixel ws2812b al microcontrollore Arduino Uno. Verranno inoltre forniti alcuni esempi di programmi con effetti interessanti per il modulo NeoPixel Ring 16 / 24 utilizzando la libreria Adafruit_NeoPixel.h.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • modulo NeoPixel Ring ws2812b
  • cavi di collegamento
  • libreria hsv.h, Adafruit_NeoPixel.h

NeoPixel Ring LED RGB 16/24 datasheet, pinout

Una caratteristica importante del modulo NeoPixel Ring ws2812b è l’elevato consumo di corrente. Nonostante la compatibilità con i microcontrollori Arduino, è preferibile utilizzare un alimentatore separato per il NeoPixel Ring. Il LED RGB ws2812b consuma fino a 45 mA, ogni colore alla massima luminosità consuma circa 15 mA. Vediamo gli esempi di collegamento e controllo del modulo NeoPixel Ring 16/24 dal microcontrollore Arduino Uno.

Modulo di NeoPixel Ring LED RGB 16/24 pinout, datasheet
Modulo di NeoPixel Ring LED RGB 16/24 pinout, datasheet

Caratteristiche del modulo NeoPixel Ring Arduino:

  • Tensione di alimentazione: 5 V
  • Consumo di energia: 18 mA per LED
  • Interfacce: seriale

I moduli NeoPixel Ring RGB LED sono collegati tramite l’ingresso (DIN) al pin digitale del microcontrollore Arduino. Se si collegano più moduli, questi sono collegati tra loro: l’uscita OUT di ogni modulo è collegata all’ingresso IN del modulo successivo e l’ingresso IN del primo modulo è collegato a qualsiasi porta di Arduino Uno / Arduino Nano. I LED dei moduli sono numerati in sequenza, a partire da quello più vicino al microcontrollore Arduino.

Come collegare NeoPixel Ring ws2812b ad Arduino

Collegamento del RGB LED NeoPixel Ring Arduino Uno
Collegamento del RGB LED NeoPixel Ring Arduino Uno

Per controllare l’anello di LED dal microcontrollore Arduino si può usare qualsiasi programma utilizzato per controllare le strisce di LED ws2812b indirizzabili, basta specificare nello sketch il numero di LED richiesto nell’anello, 16 o 24. Ad esempio, è possibile utilizzare gli esempi standard delle famose librerie Adafruit NeoPixel o FastLed. Di seguito sono riportati alcuni esempi di programmi per il controllo dell’anello NeoPixel ws2812b dalla scheda Arduino.

Programma Arduino per utilizzare l’anello NeoPixel Ring




#include "Adafruit_NeoPixel.h"
#include "hsv.h"

#define PIN 6
#define CNT 12
#define MAXHUE 256*6
int pos = 0;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(CNT, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
}

void loop() {
  for (int i = 0; i < CNT; i++)
    strip.setPixelColor((i + pos) % CNT, getPixelColorHsv(i, i * (MAXHUE / CNT), 255, 10));
    strip.show();
    pos++;
    pos %= CNT;
    delay(50);
}

Spiegazione del codice per utilizzare l’anello NeoPixel Ring:



  1. è necessario specificare il numero di pixel richiesti nel modulo;
  2. la velocità degli effetti dipende dal tempo di ritardo – delay(50).

Programma Arduino per anello rotante con cambio di colore

#include "Adafruit_NeoPixel.h"
#include "hsv.h"

#define PIN 6
#define CNT 12
#define MAXHUE 256*6
int pos = 0;
int hue = 1;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(CNT, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
}

void loop() {
   for (int i = 0; i < CNT; i++)
     strip.setPixelColor((i + pos) % CNT, getPixelColorHsv(i, hue, 255, strip.gamma8(i * (255 / CNT))));
     strip.show();
     pos++;
     pos %= CNT;
     hue += 2;
     hue %= MAXHUE;
     delay(50);
}

Spiegazione del codice per anello rotante con cambio di colore:

  1. in questo esempio, l’anello ruota il punto, che cambia colore e passa gradualmente attraverso tutte le sfumature di colore;
  2. gli esempi illustrati utilizzano lo stesso algoritmo. La variabile pos viene incrementata di 1 unità ogni 50 ms, creando un effetto di movimento.

Conclusione. Questo assemblaggio consente di collegare un numero illimitato di moduli in serie e il circuito può essere utilizzato in progetti reali. Ricordiamo che una caratteristica importante dei LED indirizzabili ws2812b è l’elevato consumo di corrente e, nonostante la compatibilità con Arduino, è preferibile utilizzare un alimentatore separato per NeoPixel Ring.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.