MODE 5 — LUX METER

Easy · 1h · Fast kostenlos

Ziel & Anwendung

Drei Servo-Zeiger arbeiten gleichzeitig: S1 zeigt den Live-Lichtwert, S2 hält den Spitzenwert (Schleppzeiger-Prinzip wie ein analoges Maximum-Thermometer) und S3 friert den aktuellen Wert auf Knopfdruck ein. touch2 löscht den Peak-Wert, touch1 aktiviert den Hold-Modus. Der Stepper dreht bei sehr hellem Licht automatisch weg — als Sonnenschutz-Simulation.

  • LDR-Lichtwert in eine approximierte Lux-Skala (0–1000 Lux) umrechnen und als Servo-Zeiger darstellen.
  • Schleppzeiger-Prinzip (Peak-Hold) mit separatem Servo implementieren.
  • Hold-Funktion (Touch-Freeze) für reproduzierbare Einzel-Messungen aufbauen.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoLive-Lux-Zeiger
S2180°-ServoSchleppzeiger (Spitzenwert)
S3180°-ServoHold-Zeiger (eingefrorener Wert)
S4360°-ServoZusätzliche Helligkeits-Anzeige
S5360°-ServoBlendschutz-Effekt bei sehr hellem Licht
S6180°-ServoBlendschutz-Grenzwert-Anzeige
STEPPERSchrittmotorDreht eine Blende vor den Licht-Sensor bei sehr hellem Licht
DCDC-MotorKurze Vibration beim Einfrieren des Messwerts

Materialliste

  • Kartonstreifen je ca. 10 × 2 cm als Zeiger (3 Stück, verschiedene Farben)
  • Halbkreis-Karton Ø ~16 cm als Messskala
  • Beschriftungsstreifen aus Papier für Lux-Werte
  • Filzstift für Skaleneinteilung
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Lux-Meter-Gehäuse mit Drei-Zeiger-Skala aufbauen

    Halbkreis-Skala (Ø 16 cm) aufbauen. Drei Servo-Positionen hintereinander in Tiefe gestaffelt: S1 vorn (Live), S2 dahinter (Peak), S3 ganz hinten (Hold). Skala von 0 bis 1000 Lux beschriften. Lux-Werte approximiert: LDR voll abgedeckt = 0 Lux, volle Beleuchtung = 1000 Lux.

    Check: Ein Skalenblatt mit drei übereinanderliegenden Zeigern — Live (S1), Peak (S2), Hold (S3)

    Tipp: Zeiger in drei verschiedenen Farben: Live=schwarz, Peak=rot, Hold=blau. Auf derselben Skala montiert, leicht versetzt in der Tiefe damit sie nicht aneinander schlagen.

  2. Live-Zeiger S1 kalibrieren

    S1 Servo-Horn aufschrauben, Zeiger flächig aufkleben. Code: lux = (4095.0f - LDR) / 4095.0f * 1000.0f. Servo-Puls: map(constrain((int)lux, 0, 1000), 0, 1000, 1000, 2000). LDR mit Hand abdecken: Zeiger auf 0? Taschenlampe drauf: Zeiger nahe Maximum?

    Check: S1 zeigt 0 bei abgedecktem LDR und Maximum bei direkter Lichtquelle

    Tipp: lux = (4095 - LDR) / 4095 × 1000. LDR-Rohwert steigt bei Dunkelheit — Inversion nötig: 4095 minus LDR.

  3. Schleppzeiger S2 und Hold-Zeiger S3 aufbauen

    S2 zeigt luxPeak: statische Variable die nur steigt. touch2 setzt luxPeak = 0 zurück. S3 zeigt luxHold: if(touch1) luxHold = lux. Beide Zeiger können so dieselbe Skala wie S1 nutzen. Alle drei Servo-Hörner hintereinander staffeln.

    Check: S2 bleibt beim bisherigen Maximum stehen. touch2 löscht ihn. S3 friert bei touch1 ein.

    Tipp: Schleppzeiger-Logik: if(lux > luxPeak) luxPeak = lux — Peak wird nur nach oben verschoben, nie automatisch zurückgesetzt.

  4. Stepper als Sonnenschutz-Mechanismus aufbauen

    Karton-Fähnchen auf Stepper-Mitnehmer-Ansatz kleben. Bei lux >800 und stepper.distanceToGo()==0: stepper.move(20). Fähnchen dreht sich vor LDR und dämpft das Licht — visüll eindrucksvolle Rückkopplung.

    Check: Stepper dreht bei lux >800 automatisch Karton-Blende vor den LDR

    Tipp: Kleines Karton-Fähnchen (3 × 3 cm) auf Stepper-Mitnehmer: dreht sich wie eine Jalousie vor den Sensor.

  5. Leichtgängigkeits-Test ohne Strom

    Alle drei Zeiger von Hand einzeln von Anschlag zu Anschlag drehen: berühren sie sich gegenseitig? Stepper-Fähnchen von Hand drehen: dreht es sich vollständig ohne Blockade? Erst dann einschalten.

    Check: Alle drei Zeiger drehen frei nebeneinander ohne sich zu berühren. Stepper-Fähnchen dreht ungehindert.

    Tipp: Zeiger-Abstand mindestens 2 mm in der Tiefe — sonst schlagen sie bei großen Ausschlägen aneinander.

  6. MODE 5 aktivieren — Lichtstärke messen

    Messgeräte → MODE 5. Hand über LDR: S1 sinkt. Taschenlampe: S1 steigt und S2 folgt auf dem Maximum. Taschenlampe weg: S2 bleibt auf dem Spitzenwert. touch1 drücken: S3 friert aktuellen Wert ein. touch2: Peak zurücksetzen. Licht >800 Lux: Stepper dreht Blende.

    Check: Live-Zeiger folgt dem Licht. Peak-Zeiger bleibt beim Maximum. Hold friert auf touch1 ein.

    Tipp: Taschenlampe kurz auf LDR halten und wieder wegnehmen: S2 bleibt auf dem Maximalwert stehen. touch2 löscht ihn.

Troubleshooting

  • S1 und S2 zeigen immer identischen Wert — Peak-Funktion unklar — Peak-Zeiger setzt sich nur mit touch2 zurück. Nach Reset: zuerst Licht variieren (z.B. Taschenlampe kurz draufhalten), dann Licht wegnehmen — jetzt bleibt S2 auf dem Maximalwert während S1 zurückfällt.
  • Stepper dreht bei normaler Raumbeleuchtung schon — Schwellwert 800 Lux ist für Sonnenlicht ausgelegt. Bei sehr hellem Bürolicht (500 Lux LDR) den Schwellwert anpassen: if(lux > 900) statt 800.

Modifikationen & Sicherheit

  • Pro-Tipp: Zweite Skala auf der Rückseite des Skalenblatts für Wh/m² (Solarertrag) — einfach Lux × 0,0079 für grobe Abschätzung.
  • Erweiterung: Mehrere LDR-Messungen mitteln für stabileren Messwert (anti-flicker bei Kunstlicht mit 50 Hz).
  • Sicherheit: Kein direkter Laserstrahl oder sehr helle LED auf den LDR — dauerhafte Überbelichtung degradiert den Sensor.

Wichtige Code-Teile

// LDR → Lux (approximiert)
float lux = (4095.0f - LDR) / 4095.0f * 1000.0f;
// Peak-Hold
if(lux > luxPeak) luxPeak = lux;
if(touch2) luxPeak = 0;         // Peak-Reset
if(touch1) luxHold = lux;       // Hold einfrieren
// S1 (180°): Live-Lux-Zeiger
servocontroller.setServoPulse(1, map(constrain((int)lux, 0, 1000), 0, 1000, 1000, 2000));
// S2 (180°): Schleppzeiger (Peak bleibt)
servocontroller.setServoPulse(2, map(constrain((int)luxPeak, 0, 1000), 0, 1000, 1000, 2000));
// S3 (180°): Hold-Zeiger
servocontroller.setServoPulse(3, map(constrain((int)luxHold, 0, 1000), 0, 1000, 1000, 2000));
// Stepper: Sonnenschutz bei > 800 Lux
if(lux > 800 && stepper.distanceToGo() == 0) stepper.move(20);

Ähnliche Projekte

  • MODE 6 — PEAK HOLD — Ein universeller Peak-Detektor für fünf verschiedene Sensoren: Encoder-Button wechselt den aktiven Sensor (Temperatur, Distanz, Helligkeit, Spannung, Feuchte), S1 zeigt den Live-Wert, S2 hält das bisherige Maximum und S3 das bisherige Minimum — alle gleichzeitig auf derselben Skala. touch2 löscht alle gespeicherten Extremwerte.
  • MODE 4 — RANGEFINDER — Der Ultraschall-Sensor wird zum Distanzmessgerät mit drei Skalen: S1 zeigt den Grobbereich 0–200 cm, S2 den zyklischen Feinbereich (jede 20-cm-Dekade wiederholt), S3 den kritischen Nahbereich. Der Stepper fährt wie ein mechanisches Maßband proportional zur Distanz — und DC-Motor plus Buzzer warnen bei Annäherung unter 10 cm.
  • MODE 7 — DIFF METER — Zwei Sensor-Kanäle werden verglichen: S1 zeigt die Differenz von Sensor A zu einem gesetzten Referenzpunkt (touch1 = Nullpunkt setzen), S2 zeigt Sensor A live, S3 zeigt Sensor B live. EncoderButton wechselt Sensor A, touch2 wechselt Sensor B. Der DC-Motor warnt wenn die Differenz zwischen A und B einen Schwellwert überschreitet.