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
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Alarm-Flagge — wedelt bei jedem aktiven Alarm |
| S2 | 180°-Servo | Temperatur-Zeiger |
| S3 | 180°-Servo | Distanz-Zeiger |
| S4 | 360°-Servo | „System aktiv“-Anzeige — dreht durchgehend, stoppt bei Alarm |
| S5 | 360°-Servo | Beschleunigt sich mit zunehmender Kippneigung |
| S6 | 180°-Servo | Ursachen-Zeiger — zeigt, welcher Grenzwert ausgelöst hat |
| STEPPER | Schrittmotor | Zählt jeden neuen Alarm auf einer kleinen Skala mit |
| DC | DC-Motor | Vibriert, 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
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.
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
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
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
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.