MODE 7 — COIN THIEF
Medium · 1h · Fast kostenlos
Ziel & Anwendung
Eine automatische Münzgreif-Maschine: sobald der Ultraschall-Sensor eine Münze näher als eine Handbreit erkennt, fährt S1 als Greifarm aus, der DC-Motor zieht die Münze ein und der Arm fährt zurück, während eine Klappe den Schacht abdeckt. Vier Zustands-Phasen sorgen für präzise Koordination — kein manuelles Eingreifen nötig.
- Vierphasige State-Machine (Idle → Ausfahren → Einziehen → Zurückfahren) implementieren.
- Ultraschall-Distanz als automatischen Trigger (< 8 cm) für Greif-Sequenz nutzen.
- S1-Greifarm-Bewegung mit DC-Motor-Einzug zeitlich koordinieren.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Greifarm — fährt aus, um die Münze zu holen |
| S2 | 180°-Servo | Zeigt an, ob die Greif-Sequenz gerade läuft |
| S3 | 180°-Servo | Live-Abstandszeiger zur Münz-Ablagefläche |
| S4 | 360°-Servo | Dreht kurz mit, während die Münze eingezogen wird |
| S5 | 360°-Servo | Dreht gegenläufig zu S4 für einen 'Verschluck'-Effekt |
| S6 | 180°-Servo | Klappe deckt den Schacht ab, sobald der Arm zurückgefahren ist |
| STEPPER | Schrittmotor | Zählt jede erfolgreich abgeschlossene Greif-Runde mit |
| DC | DC-Motor | Zieht die Münze ins Innere |
Materialliste
- Karton-Arm ca. 10 × 3 cm als Greifarm für S1
- Kleines Karton-Schacht-Gehäuse ca. 12 × 8 cm als Münz-Einwurf
- Rutsche oder Trichter aus Karton für Münz-Führung
- Klebeband und Heißkleber
Step-by-Step Tutorial
Münz-Schacht und Greifarm aufbauen
Karton-Schacht (12 × 8 cm) als Einwurf. S1 mit Greifarm-Karton (10 × 3 cm) auf Horn. Arm bei 1000 µs: eingezogen. Arm bei 2000 µs: ausgefahren über Münz-Position. DC-Motor als Einzug-Motor hinter Schacht. Ultraschall-Sensor zeigt auf Münz-Ablagefläche.
Check: S1-Arm kann von 1000 µs (eingezogen) auf 2000 µs (ausgefahren) bewegen. Münze liegt im Sensor-Bereich.
Tipp: Arm maximal 10 cm lang — längerer Arm überschreitet Servo-Drehmoment. Karton-Arm auf Plastik-Horn von S1 kleben, flächig und mittig.
Vier-Phasen Ablauf verstehen
Phase 0 (Bereit): wartet auf ein Objekt näher als eine Handbreit. Phase 1: der Arm fährt aus, nach kurzer Zeit geht es automatisch weiter zu Phase 2. Phase 2: der DC-Motor zieht die Münze eine knappe Sekunde lang ein — S4/S5 drehen dabei kurz mit für den Effekt. Phase 3: der Arm fährt zurück, S6 deckt den Schacht ab, danach wieder Phase 0 und der Stepper zählt die abgeschlossene Runde.
Check: Phase 0=Bereit. Phase 1=Arm fährt aus (gut ein Drittel Sekunde). Phase 2=DC zieht ein (gut eine halbe Sekunde). Phase 3=Arm fährt zurück.
Tipp: Die Phasen wechseln rein zeitgesteuert weiter — nicht erst wenn der Arm seine Position wirklich erreicht hat. Zu langsame Servos geraten so leicht aus dem Takt.
Distanz-Trigger kalibrieren
Ultraschall-Sensor auf Münz-Ablagefläche ausrichten: Münze ablegen → S3-Zeiger zeigt nahen Abstand. Ohne Münze: S3 zeigt deutlich mehr Abstand. Sensor-Höhe: Münze auf Ablagefläche muss genau im Messbereich liegen.
Check: Münze auf Sensor-Abstand von einer Handbreit: Phase 1 startet. Ohne Münze: Phase 0 bleibt.
Tipp: Der Schwellwert ist auf Münzgröße abgestimmt. Sensor-Höhe so einstellen, dass die Münze verlässlich erkannt wird.
Leichtgängigkeits-Test ohne Strom
S1 von Hand auf 2000 µs: Arm reicht bis über Münzposition? Auf 1000: Arm vollständig eingezogen? S6-Klappe von Hand: deckt Schacht sauber ab? DC-Motor von Hand drehen: frei? Schacht-Durchgang prüfen: Münze kann ungehindert in Schacht rutschen? Erst dann einschalten.
Check: S1-Arm fährt frei von 1000 auf 2000 und zurück. DC-Motor frei. Keine Blockade im Schacht.
Tipp: Arm bei 2000 µs: Greifarm-Position genau über Münz-Ablagefläche? Wenn nicht: Servo-Horn-Position anpassen (Horn abschrauben, um eine Raste drehen, wieder festschrauben).
MODE 7 aktivieren — Münzdieb testen
Safe-Einbruch → MODE 7. Münze auf Ablagefläche legen: Ultraschall erkennt sie. Arm fährt aus, S4/S5 drehen kurz mit. DC-Motor zieht die Münze in den Schacht. Arm fährt zurück, S6-Klappe schließt den Schacht, der Stepper zählt eine Runde weiter. Bereit für nächste Münze. Spardose anschließen!
Check: Münze ablegen: Arm fährt aus, DC zieht ein, Arm zurück, Klappe deckt ab. Dann bereit für nächste Münze.
Tipp: Test mit 1€-Münze auf Ablagefläche. Arm sollte innerhalb einer Sekunde nach Erkennung ausfahren.
Timing und Münz-Einzug optimieren
Wenn Münzen herausrutschen: Rutsche steiler gestalten (30° Neigung) — Schwerkraft hilft nach. Ein kleiner Karton-Stößel am DC-Motor-Rad verbessert den Einzug zusätzlich.
Check: Die Einzug-Phase ist lang genug, dass die Münze sicher eingezogen wird.
Tipp: Wenn die Münze nicht sicher eingezogen wird, die Einzug-Zeit im Code etwas verlängern.
Troubleshooting
- Arm bleibt in Phase 1 stecken — wechselt nicht zu Phase 2 — Der Wechsel erfolgt rein zeitgesteuert, nicht erst wenn der Arm seine Position erreicht hat. Wenn der Arm mechanisch blockiert ist, fährt der Motor trotzdem nach der festen Zeit weiter — Blockade prüfen: Arm bei 2000 µs frei beweglich?
- Münze wird nicht eingezogen — DC dreht aber Münze bleibt — DC-Motor hat keine direkte Greifwirkung — muss Münze mechanisch schieben oder über Rutsche leiten. Münz-Rutsche steiler gestalten (Schwerkraft hilft). Oder kleinen Karton-Stößel am DC-Motor-Rad befestigen.
Modifikationen & Sicherheit
- Pro-Tipp: Münz-Zähler implementieren: jede erfolgreich eingezogene Münze → Display zeigt Gesamtwert.
- Erweiterung: Verschiedene Münzgrößen per Distanz unterscheiden (2€=2cm, 1€=2,3cm) und separat zählen.
- Sicherheit: Greifarm nicht bei blockiertem Schacht laufen lassen — Servo überhitzt bei Dauerlast.
Wichtige Code-Teile
// Vier-Phasen State-Machine (rein zeitgesteuert)
bool coinDetected = (distanceCM > 0 && distanceCM < 8) && coinStep == 0;
if(coinDetected) { coinStep = 1; coinTimer6 = millis(); }
switch(coinStep) {
case 0: servocontroller.setServoPulse(1, 1000); setMotorspeed(0); break;
case 1: // Arm ausfahren
if(!ismoving[1]) servocontroller.startMove(1, 2000, 300);
if(millis() - coinTimer6 > 400) { coinStep = 2; coinTimer6 = millis(); }
break;
case 2: // DC zieht Münze ein
setMotorspeed(80);
if(millis() - coinTimer6 > 600) { coinStep = 3; coinTimer6 = millis(); }
break;
case 3: // Arm zurückfahren
setMotorspeed(0);
if(!ismoving[1]) servocontroller.startMove(1, 1000, 400);
if(millis() - coinTimer6 > 600) coinStep = 0;
break;
}
servocontroller.setServoPulse(2, coinStep > 0 ? 2000 : 1000); // S2: Sequenz aktiv
servocontroller.setServoPulse(3, mapDistanceCMshort); // S3: Live-Distanz
servocontroller.setServoPulse(6, (coinStep==3) ? 2000 : (coinStep==0) ? 1000 : 1500); // S6: Klappe
if(coinStep == 0 && lastCoinStep == 3) stepper.move(10); // Zähler pro abgeschlossener RundeÄhnliche Projekte
- MODE 3 — SAFE COMBO — Ein echtes Kombinationsschloss aus Encoder und drei Ziffern: nur wenn alle drei Encoder-Werte exakt die geheime Kombination treffen (z.B. 5, -3, 7), öffnet S3 den Servo-Riegel. touch1 bestätigt jede Ziffer, touch2 setzt alles zurück — präzises Knacken wie bei einem echten Tresor.
- MODE 9 — SPOTLIGHT — Ein rotierender Überwachungs-Scheinwerfer: Stepper dreht in 45°-Sektoren von Sektor zu Sektor, S2 zeigt die aktuelle Scan-Phase und S3 den LDR-Helligkeitswert. Sobald der PIR-Sensor Bewegung erkennt, bleibt der Stepper für 3 Sekunden auf der Alarm-Position fixiert — SHORT_BLINK warnt.
- MODE 1 — LASER TRAP — Eine echte Lichtschranke aus Laser-Pointer und LDR: sobald der Laserstrahl unterbrochen wird, schlägt der Alarm an — S1 hebt die Alarm-Fahne, S2 verriegelt einen Servo-Riegel, der Stepper dreht die Alarm-Fläche und der DC-Motor surrt. Perfekt als Diebstahlsicherung für die Schreibtischschublade oder als Einbruch-Spielzeug.