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
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Arbeitsphase-Fortschritt |
| S2 | 180°-Servo | Pausephase-Fortschritt |
| S3 | 180°-Servo | Gesamt-Fortschritt des laufenden Zyklus (Arbeit + Pause) |
| S4 | 360°-Servo | Dreht nur während der Arbeitsphase |
| S5 | 360°-Servo | Dreht nur während der Pausephase |
| S6 | 180°-Servo | Zeigt, ob gerade Arbeits- oder Pausenzeit eingestellt wird |
| STEPPER | Schrittmotor | Zählt abgeschlossene Arbeits-/Pausen-Zyklen |
| DC | DC-Motor | Lä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
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.
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.
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.
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.
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.
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.