Menu
CoddyTech

Luminosité des NeoPixels

Fait partie de la section Écrans et capteurs du Journey Arduino de Coddy. Leçon 16 sur 24.

Les NeoPixels sont lumineux. ring.setBrightness(level) les atténue tous en même temps : 0 signifie éteint, 255 correspond à la luminosité maximale.

La luminosité est réglée en mettant à l’échelle les couleurs stockées dans la mémoire de la carte. Avec une luminosité de 64, soit environ un quart, un rouge de 255 est stocké sous la valeur 64. Le hic : la mise à l’échelle fait perdre des détails. Réglez la luminosité sur 0 et toutes les couleurs stockées deviennent 0. La rétablir ensuite ne laisse plus aucune valeur à mettre à l’échelle, et l’anneau reste éteint.

Ainsi, chaque fois que la luminosité change, définissez les couleurs à nouveau après :

ring.setBrightness(level);
ring.fill(white);   // stocké à la nouvelle luminosité
ring.show();

Les couleurs définies après setBrightness() sont mises à l’échelle au moment de leur stockage.

challenge icon

Défi

Moyen

Le bouton sur A0 sert de variateur pour l’anneau :

  • transforme la valeur lue en luminosité de 0 à 255 avec map()
  • règle-la avec ring.setBrightness()
  • puis remplis l’anneau en blanc et affiche-le à chaque passage dans loop()

Appuie sur Run et tourne le bouton, puis sur Check.

Essayez vous-même

#include <Adafruit_NeoPixel.h>

// 16 pixels, données sur la broche 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);

uint32_t white = ring.Color(255, 255, 255);

void setup() {
  ring.begin();
}

void loop() {
  int reading = analogRead(A0);
  // règle la luminosité à l’aide du bouton, puis allume tout l’anneau en blanc
  delay(50);
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Écrans et capteurs

Entraînez-vous par vous-même : Playground Arduino