MODE 9 — WORK/REST

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Ein mechanischer Kurz-Pomodoro-Timer: S1 zeigt den Arbeitsphase-Fortschritt, S2 die Pause-Phase. Arbeitszeit (bis zu 2 Minuten) und Pausenzeit (bis zu 1 Minute) werden separat per Encoder und Touch eingestellt — DC-Motor läuft nur in der Arbeitsphase, BREATHING-Buzzer in der Pause für ruhiges Atemrhythmus-Signal.

  • Arbeitszeit und Pausenzeit separat per Encoder und Touch-Auswahl konfigurieren.
  • S1 Arbeitszeiger und S2 Pausezeiger unabhängig voneinander animieren.
  • DC-Motor nur in Arbeitsphase aktiv, BREATHING-Buzzer nur in Pause — zwei sensorisch trennbare Modi.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoArbeitsphase-Fortschritt
S2180°-ServoPausephase-Fortschritt
S3180°-ServoGesamt-Fortschritt des laufenden Zyklus (Arbeit + Pause)
S4360°-ServoDreht nur während der Arbeitsphase
S5360°-ServoDreht nur während der Pausephase
S6180°-ServoZeigt, ob gerade Arbeits- oder Pausenzeit eingestellt wird
STEPPERSchrittmotorZählt abgeschlossene Arbeits-/Pausen-Zyklen
DCDC-MotorLäuft nur in der Arbeitsphase

Materialliste

  • Zwei Halbkreis-Skalen Ø 12 cm (eine für Arbeit, eine für Pause)
  • Kartonstreifen je ca. 10 × 2 cm als Zeiger (2 Stück)
  • Kleiner Fortschrittsbalken aus Karton für S3 (Gesamtfortschritt des Zyklus)
  • Grüner/roter Filzstift für Arbeit/Pause-Farbcodierung
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Zwei Phasen-Zifferblätter aufbauen

    Zwei Halbkreis-Skalen nebeneinander. Linke Skala (grün): 0 bis workSec als Arbeit-Fortschritt für S1. Rechte Skala (blau): 0 bis restSec für S2. S3 in der Mitte als vertikaler Zeiger: zeigt den Fortschritt des gesamten aktuellen Zyklus (Arbeit + Pause zusammen) und läuft bei jedem neuen Zyklus wieder von vorn los.

    Check: S1 auf grün beschrifteter Arbeit-Skala. S2 auf blau/grau beschrifteter Pause-Skala. Klar unterscheidbar.

    Tipp: Farbcodierung ist wichtig: grüne Skala = Arbeitsphase aktiv, blaue Skala = Pause aktiv. S3 als schmaler Gesamtbalken zwischen beiden.

  2. Arbeits- und Pausenzeit konfigurieren

    touch1 gedrückt halten und Encoder drehen: workSec einstellen (5–120 s). Encoder ohne touch1 drehen: restSec einstellen (2–60 s) — touch2 dient hier nur der S6-Anzeige, nicht der Auswahl. Display zeigt 'W: 25 R: 5'. Sinnvoller Test-Wert: 30 s Arbeit, 10 s Pause.

    Check: touch1 gehalten + Encoder ändert Arbeitszeit (5–120 s). Ohne touch1 ändert Encoder die Pausenzeit (2–60 s).

    Tipp: Das ist ein Kurzzeit-Pomodoro zum Ausprobieren, nicht die echten 25/5-Minuten-Blöcke — die Zeiten sind bewusst auf maximal 2 bzw. 1 Minute begrenzt.

  3. Phasenlogik und Stepper-Zykluszähler verstehen

    Zyklus-Position läuft von 0 bis (workSec+restSec) Sekunden. Solange sie kleiner als workSec ist: Arbeitsphase. Danach: Pause. S3 zeigt diesen Gesamtfortschritt als einen Balken, der bei jedem neuen Zyklus wieder bei 0 beginnt. Der Stepper erkennt den Sprung zurück auf 0 und rückt dann ein kleines Stück weiter — so zählt er abgeschlossene Zyklen rein mechanisch mit, unabhängig von den Servo-Zeigern.

    Check: Nach workSec: Pause-Phase beginnt. Nach restSec: neue Arbeitsphase. Stepper rückt bei jedem neuen Zyklus ein Stück weiter.

    Tipp: S3 zeigt den Fortschritt des GESAMTEN Zyklus (Arbeit+Pause) als einen durchlaufenden Balken — nicht die Anzahl der Zyklen. Die Zyklen zählt stattdessen der Stepper mechanisch mit.

  4. Leichtgängigkeits-Test ohne Strom

    S1 von Hand auf 1000 und 2000 µs: Zeiger frei auf grüner Skala? S2 analog auf blauer Skala: frei? S3 von Hand: Fortschrittszeiger frei? S4/S5-Rädchen und Stepper-Zähler ebenfalls prüfen. DC-Motor-Welle frei drehbar? Erst dann einschalten.

    Check: S1, S2, S3 drehen frei. Alle Zeiger überstreichen ihre Skala ohne Klemmen.

    Tipp: S1 und S2 müssen unabhängig voneinander frei drehen — prüfen dass sie sich nicht berühren oder überlappen.

  5. MODE 9 aktivieren — Arbeits-/Pausen-Takt laufen lassen

    Timer → MODE 9. Work=30 s, Rest=10 s einstellen. S1 zeigt Arbeitsfortschritt, DC-Motor läuft leise, S4-Rädchen dreht mit. Nach 30 s: Buzzer wechselt auf BREATHING, DC-Motor stoppt, S2 zeigt Pause-Fortschritt, S5-Rädchen dreht statt S4. Nach 10 s: nächste Arbeitsphase automatisch — der Takt läuft endlos weiter.

    Check: S1 läuft in Arbeitsphase, DC-Motor dreht. Bei Pause: S2 läuft, Buzzer BREATHING. Phasen wechseln automatisch, ohne Start-Knopf.

    Tipp: Der Takt läuft sofort und dauerhaft — es gibt keinen Start/Stopp-Knopf. Zum Testen kurze Zeiten wählen: Work=30s, Rest=10s.

  6. Gesamtfortschritt S3 und Stepper-Zykluszähler beobachten

    S3 läuft während jedes Zyklus einmal komplett von links nach rechts durch — startet bei jedem neuen Zyklus wieder bei links. Der Stepper erkennt den Sprung zurück und rückt seinen eigenen Zeiger ein kleines Stück weiter: so lässt sich ablesen, wie viele Arbeits-/Pausen-Zyklen insgesamt schon gelaufen sind. S6 zeigt währenddessen an, ob gerade Arbeits- oder Pausenzeit per Touch verstellt wird.

    Check: S3 durchläuft bei jedem Zyklus einmal den vollen Hub. Der Stepper rückt bei jedem Zyklus-Ende ein kleines Stück weiter.

    Tipp: S3 ist ein Fortschrittsbalken pro Zyklus, kein Zähler — die Gesamtzahl der Zyklen liest man am Stepper-Zeiger ab.

Troubleshooting

  • Pausenzeit ändert sich, obwohl touch2 gar nicht berührt wird — Die Pausenzeit ist der Standardfall: Nur wenn touch1 gehalten wird, ändert der Encoder die Arbeitszeit — in jedem anderen Fall (auch ohne jede Berührung) ändert er die Pausenzeit. Encoder beim Einstellen der Arbeitszeit also immer touch1 gedrückt halten.
  • S2 Pause-Zeiger zeigt auch in der Arbeitsphase Bewegung — In der Arbeitsphase muss setServoPulse(2, 1000) explizit aufgerufen werden — ohne diesen Reset bleibt S2 beim letzten Pause-Wert stehen und scheint sich zu 'bewegen'.

Modifikationen & Sicherheit

  • Pro-Tipp: Arbeits- und Pausenzeit im EEPROM speichern — Einstellung bleibt nach Neustart erhalten.
  • Erweiterung: Stepper-Zeiger mit größerer Skala versehen, um viele Zyklen auf einen Blick abzulesen.
  • Sicherheit: DC-Motor nicht dauerhaft über mehrere Stunden laufen lassen — kurze Motor-Pausen einplanen.

Wichtige Code-Teile

// Arbeits-/Pausenzeit konfigurieren: touch1 = Arbeitszeit, sonst Pausenzeit
if(touch1) workSec = constrain(workSec + EncoderPos * 1.0f, 5.0f, 120.0f);
else        restSec = constrain(restSec + EncoderPos * 1.0f, 2.0f, 60.0f);
EncoderPos = 0;
// Phasenlogik
uint32_t totalCycle = (uint32_t)((workSec + restSec) * 1000);
uint32_t cyclePos2 = millis() % totalCycle;
bool isWork = cyclePos2 < (uint32_t)(workSec * 1000);
float phase2 = isWork ? cyclePos2 / (workSec*1000.0f) : (cyclePos2 - workSec*1000) / (restSec*1000.0f);
// S1/S2: Phasen-Zeiger, S3: Gesamtfortschritt des Zyklus
servocontroller.setServoPulse(1, isWork ? map((int)(phase2*1000), 0, 1000, 1000, 2000) : 1000);
servocontroller.setServoPulse(2, !isWork ? map((int)(phase2*1000), 0, 1000, 1000, 2000) : 1000);
servocontroller.setServoPulse(3, map(cyclePos2, 0, totalCycle, 1000, 2000));
setMotorspeed(isWork ? 50 : 0);
if(isWork) Buzzer.setValue(0); else Buzzer.setMode(BREATHING);
// S4/S5: aktiv je nach Phase, S6: zeigt Touch-Auswahl
servocontroller.setServoPulse(4, isWork ? 1700 : 1500);
servocontroller.setServoPulse(5, !isWork ? 1300 : 1500);
servocontroller.setServoPulse(6, touch1 ? 2000 : touch2 ? 1000 : 1500);
// Stepper: erkennt Zyklus-Sprung (cyclePos2 faellt zurueck auf 0) und zaehlt mechanisch mit
if(cyclePos2 < lastCyclePos2) stepper.move(8);
lastCyclePos2 = cyclePos2;

Ähnliche Projekte

  • MODE 2 — STOPWATCH — Eine analoge Stoppuhr mit drei Servo-Zeigern: S1 zeigt Sekunden (0–60 s zyklisch), S2 Minuten (0–60 min) und S3 die gespeicherte Rundenzeit. JoystickButton startet/stoppt, EncoderButton speichert die Runden-Zeit. touch1 und touch2 gleichzeitig: Gesamt-Reset auf 0. Unbegrenzte Laufzeit.
  • MODE 6 — METRONOM — Ein mechanisches Metronom aus Servo und Karton: S1 schwingt als Pendel im einstellbaren Tempo (20–240 BPM), S2 gibt den Hauptschlag als kurzen Impuls, S3 markiert den Halbschlag. Der Encoder stellt das Tempo, der DC-Motor surrt taktgenau mit — perfekt zum Üben von Rhythmusgefühl.
  • MODE 10 — SERVO CLOCK — Eine echte Analoguhr aus drei Servo-Zeigern: Sekunden-, Minuten- und Stunden-Zeiger laufen im echten Tempo mit. Zur vollen Stunde öffnet sich eine kleine Kuckucksuhr-Klappe, der Schrittmotor dreht eine komplette Runde als sichtbares Uhrwerk mit.