Menu
CoddyTech

Barre du niveau de lumière

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

L’anneau peut afficher un nombre sous forme de barre : plus le nombre est grand, plus il y a de pixels allumés. Ici, le nombre correspond au niveau de luminosité.

Comme dans la leçon sur la veilleuse, la valeur mesurée par le capteur de lumière sur A0 diminue quand la luminosité augmente. Inverse d’abord la valeur, pour qu’un nombre plus grand signifie plus de lumière :

int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);

Efface ensuite l’anneau et allume les pixels de 0 à count moins 1 :

ring.clear();
for (int i = 0; i < count; i++) {
  ring.setPixelColor(i, yellow);
}
ring.show();

clear() permet à la barre de rétrécir : sans cela, les pixels allumés quand il faisait clair restent allumés quand il fait sombre.

challenge icon

Défi

Moyen

Le capteur de lumière est connecté à A0 et l’anneau à la broche 6. Crée une barre lumineuse :

  • inverse la valeur de lecture pour qu’une lumière plus forte donne un nombre plus grand
  • convertis-la en une valeur comprise entre 0 et 16 pixels
  • efface l’anneau, allume ce nombre de pixels à partir du pixel 0, puis affiche le résultat

Appuie sur Run, modifie la lumière sur la carte, puis appuie 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 yellow = ring.Color(255, 160, 0);

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

void loop() {
  int reading = analogRead(A0);  // diminue lorsque la luminosité augmente
  // allumer davantage de pixels quand la luminosité augmente
  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