MODE 3 — PROX+ENC
Easy · 45 min · Fast kostenlos
Ziel & Anwendung
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.
- Ultraschall-Distanzwerte auf zwei verschiedene Servo-Bereiche mappen (Nah/Fern).
- Encoder-Inkremente als Stepper-Steuerung verwenden.
- Proportionale DC-Motorsteuerung nach Sensorwert umsetzen.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Nahbereich-Zeiger (0–50 cm) |
| S2 | 180°-Servo | Fernbereich-Zeiger (0–200 cm) |
| S3 | 180°-Servo | Schnapp-Klappe — schnellt bei Unterschreiten der Sicherheitsdistanz zu |
| S4 | 360°-Servo | Dreh-Feedback — reagiert auf die Encoder-Geschwindigkeit |
| S5 | 360°-Servo | Trend-Anzeige — zeigt ob sich das Objekt nähert oder entfernt |
| S6 | 180°-Servo | Fühler — tastet sich proportional zur Nähe vor |
| STEPPER | Schrittmotor | Folgt dem Encoder-Inkrement |
| DC | DC-Motor | Alarm — wird lauter, je näher das Objekt kommt |
Materialliste
- 2 Kartonzeiger ca. 6 × 1 cm für S1 und S2
- 1 Kartonbasis zum Aufkleben der Servos
- Optional: Distanzskala aus Papier (0–200 cm)
Step-by-Step Tutorial
Zwei Distanz-Anzeigezeiger bauen
Schneide zwei Kartonpfeile (6 × 1 cm). Schraube Servo-Horn auf S1, klebe ersten Zeiger flächig auf Horn. Wiederhole für S2. Klebe beide Servos nebeneinander auf die Basis und beschrifte: 'NAH 0–50' und 'FERN 0–200'.
Check: S1 = Kurzbereich (0–50 cm), S2 = Langbereich (0–200 cm) — beide mit Zeiger
Tipp: Die zwei Bereiche erlauben präzisere Anzeige: S1 zeigt Feinskalierung im Nahbereich, S2 den Gesamtbereich.
Distanzskala auf Basis zeichnen
Fahre S1 in Endstellungen und markiere 0 cm und 50 cm. Teile den Bogen in 5 gleiche Teile für 10-cm-Schritte. Gleiche Prozedur für S2 (0–200 cm).
Check: Markierungen bei 0 cm, 25 cm, 50 cm für S1 sichtbar
Tipp: Fahre S1 auf 1000µs (=0 cm) und 2000µs (=50 cm) und markiere die Zeigerpositionen — so entsteht eine echte Skala.
Leichtgängigkeits-Test
VOR dem Einschalten beide Zeiger von Hand durch den Bogen drehen. Erst wenn beide leicht laufen, ProtoPeaks einschalten.
Check: Beide Zeiger drehen sich ohne Widerstand von Hand
Tipp: Zeiger müssen leicht sein. Schwere Zeiger verursachen Überhitzung des Servo-Treibers.
MODE 3 aktivieren und Distanz testen
EasySensors → MODE 3 auswählen. Hand langsam auf 10 cm nähern: DC-Motor wird lauter, S1-Zeiger schlägt aus, Buzzer piept bei unter 10 cm. Encoder drehen: Stepper bewegt sich um Encoder-Schritte × 10.
Check: Bei Abstand 30 cm: S1-Zeiger zeigt auf ~60% seiner Skala. Bei 100 cm: S2 auf ~50%.
Tipp: Halte die Hand vor den Ultraschall-Sensor in verschiedenen Abständen und beobachte beide Zeiger.
Encoder-Stepper-Funktion prüfen
Encoder langsam drehen: Der Stepper dreht sich proportional. Bei zu schnellem Drehen kann der Stepper steps verpassen — langsam und gleichmäßig testen. Display zeigt aktuelle Stepper-Position an.
Check: Je Encoder-Raste macht der Stepper 10 Steps
Tipp: Der Stepper akkumuliert die Schritte — viele Rasting-Bewegungen hintereinander bauen sich auf.
Schnapp-Klappe, Fühler und Trend-Anzeige anbringen
Baue eine Klappe, die unter der Sicherheitsdistanz zuschnappt, einen Fühler-Zeiger, der sich proportional zur Nähe vorwagt, sowie einen kleinen Zeiger, der anzeigt, ob sich das Objekt gerade nähert oder entfernt.
Check: Klappe, Fühler und Trend-Zeiger bewegen sich alle frei von Hand
DC-Alarm-Verhalten beobachten
Hand langsam auf den Sensor zubewegen. Ab 50 cm beginnt der DC-Motor leise zu laufen. Je näher die Hand, desto schneller dreht der Motor. Unter 10 cm: Buzzer zusätzlich aktiv.
Check: DC-Motor wird lauter/stärker je näher die Hand am Sensor ist (5–50 cm Bereich)
Tipp: Die Motorgeschwindigkeit ist proportional: 5 cm Abstand = 70% Speed, 50 cm = 0% Speed.
Troubleshooting
- Distanz zeigt immer 0 oder springt wild — Ultraschall-Sensor braucht freie Sicht ohne Hindernisse seitlich. Mindestabstand 3 cm einhalten. Störende Objekte im Winkel über 15° zur Seite räumen.
- Stepper reagiert nicht auf Encoder — Encoder muss mindestens 2 Raster-Schritte bewegt werden (Schwelle `abs(encDelta) > 1`). Langsam und deutlich drehen.
- DC-Motor dreht dauerhaft auch bei großem Abstand — distanceCM = 0 bedeutet 'kein Echo' (Objekt zu weit). Der Code prüft `distanceCM > 0` — bei 0 sollte Motor stoppen. Sensor-Ausrichtung prüfen.
Modifikationen & Sicherheit
- Pro-Tipp: Zeiger mit Farbverlauf (grün → rot) gestalten für intuitive Nah/Fern-Anzeige.
- Erweiterung: Stepper mit einem Zeiger an einer langen Skala verbinden — zeigt dann die akkumulierte Encoder-Drehung als Messskala.
Wichtige Code-Teile
// S1/S2 (180°) zeigen Distanz im Nah- und Fernbereich
servocontroller.setServoPulse(1, mapDistanceCMshort);
servocontroller.setServoPulse(2, mapDistanceCMlong);
// Stepper folgt Encoder-Inkrement
float encDelta = EncoderPos - lastEnc;
if(abs(encDelta) > 1) { stepper.move((int)(encDelta * 10)); lastEnc = EncoderPos; }
// DC-Alarm proportional zur Nähe (5–50 cm)
setMotorspeed(map(constrain((int)distanceCM, 5, 50), 5, 50, 70, 0));
// Buzzer bei < 10 cm
if(distanceCM > 0 && distanceCM < 10) Buzzer.setMode(SHORT_BLINK);
else Buzzer.setValue(0);Ä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 4 — JOYSTICK — Steuere zwei Servos direkt mit dem Joystick — mit eingebautem Deadzone-Filter für ruhige Nullstellung — und ein dritter Servo folgt automatisch dem Lichtsensor.
- MODE 4 — OBSTACLE — Hier fährst du nicht mit, du schaust zu: Der Ultraschall-Sensor tastet wie ein Fledermaus-Radar den Weg ab, und taucht ein Hindernis auf, zeigt der Richtungsflügel erst die Fluchtrichtung an, bevor das Auto elegant daran vorbeizieht. Die Fernsteuerung bleibt dabei komplett in der Tasche — dein Auto trifft alle Entscheidungen selbst.