Lichtstärke-Balken
Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 22 von 24.
Der Ring kann eine Zahl als Balken anzeigen: Je größer die Zahl, desto mehr Pixel leuchten. Hier ist die Zahl der Lichtwert.
Wie in der Lektion zum Nachtlicht sinkt der Messwert des Lichtsensors an A0, wenn die Helligkeit zunimmt. Drehe ihn zuerst um, damit eine größere Zahl mehr Licht bedeutet:
int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);Leere dann den Ring und schalte die Pixel von 0 bis count minus 1 ein:
ring.clear();
for (int i = 0; i < count; i++) {
ring.setPixelColor(i, yellow);
}
ring.show();Mit clear() kann der Balken kürzer werden: Ohne diesen Aufruf bleiben Pixel, die bei Helligkeit leuchteten, auch dann an, wenn es dunkel wird.
Aufgabe
MittelDer Lichtsensor ist an A0 und der Ring an Pin 6. Erstelle eine Lichtleiste:
- kehre den Messwert um, sodass mehr Licht eine größere Zahl ergibt
- ordne ihn 0 bis 16 Pixeln zu
- lösche den Ring, beleuchte so viele Pixel ab Pixel 0 und zeige es an
Drücke Run, ändere das Licht auf der Platine und klicke dann auf Check.
Probier es selbst
#include <Adafruit_NeoPixel.h>
// 16 Pixel, Daten an Pin 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); // sinkt, wenn die Helligkeit zunimmt
// Je heller es ist, desto mehr Pixel aufleuchten lassen
delay(50);
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Displays und Sensoren
Übe selbstständig: Arduino-Playground