Sonnenaufgang mit LED Panel

Ciao e benvenuto al nostro post oggi.

 

Un membro della comunità si è ispirato ai nostri post e uno Orologio radio  costruito con sveglia. Prima dell'allarme mattutino, un pannello RGB U-64 dovrebbe simulare la luce dell'alba per consentire un risveglio più delicato.

La libreria FastLED che preferisco offre la possibilità di definire i miei gradienti di colore.

Ogni LED è costituito da un LED rosso, verde e blu molto piccolo e da un chip di controllo molto piccolo che controlla la luminosità dei singoli colori.

Ogni colore può essere impostato con un valore compreso tra 0 (spento) e 255 (piena luminosità).

Il colore e la luminosità del LED sono composti da 3 valori, ciascuno per rosso, verde e blu.

rosso

verde

blu

Colore LED

255

0

0

rosso

0

255

0

verde

0

0

255

blu

255

255

0

giallo

0

255

255

ciano

 

Ora che sappiamo come vengono messi insieme i colori, tutto ciò che dobbiamo fare è specificare un gradiente.

Grazie a una funzione relativamente nuova nella libreria FastLED, possiamo facilmente definire tali processi.

Il tutto può essere pensato come un elenco. La prima riga è il numero di riga, seguito dai valori per rosso, verde e blu. Possiamo aggiustarlo per ogni riga.

Quindi, se la mia tabella fosse lunga 255 righe, ci vorrebbe molto lavoro per inserire manualmente i valori appropriati per ogni riga.

Utilizzando DEFINE_GRADIENT_PALETTE possiamo specificare il valore desiderato per determinate righe nella nostra tabella. Nell'esempio seguente, lo faccio per le linee 0, 128, 224 e 255.
Il risultato è una tabella con 255 righe in cui vengono calcolati i diversi gradienti di colore.

Se ora uso ColorFromPalette () per eseguire una query sui valori di colore per la riga 64, ottengo la media tra 0 e 128.

In pratica, la funzione è chiamata come segue:

DEFINE_GRADIENT_PALETTE ( * name_my_palette * ) {
* Numero riga *, * Valore per il rosso *, * Valore per il verde *, * Valore per il blu *
};
Nell'esempio è simile al seguente:
DEFINE_GRADIENT_PALETTE( sunrise_gp ) {   0,     0,  0,  0,   // nero
128,   240,  0,  0,   // rosso
224,   240,240,  0,   // giallo
255,   128,128,240 }; // molto azzurro

Per poter usare la tabella, tuttavia, dobbiamo ancora scrivere la tabella "sunrise_gp" su una variabile usando CRGBPalette16 () o CRGBPalette256 ().

CRGBPalette256 sunrisePal = sunrise_gp;

Quindi possiamo determinare il colore in una posizione specifica (= heatIndex) usando il seguente comando.

CRGB colore = Colore dalla tavolozza(sunrisePal, indice di calore);

Quindi usiamo fill_solid () per impostare il colore di tutti i LED sul colore determinato:

fill_solid(leds, NUM_LEDS, colore);



Ecco lo schizzo completo:

#include <FastLED.B>

#define DATA_PIN    3
#define LED_TYPE    WS2811
#define COLOR_ORDER GRB
#define NUM_LEDS    64
CRGB leds[NUM_LEDS];

#define LUMINOSITÀ          128

DEFINE_GRADIENT_PALETTE( sunrise_gp ) {   0,     0,  0,  0,   // nero
128,   240,  0,  0,   // rosso
224,   240,240,  0,   // giallo
255,   128,128,240 }; // molto azzurro

vuoto configurazione() {   ritardo(1000);   FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);   FastLED.SetBrightness(LUMINOSITÀ);   fill_solid(leds, NUM_LEDS, CRGB(0,0,0)); // Tutti i pixel sono spenti   FastLED.spettacolo();    alba(); // Gioca all'alba
}    vuoto cappio()
{
}

vuoto alba() {   statica uint16_t indice di calore = 0; // inizia da 0   per (indice di calore=0; indice di calore<255; indice di calore++) {   CRGBPalette256 sunrisePal = sunrise_gp;   CRGB colore = Colore dalla tavolozza(sunrisePal, indice di calore);   // riempie l'intera striscia con il colore corrente   fill_solid(leds, NUM_LEDS, colore);   FastLED.spettacolo();    FastLED.ritardo(250);   }
}

 

Con FastLED.delay possiamo regolare la velocità.

Per implementare il tutto in una sveglia, solo la funzione alba ()essere chiamato prima della sveglia stessa e la sveglia avvia il delicato processo di sveglia.

Chiunque abbia già acquisito esperienza con il nostro modulo MP3 o il set TonUINO può anche essere opportunamente cosparso in modo udibile con il suono del mare o il cinguettio degli uccelli.

Spero che il post di oggi ti aiuti a capire meglio i tuoi gradienti Neopixel. Non tutti gli alberi di Natale illuminati con neopixel devono brillare nei colori dell'arcobaleno.

 

 

Projekte für anfänger

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert