MODE 10 — System-Check

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Drei Sensoren werden gleichzeitig überwacht — zu heiß, zu nah oder zu schief, und die Alarm-Flagge wedelt los. Ein Zeiger verrät sofort, welcher der drei Grenzwerte gerade ausgelöst hat.

  • Drei Sensor-Grenzwerte gleichzeitig überwachen und zu einem gemeinsamen Alarm zusammenfassen.
  • Ein Zeiger zeigt an, welcher Grenzwert konkret verantwortlich ist.
  • Ein Zähler merkt sich, wie viele Alarme insgesamt aufgetreten sind.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoAlarm-Flagge — wedelt bei jedem aktiven Alarm
S2180°-ServoTemperatur-Zeiger
S3180°-ServoDistanz-Zeiger
S4360°-Servo„System aktiv“-Anzeige — dreht durchgehend, stoppt bei Alarm
S5360°-ServoBeschleunigt sich mit zunehmender Kippneigung
S6180°-ServoUrsachen-Zeiger — zeigt, welcher Grenzwert ausgelöst hat
STEPPERSchrittmotorZählt jeden neuen Alarm auf einer kleinen Skala mit
DCDC-MotorVibriert, solange ein Alarm aktiv ist

Materialliste

  • 3 Kartonzeiger ca. 6 × 1 cm für S2/S3/S6
  • 1 Kartonfahne ca. 6 × 2 cm für die Alarm-Flagge S1
  • 1 Kartonbasis

Step-by-Step Tutorial

  1. Alarm-Flagge und Zeiger bauen

    Schraube auf jeden der vier Servos ein Horn und klebe Zeiger bzw. Flagge flächig darauf. Beschrifte die Basis: Alarm, Temp, Distanz, Ursache.

    Check: S1 (Flagge), S2 (Temperatur), S3 (Distanz) und S6 (Ursache) sitzen fest und bewegen sich frei

    Tipp: Die Flagge braucht etwas mehr Fläche als die Zeiger, damit das Wedeln gut sichtbar ist.

  2. System-Anzeige und Beschleuniger montieren

    Klebe kleine Scheiben auf die beiden verbleibenden 360°-Servos — eine als durchgehende „System aktiv“-Anzeige, eine als Kippneigungs-Anzeige, die sich mit stärkerer Neigung schneller dreht.

    Check: Beide 360°-Servos drehen sich frei, wenn du sie von Hand testest

  3. Leichtgängigkeits-Test

    Jedes Teil einmal komplett durchbewegen. Erst wenn alles frei läuft, ProtoPeaks einschalten.

    Check: Alle sechs Servos bewegen sich frei von Hand

  4. Mode 10 starten — Normalbetrieb beobachten

    Wähle im Menü EasySensors den zehnten Modus. Im Normalbetrieb dreht die System-Anzeige gleichmäßig weiter, die Zeiger für Temperatur und Distanz folgen den aktuellen Messwerten.

    Check: System-Anzeige dreht durchgehend, Temperatur- und Distanz-Zeiger zeigen aktuelle Werte, kein Alarm aktiv

  5. Alarm auslösen und Ursache ablesen

    Löse einen Alarm aus — zum Beispiel Hand sehr nah an den Sensor halten. Die Flagge beginnt zu wedeln, die System-Anzeige stoppt, ein spürbarer Rüttler setzt ein und der Ursachen-Zeiger zeigt exakt, welcher Grenzwert verantwortlich ist. Der Schrittmotor rückt bei jedem neuen Alarm ein Stück weiter.

    Check: Hand sehr nah an den Sensor halten (< 8 cm) oder Board stark kippen (> 60°): Flagge wedelt, System-Anzeige stoppt, Ursachen-Zeiger zeigt auf die richtige Ursache, Zähler rückt vor

    Tipp: Bei mehreren gleichzeitigen Alarmen gilt eine feste Reihenfolge: Temperatur vor Distanz vor Neigung.

Troubleshooting

  • Alarm-Flagge wedelt dauerhaft — Einer der drei Grenzwerte ist dauerhaft überschritten. Ursachen-Zeiger ablesen und die entsprechende Störung beheben (z. B. Sensor freilegen).
  • Ursachen-Zeiger zeigt die falsche Ursache — Bei mehreren gleichzeitigen Alarmen gewinnt immer die höhere Priorität (Temperatur vor Distanz vor Neigung) — das ist so gewollt, kein Fehler.

Modifikationen & Sicherheit

  • Pro-Tipp: Die drei Grenzwerte (Temperatur, Distanz, Neigung) im Code nach Bedarf verschärfen oder entschärfen.
  • Erweiterung: Den Alarm-Zähler regelmäßig zurücksetzen, um eine Tages-Statistik zu simulieren.
  • Sicherheit: Reiner Anzeige-Modus, keine gefährlichen Bewegungen — ideal auch für den Dauerbetrieb.

Wichtige Code-Teile

// Drei Grenzwerte gleichzeitig überwachen
bool tempAlarm = (temperature > 40);
bool distAlarm = (distanceCM > 0 && distanceCM < 8);
bool tiltAlarm = (abs(GyroX) > 60 || abs(GyroY) > 60);
bool anyAlarm = tempAlarm || distAlarm || tiltAlarm;
// S1: Alarm-Flagge wedelt
if(anyAlarm) {
    servocontroller.setServoPulse(1, 1500 + (int)(sin(millis() * 0.02) * 500));
    Buzzer.setMode(HEARTBEAT);
} else servocontroller.setServoPulse(1, 1000);
// S6: Ursache mit Priorität Temp > Dist > Tilt
uint16_t causePulse = tempAlarm ? 2000 : distAlarm ? 1700 : tiltAlarm ? 1300 : 1000;
servocontroller.setServoPulse(6, causePulse);
// Stepper: zählt jeden NEUEN Alarm
if(anyAlarm && !lastAnyAlarm) stepper.move(15);

Ähnliche Projekte

  • MODE 1 — GYRO TRACK — Drei Servos spiegeln die Lage von ProtoPeaks in Echtzeit auf allen Achsen — kippe das Board, die Zeiger folgen sofort. Bei Neigung über 45° warnt der Buzzer.
  • MODE 2 — CLIMATE — Temperatur, Luftfeuchtigkeit, Druck und Helligkeit live auf Servo-Zeigern und Display — plus automatischer DC-Lüfter wenn es zu warm wird.
  • MODE 3 — PROX+ENC — Distanz wird sichtbar: Zwei Servos zeigen Nähe- und Fernbereich des Ultraschall-Sensors an, der Stepper folgt dem Encoder-Eingang, und der DC-Alarm wird lauter je näher das Objekt kommt.