WS2812 ring, anello di led indirizzabili con Arduino


Ciao!
In questo post vedremo come collegare ed utilizzare un anello di led indirizzabili WS2812 con Arduino.



Per prima cosa, se non l'avete già, dovrete procurarvi questi led.
Io me li sono procurati da HiletGo su Amazon.

Per chi non conoscesse questi led, non sono dei led qualsiasi, ma sono led indirizzabili.
Questo significa che pur essendo collegati "in serie" posso controllare ognuno di loro indipendentemente dagli altri,
potendo quindi dando ad ognuno un colore diverso.

Se volete maggiori informazioni, vi rimando ad un altro post dove li avevo già utilizzati (in formato strip).

Ecco ad esempio cosa potete fare con questi led, in questo banalissimo progetto faccio "correre" un led di colore rosso sui led illuminati di blu.



Il primo passo per cominciare è scaricare ed installare la libreria Neopixel.

Poi realizzate il collegamento che vedete qui sotto,
come vedete sono sufficienti 3 fili, in quanto il pin "DO" del ring è l'uscita della serie, e può essere utilizzato per collegare altri led.


Dopo aver collegato l'anello di led, caricate questo codice nel vostro Arduino:

  1. #include <Adafruit_NeoPixel.h>
  2. #ifdef __AVR__
  3. #include <avr/power.h>
  4. #endif
  5. #define PinNeopixel        6
  6. #define NeopixelLedNum     12
  7. #define DelayVal           100
  8. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NeopixelLedNum, PinNeopixel, NEO_GRB + NEO_KHZ800);
  9. void setup() {
  10.   pixels.begin();
  11. }
  12. void loop() {
  13.   //il primo neopixel è lo 0, il secondo l'1 e così via
  14.   for (int i = 0; i < NeopixelLedNum; i++) {
  15.    
  16.     int PrevLed = i - 1;
  17.     if (PrevLed == -1) PrevLed = 11;
  18.    
  19.     // la funzione pixels.Color imposta il colore RGB del led, in quest'ordine, quindi Red, Green, Blue
  20.     // il range è da 0 a 255, dove 0 è spento e 255 è la massima intensità
  21.     pixels.setPixelColor(PrevLed, pixels.Color(0, 0, 255 ));
  22.     pixels.setPixelColor(i, pixels.Color(255, 0, 0 ));
  23.    
  24.     // Funzione per inviare inviare ai NeoPixel il colore scelto in precedenza
  25.     pixels.show();
  26.     delay(DelayVal);
  27.   }
  28. }


Questo è tutto,
per qualsiasi domanda lascia pure un commento.

Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

Nessun commento:

Posta un commento

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post