Questo post ci consentirà di collegare una striscia di led RGB ad Arduino tramite uno shield.
Grazie al controllo con Arduino è possibile ottenere bellissimi effetti per mille usi diversi, dalle luci natalizie agli abbellimenti per la vostra casa.
Dato che l'assorbimento di queste strisce è troppo elevato per collegarle direttamente ad Arduino, è necessario un circuito in grado di amplificare questo segnale.
Per fare ciò utilizzeremo uno shield rgb come questo:
Potete trovarlo su eBay cliccando qui, invece per la striscia di led va bene una qualsiasi da 12 o 24v.
Passiamo ora al nostro esempio pratico, ecco quello che otterrete:
Il collegamento elettrico è molto semplice, potete vederlo su questo datasheet.
Per completezza vi riporto qui l'immagine del collegamento:
Questo è lo sketch da caricare, vi consiglio di caricarlo senza lo shield montato.
Dopo il caricamento scollegate il cavo usb, montate lo shield ed infine alimentate il tutto con l'alimentatore tramite il jack esterno di Arduino.
Grazie al controllo con Arduino è possibile ottenere bellissimi effetti per mille usi diversi, dalle luci natalizie agli abbellimenti per la vostra casa.
Dato che l'assorbimento di queste strisce è troppo elevato per collegarle direttamente ad Arduino, è necessario un circuito in grado di amplificare questo segnale.
Per fare ciò utilizzeremo uno shield rgb come questo:
Potete trovarlo su eBay cliccando qui, invece per la striscia di led va bene una qualsiasi da 12 o 24v.
Passiamo ora al nostro esempio pratico, ecco quello che otterrete:
Il collegamento elettrico è molto semplice, potete vederlo su questo datasheet.
Per completezza vi riporto qui l'immagine del collegamento:
Questo è lo sketch da caricare, vi consiglio di caricarlo senza lo shield montato.
Dopo il caricamento scollegate il cavo usb, montate lo shield ed infine alimentate il tutto con l'alimentatore tramite il jack esterno di Arduino.
- const int rosso = 3; // connessione led rgb
- const int blu = 6;
- const int verde = 5;
- long potenzval;
- int rossoval;
- int verdeval;
- int bluval;
- void setup()
- {
- pinMode(verde, OUTPUT);
- pinMode(rosso, OUTPUT);
- pinMode(blu, OUTPUT);
- randomSeed(analogRead(0));
- }
- void loop()
- {
- potenzval = random(1023);
- if (potenzval > 511){
- verdeval = map (potenzval,0,510,0,255);
- analogWrite (verde, verdeval);
- analogWrite (blu, 255);
- rossoval = map (potenzval,0,510,255,0);
- analogWrite (rosso, rossoval);
- }
- if (potenzval <= 511){
- verdeval = map (potenzval,0,511,255,0);
- analogWrite (verde, verdeval);
- analogWrite (rosso, 255);
- bluval = map (potenzval,0,511,0,255);
- analogWrite (blu, bluval);
- }
- delay(500);
- }
In pratica quello che fa lo sketch è generare un numero casuale, ed in base a quel numero verranno accesi più o meno i led dei tre colori.
Quindi a seconda di quanto sono accesi i led rossi, verdi e blu ci apparirà un colore anziché un'altro.
Quindi a seconda di quanto sono accesi i led rossi, verdi e blu ci apparirà un colore anziché un'altro.
Come al solito sono a disposizione per chiarire eventuali dubbi, basta lasciare un commento qui sotto!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Si può mettere qualsiasi effetto possibile?
RispondiEliminaSi può mettere qualsiasi effetto possibile?
RispondiEliminapuoi programmare la luminosità di ogni colore (rosso, verde, blu) in un range tra 0 e 255.
Eliminaposso comandare anche i singoli led indipendentemnte?
RispondiEliminaCiao riusciresti a modificare il codice in modo che random faccia anche il fade da Black to black di un colore random?
RispondiElimina