Lichtmesser
Teil des Abschnitts Eingaben der Arduino-Journey von Coddy. Lektion 22 von 22.
In dieser Lektion fügst du alles zusammen: einen Lichtmesser, der die Lichtstärke als Prozentwert ausgibt und auf einem Balken aus drei LEDs anzeigt, wie die Signalbalken eines Telefons.
Teile die Aufgabe in Funktionen auf, von denen jede eine Aufgabe erledigt, damit loop() wie eine Beschreibung aussieht:
void loop() {
int percent = lightPercent();
showLevel(percent);
// den Prozentwert ausgeben
}lightPercent() liest den Lichtwert des Lichtmoduls über AO aus und gibt einen Wert von 0 (dunkel) bis 100 (hell) zurück. AO sinkt, wenn die Lichtstärke steigt, also bilde den Wert umgekehrt ab: map(reading, 0, 1023, 100, 0) wandelt 1023 in 0 und 0 in 100 um.
showLevel(int percent) weist jeder LED des Balkens einen eigenen Schwellenwert zu: Die erste leuchtet oberhalb von 25, die zweite oberhalb von 50, die dritte oberhalb von 75. Jede braucht ihr eigenes else, damit der Balken wieder schrumpfen kann, wenn das Licht schwächer wird.
Aufgabe
MittelDer AO-Anschluss des Lichtmoduls ist mit A0 verbunden, und die LEDs der Balkenanzeige sind an den Pins 10, 11 und 12 angeschlossen:
int lightPercent(): 0 bei Dunkelheit, 100 bei hellem Lichtvoid showLevel(int percent): Pin 10 leuchtet über 25, Pin 11 über 50, Pin 12 über 75- Rufe in
loop()beide Funktionen auf, gib den Prozentwert aus und warte 200 ms
Drücke Run, bewege den Lichtregler und klicke dann auf Check.
Probier es selbst
const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;
// Schreibe int lightPercent() hier
// Schreibe void showLevel(int percent) hier
void setup() {
pinMode(lowPin, OUTPUT);
pinMode(midPin, OUTPUT);
pinMode(highPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Lies den Lichtwert als Prozentwert ein, zeige ihn auf der Balkenanzeige an, gib ihn aus und warte 200 ms
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Eingaben
Übe selbstständig: Arduino-Playground