MODE 7 — SEQ DELAY

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Drei Servo-Klappen öffnen sich nacheinander mit individuell einstellbaren Verzögerungen: d1, d2 und d3 können per Encoder und Touch-Auswahl frei konfiguriert werden. JoystickButton startet die Sequenz — perfekt als automatische Briefkasten-Sortierklappe, Staffelrennen-Startanlage oder Theatervorhang.

  • Drei unabhängige Verzögerungs-Zeiten (d1/d2/d3) per Encoder konfigurieren.
  • Millis-basierte Sequenz-Steuerung mit JoystickButton-Start implementieren.
  • Drei Servo-Klappen S1/S2/S3 sequenziell öffnen — jede zum exakten Verzögerungs-Zeitpunkt.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoErste Klappe, öffnet nach Verzögerung d1
S2180°-ServoZweite Klappe, öffnet nach Verzögerung d2
S3180°-ServoDritte Klappe, öffnet nach Verzögerung d3 und beendet die Sequenz
S4360°-ServoDreht durchgehend, solange die Sequenz läuft
S5360°-ServoGegenläufig zu S4, stoppt bei Sequenzende
S6180°-ServoZeigt, welche der drei Stufen gerade aktiv ist
STEPPERSchrittmotorZählt abgeschlossene Sequenzdurchläufe
DCDC-MotorLäuft ab der letzten Stufe mit

Materialliste

  • Drei Karton-Klappen je ca. 8 × 6 cm
  • Karton-Gehäuse ca. 20 × 10 cm als Sortier-Box oder Startanlage
  • Filzstift für Nummerierung (1, 2, 3) auf den Klappen
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Drei Klappen-Mechanik aufbauen

    Karton-Gehäuse (20 × 10 cm) mit drei Schlitzen oder Öffnungen. Jede Klappe (8 × 6 cm) direkt auf Plastik-Horn von S1, S2, S3 kleben — flächig und mittig. In Ruhe (1000 µs): Klappe geschlossen. Bei Auslösung (2000 µs): Klappe öffnet 90°. Drei nebeneinander sichtbar.

    Check: S1, S2, S3 haben je eine Karton-Klappe die bei 2000 µs öffnet und bei 1000 µs schließt.

    Tipp: Klappen aus stabilem Karton — dünner Karton wölbt sich. Klappe direkt auf Servo-Horn kleben, nicht nur an die Seite.

  2. Verzögerungs-Zeiten d1/d2/d3 konfigurieren

    Display zeigt 'D1: 2.0s D2: 4.0s D3: 6.0s'. touch1 halten und Encoder drehen: d1 verstellen. touch2 halten und Encoder drehen: d2 verstellen. Keine Touch-Fläche berühren und Encoder drehen: d3 verstellen. Sinnvoller Bereich: 0,5–20 s pro Kanal.

    Check: touch1 gehalten + Encoder ändert d1. touch2 gehalten + Encoder ändert d2. Ohne Touch ändert Encoder d3. Nur vor dem Start einstellbar.

    Tipp: Die Einstellung funktioniert nur, solange die Sequenz noch nicht läuft — während des Ablaufs sind die Zeiten eingefroren.

  3. JoystickButton als Sequenz-Start

    JoystickButton drücken: Sequenz startet. Bei d1 erreicht: S1 fährt sanft auf. Bei d2: S2. Bei d3: S3 fährt auf — ab hier läuft der DC-Motor mit und der Buzzer piept kurz. EncoderButton danach drücken: Sequenz beendet, alle Klappen fahren zurück, bereit für die nächste Runde.

    Check: JoystickButton startet Sequenz. Klappen öffnen sanft (nicht schlagartig) zu ihren d-Zeitpunkten. S3-Öffnung + EncoderButton beendet die Runde.

    Tipp: Die Klappen fahren sanft in rund vier Zehntelsekunden auf statt schlagartig umzuschlagen — wirkt ruhiger und schont die Mechanik.

  4. Leichtgängigkeits-Test ohne Strom

    S1, S2, S3 von Hand auf 1000 und 2000 µs bewegen: Klappe klemmt nicht? Gehäuse-Schlitze groß genug? Alle drei nacheinander testen. S4/S5-Rädchen, S6-Klappe und Stepper ebenfalls von Hand prüfen. Heißkleber-Rückstände auf Servo-Horn entfernen falls vorhanden. Erst dann einschalten.

    Check: Alle drei Klappen öffnen und schließen frei ohne Klemmen an Gehäuse-Kanten.

    Tipp: Schlitze im Gehäuse müssen 2 mm breiter als die Klappe sein — Spielraum verhindert Klemmen bei Karton-Verformung.

  5. MODE 7 aktivieren — Sequenz auslösen

    Timer → MODE 7. d1=2s, d2=4s, d3=6s einstellen. JoystickButton: Sequenz startet. S4/S5 drehen von Anfang an, S6 zeigt die aktuelle Stufe. Nach 2s: S1 öffnet, Ton setzt ein. Nach 4s: S2 öffnet. Nach 6s: S3 öffnet, DC-Motor läuft an, Ton wird zum schnellen Piep-Alarm — Sequenz komplett. EncoderButton: alle Klappen zurück, Stepper zählt die Runde mit, bereit für nächste Runde.

    Check: JoystickButton startet. S1 öffnet nach d1, S2 nach d2, S3 nach d3. Ab S1 ertönt ein Dauerton, ab S3 ein schneller Piep-Alarm.

    Tipp: Test mit kurzen Zeiten: d1=1s, d2=2s, d3=3s. Alle drei Klappen öffnen in einer Sekunde Abstand.

  6. Anwendung: Staffelrennen-Startanlage

    Staffelrennen: Klappe 1 öffnet Spur A zuerst, dann B, dann C mit Zeitversatz. Jede Klappe hat Farbmarkierung (rot/gelb/grün). Ab der ersten Klappe ertönt ein Dauerton, bei der letzten Klappe wechselt er zum schnellen Alarm-Piep. JoystickButton = Startpistole.

    Check: Drei verschiedene d-Werte für verzögerten Staffel-Start gesetzt. Jede Klappe öffnet eine Startspur.

    Tipp: d1=0,5s, d2=0,5s+Staffelzeit, d3=0,5s+2×Staffelzeit. Oder alle gleich für gleichzeitigen Start.

Troubleshooting

  • Alle drei Klappen öffnen gleichzeitig statt nacheinander — d1s/d2s/d3s müssen unterschiedliche Werte haben. Bei d1=d2=d3 öffnen alle gleichzeitig — das ist korrekt. Verschiedene Werte einstellen: d1=1, d2=3, d3=6 für sichtbaren Zeitversatz.
  • EncoderButton beendet die Sequenz nicht — Das Beenden funktioniert nur, sobald S3 bereits geöffnet hat (letzte Stufe erreicht). Vorher hat der EncoderButton keine Wirkung — erst d3 abwarten, dann EncoderButton drücken.

Modifikationen & Sicherheit

  • Pro-Tipp: Alle drei d-Werte im EEPROM speichern — Sequenz-Setup bleibt nach Neustart erhalten.
  • Erweiterung: Vierten Kanal (DC-Motor) als Abschluss-Signal hinzufügen — Motor dreht nach d3 für 1 Sekunde.
  • Sicherheit: Klappe nicht gegen Anschlag fahren — Servo-Endanschlag maximal 2000 µs, nie höher.

Wichtige Code-Teile

// Verzögerungs-Zeiten konfigurieren (nur wenn Sequenz nicht läuft)
if(!seqRunning) {
    if(touch1) d1s = constrain(d1s + EncoderPos * 0.5f, 0.5f, 20.0f);
    else if(touch2) d2s = constrain(d2s + EncoderPos * 0.5f, 0.5f, 20.0f);
    else d3s = constrain(d3s + EncoderPos * 0.5f, 0.5f, 20.0f);
    EncoderPos = 0;
}
// JoystickButton: Sequenz starten
if(isButtonPressed(JoystickButton, lastJoyBtn6)) { seqRunning = true; seqStart = millis(); }
float elapsed = seqRunning ? (millis() - seqStart) / 1000.0f : 0;
bool s1act = seqRunning && elapsed >= d1s;
bool s2act = seqRunning && elapsed >= d2s;
bool s3act = seqRunning && elapsed >= d3s;
// Sequenzielles, sanftes Öffnen
if(!ismoving[1]) servocontroller.startMove(1, s1act ? 2000 : 1000, 400);
if(!ismoving[2]) servocontroller.startMove(2, s2act ? 2000 : 1000, 400);
if(!ismoving[3]) servocontroller.startMove(3, s3act ? 2000 : 1000, 400);
// Ton- und Motor-Logik
if(s3act) { Buzzer.setMode(SHORT_BLINK); setMotorspeed(40); }
else if(s1act) { Buzzer.setValue(80); setMotorspeed(0); }
else { Buzzer.setValue(0); setMotorspeed(0); }
// S4/S5 waehrend der Sequenz, S6 zeigt aktive Stufe
servocontroller.setServoPulse(4, seqRunning ? 1700 : 1500);
servocontroller.setServoPulse(5, seqRunning ? 1300 : 1500);
servocontroller.setServoPulse(6, s3act ? 2000 : s2act ? 1650 : s1act ? 1300 : 1000);
// EncoderButton: Sequenz beenden (erst wenn S3 aktiv), Stepper zaehlt Durchlaeufe
if(s3act && RemoteEncoderBtn) { seqRunning = false; stepper.move(15); }

Ähnliche Projekte

  • MODE 4 — CHAOS — Ein völlig unvorhersehbarer Timer: zufällige Aktuatoren (S1, S2, S3, DC-Motor, Stepper oder — selten — S4/S5) werden in zufälligen Abständen (0,5–4 Sekunden) für zufällige Dauer (200–1500 ms) aktiviert. Niemand weiß was als nächstes passiert — ideal als Haustier-Überraschungsbox oder interaktives Kunstobjekt.
  • MODE 3 — PERIODIC — Alle Aktuatoren bewegen sich in einem programmierbaren Rhythmus: Encoder stellt das Intervall (1–60 Sekunden), JoystickButton verlängert die Aktiv-Phase. Fünf rotierende Phasen wechseln sich ab — mal S1/S2, mal S1/S3, mal Stepper/DC-Motor, mal S4, mal S5. Der Rest setzt alle Servos in Mittelposition zurück.
  • MODE 1 — COUNTDOWN — Ein mechanischer Countdown-Timer: S1 zeigt die verbleibende Zeit als Zeiger, S2 dreht sich gegenläufig wie eine visülle Sanduhr. Encoder stellt die Zeit (5–600 Sekunden), JoystickButton startet oder stoppt. Bei Ablauf: S3 fährt auf Alarm-Fahne, Stepper vibriert als mechanischer Alarm und Buzzer ertönt dauerhaft.