Controllo di 40 LEDs

Salve a tutti, sto realizzando un cosplay del Predator Scar per il Lucca Comics (interamente in vetroresina) e vorrei costruire il famoso bracciale con il countdown, nonchè il display superiore.

Video

Iniziando a capirci qualcosa con i primi progetti semplici con Arduino UNO, mi si è subito presentato il problema: come posso controllare singolarmente ogni singolo LED dei 40 che mi servono? Esistono dei dispositivi da installare su una breadboard?

Ringrazio tutti coloro che avranno voglia di darmi una mano :smiley:

La risposta si chiama "NeoPixel" ... vai sul sito di Adafruit e cerca quelli che fanno al caso tuo ...
... sono i WS2812, led intelligenti che si collegano uno in fila con l'altro e si comandano TUTTI con un solo pin :wink:

Guglielmo

Ciao Guglielmo, ti ringrazio per la dritta! Giusto per non sbagliare... potrei utilizzare questo articolo allora... visto che mi serve posizionare i singoli LEDs in posizioni precise? Prodotto

Ma come li controllo poi singolarmente con l'Arduino?

Occhio che quelli sono tipo SMD … hai l’attrezzatura per saldarli ?

Altrimenti ci sono QUESTI, sempre singoli, fatti per il wearable e che si saldano molto più facilmente con un normale saldatore.

Per controllarti usi l’apposita libreria di Adafruit; in pratica ogni LED ha un numero identificativo (sono numerati in sequenza) e tu dici numero del led e valore della tripletta RGB … al resto pensa la libreria. :slight_smile:

Guglielmo

Grazie mille Guglielmo! Prenderò quelli da 20 pezzi almeno risparmio un bel po' di soldi. :slight_smile:

Oltre ai NEOpixel citati da Guglielmo ci sono ancora altri LED col medesimo controller ma in involucri / supporti /schede diversi. Cerca WS2812; WS2812B; PL9823-F8 e PL9823-F5
Ci sono in striscia da 30 a 144 punti al metro con larghezza 10 e 12mm.
Ci sono in forma LED da 5 o 8mm chiari i opachi, SMD da 5x5mm e adesso anche 3,5x3,5mm .
Non sono tutti dello stesso produttore e percui alcuni modelli hanno 2 color invertiti rispetto a altri.
Ciao Uwe

In un mio progetto ho utilizzato il seguente modello di matrice LED: MAX7219 LED. E' una matrice di 64 LED (8 righe x 8 colonne), ha un costo unitario di circa 2 o 3 euro a seconda di dove la compri. Inoltre tramite questo utilissimo sito: LED Matrix Editor puoi disporre di un comodo editor grafico per comporre le figure che desideri. Dopo aver disegnato le figure, e aver premuto il tasto update, nella casella a destra (Arduino/C code) verrà ricavato un array di minimo 8 elementi che descrive come si devono accendere i LED sulla matrice per rappresentare la figura che hai disegnato nell'editor.

uwefed:
... PL9823-F8 ...

... non so perche', ma nel leggere quella sigla, la prima cosa che mi e' venuta in mente e' stata "ecco un bel modo possibile per realizzare un cubo led multicolore 8x8x8 usando un solo pin" ... che dite, c'e' ancora speranza, o il paziente (io :P) ormai non e' piu recuperabile ? ... :smiley: :smiley: :smiley:

krypton18:
In un mio progetto ho utilizzato il seguente modello di matrice LED: MAX7219 LED. E' una matrice di 64x64 LED (8 righe x 8 colonne), ha un costo unitario di circa 2 o 3 euro a seconda di dove la compri.

Intendi 64 LED (8x8)?

Ciao Uwe

uwefed:
Intendi 64 LED (8x8)?

Ciao Uwe

Sì, mi ero sbagliato a scrivere. Ho corretto il post, grazie.
L’oggetto è questo comunque (sono due display collegati in cascata in questo caso):

Il colore dei LED e la dimensione del display direi che sono adeguati all’applicazione. Il display di per sé consuma poco, e se non sbaglio se ne possono collegare in cascata fino ad 8 elementi (io ho provato con 4).
Un singolo display è dotato di 5 PIN: GND, VCC per l’alimentazione e 3 PIN di controllo da collegare agli ingressi digitali dell’Arduino: DIN, CS e CLK.
Se colleghi i display in cascata tutta la serie viene gestita tramite i 3 PIN del primo collegato all’Arduino.
La libreria che consiglio di utilizzare è la: LedControl.h
Questo invece è un esempio di assegnazione di PIN in un programma Arduino:

#include <LedControl.h>

//CONFIGURAZIONE PIN MATRICE 64 LED
const int DIN = 43;
const int CS =  47;
const int CLK = 45;
const int NumDisMatrix = 3;                                     //numero display matrice 64 LED collegati in cascata
LedControl lc = LedControl(DIN, CLK, CS, NumDisMatrix);

void setup(void)
{
  //INIZIALIZZAZIONE DISPLAY 64 LED a matrice
  for (int i = 0; i < NumDisMatrix; i++) { //Se ho n display, inizializzali
    lc.shutdown(i, false);                  //Accendi i display
    lc.setIntensity(i, 0);                  //Imposta il livello di luminosità dei LED
    lc.clearDisplay(i);                     //Spengni i LED sui display
  }
}

Irukandji: complimenti per l’idea del tuo progetto, sono un fan di Predator e quei geroglifici facevano scena nel film :D.