Lever de soleil avec le panneau LED

Bonjour et bienvenue sur notre article aujourd'hui.

 

Un membre de la communauté s'est inspiré de nos publications et un autre Radio-réveil  construit avec réveil. Avant l'alarme du matin, un panneau RVB U-64 devrait simuler la lumière d'un lever de soleil pour permettre un réveil plus doux.

La bibliothèque FastLED que je préfère offre la possibilité de définir mes propres dégradés de couleurs.

Chaque LED se compose d'une très petite LED rouge, verte et bleue ainsi que d'une toute petite puce de contrôle qui contrôle la luminosité des couleurs individuelles.

Chaque couleur peut être définie avec une valeur comprise entre 0 (désactivé) et 255 (luminosité maximale).

La couleur et la luminosité de la LED sont composées de 3 valeurs, chacune pour le rouge, le vert et le bleu.

Rouge

Vert

Bleu

Couleur LED

255

0

0

Rouge

0

255

0

Vert

0

0

255

Bleu

255

255

0

Jaune

0

255

255

Cyan

 

Maintenant que nous savons comment les couleurs sont assemblées, il ne nous reste plus qu'à spécifier un dégradé.

Grâce à une fonction relativement nouvelle de la bibliothèque FastLED, nous pouvons facilement définir de tels processus.

Le tout peut être considéré comme une liste. La première ligne est le numéro de ligne, suivi des valeurs pour le rouge, le vert et le bleu. Nous pouvons ajuster cela pour chaque ligne.

Donc, si ma table comptait 255 lignes, il faudrait beaucoup de travail pour saisir manuellement les valeurs appropriées pour chaque ligne.

En utilisant DEFINE_GRADIENT_PALETTE, nous pouvons spécifier la valeur souhaitée pour certaines lignes de notre table. Dans l'exemple ci-dessous, je le fais pour les lignes 0, 128, 224 et 255.
Le résultat est un tableau de 255 lignes dans lequel les différents dégradés de couleurs sont calculés pour moi.

Si j'utilise maintenant ColorFromPalette () pour interroger les valeurs de couleur de la ligne 64, j'obtiens la moyenne entre 0 et 128.

En pratique, la fonction est appelée comme suit:

DEFINE_GRADIENT_PALETTE ( * name_my_palette * ) {
* Numéro de ligne *, * Valeur pour le rouge *, * Valeur pour le vert *, * Valeur pour le bleu *
};
Dans l'exemple, cela ressemble à ceci:
DEFINE_GRADIENT_PALETTE( sunrise_gp ) {   0,     0,  0,  0,   // noir
128,   240,  0,  0,   // rouge
224,   240,240,  0,   // jaune
255,   128,128,240 }; // bleu très clair

Cependant, pour pouvoir utiliser la table, nous devons encore écrire la table "sunrise_gp" dans une variable à l'aide de CRGBPalette16 () ou CRGBPalette256 ().

CRGBPalette256 sunrisePal = sunrise_gp;

Ensuite, nous pouvons déterminer la couleur à une position spécifique (= heatIndex) en utilisant la commande suivante.

CRGB couleur = ColorFromPalette(sunrisePal, heatIndex);

Ensuite, nous utilisons fill_solid () pour définir la couleur de toutes les LED à la couleur déterminée:

fill_solid(leds, NUM_LEDS, couleur);



Voici le croquis complet:

#include <FastLED.h>

#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,   // noir
128,   240,  0,  0,   // rouge
224,   240,240,  0,   // jaune
255,   128,128,240 }; // bleu très clair

nul configuration() {   retard(1000);   FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypiqueLEDStrip);   FastLED.setBrightness(LUMINOSITÉ);   fill_solid(leds, NUM_LEDS, CRGB(0,0,0)); // Tous les pixels désactivés   FastLED.montrer();    lever de soleil(); // Jouer au lever du soleil
}    nul boucle()
{
}

nul lever de soleil() {   statique uint16_t heatIndex = 0; // commence à 0   pour (heatIndex=0; heatIndex<255; heatIndex++) {   CRGBPalette256 sunrisePal = sunrise_gp;   CRGB couleur = ColorFromPalette(sunrisePal, heatIndex);   // remplit la bande entière avec la couleur courante   fill_solid(leds, NUM_LEDS, couleur);   FastLED.montrer();    FastLED.retard(250);   }
}

 

Avec le FastLED.delay, nous pouvons ajuster la vitesse.

Pour implémenter le tout dans un réveil, juste la fonction lever du soleil ()être appelé avant l'alarme elle-même, et le réveil démarre le processus de réveil en douceur.

Si vous avez déjà de l'expérience avec notre module MP3 ou l'ensemble TonUINO, vous pouvez également être convenablement arrosé du bruit de la mer ou du gazouillis des oiseaux.

J'espère que le message d'aujourd'hui vous aidera à maîtriser vos dégradés Neopixel. Tous les arbres de Noël illuminés de néopixels ne doivent pas briller de couleurs arc-en-ciel.

 

 

Projekte für anfänger

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés