MODE 9 — SPOTLIGHT
Medium · 1h · Fast kostenlos
Ziel & Anwendung
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.
- Stepper als Sektor-Scanner implementieren der 45°-Sektoren (8 Positionen) abfährt.
- PIR-Bewegungserkennung die Stepper für 3 Sekunden auf Alarm-Position einfriert.
- S1 PIR-Alarm-Zeiger, S2 aktuelle Scan-Phase und S3 LDR-Helligkeit synchronisieren.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | PIR-Alarm-Zeiger, schlägt bei Treffer aus |
| S2 | 180°-Servo | Zeigt die aktuelle Scan-Phase |
| S3 | 180°-Servo | Zeigt die gemessene Raumhelligkeit |
| S4 | 360°-Servo | Dreht synchron zum Scan, stoppt bei PIR-Treffer |
| S5 | 360°-Servo | Gegenläufig zu S4 für verstärkten Suchlicht-Effekt |
| S6 | 180°-Servo | Markiert den Sektor des letzten PIR-Treffers |
| STEPPER | Schrittmotor | Dreht die Spotlight-Plattform durch die Sektoren |
| DC | DC-Motor | Kurze Vibration bei jedem PIR-Treffer |
Materialliste
- Kleiner Karton-Spotlight-Turm ca. 8 × 8 × 15 cm
- Taschenlampe oder LED auf Stepper-Plattform als 'Scheinwerfer' (optional)
- LDR frei sichtbar als Helligkeits-Sensor
- Karton-Sektor-Scheibe Ø 10 cm mit 8 Sektoren als Positions-Anzeige
- Klebeband und Heißkleber
Step-by-Step Tutorial
Spotlight-Turm mit Stepper aufbauen
Karton-Turm (8 × 8 × 15 cm). Stepper im Inneren. Spotlight-Plattform (8 × 8 cm) auf Mitnehmer. Optionale LED oder Taschenlampe aufkleben. Kabel mit 20 cm Schlaufe: ermöglicht mehrere Umdrehungen ohne Aufwickeln. Sektor-Scheibe (Ø 10 cm, 8 Felder) als sichtbare Positions-Anzeige unter Turm.
Check: Stepper dreht Spotlight-Plattform. Kabel der LED (optional) nicht aufwickeln.
Tipp: Taschenlampe/LED auf Plattform ist optional — der Effekt des rotierenden Turms ist auch ohne Licht beeindruckend. Kabel-Schlaufe für ±180° Rotation einplanen.
8-Sektoren Scan-Sequenz programmieren
scanSector von 0 bis 7 (8 Sektoren). scanPos = scanSector × 45. stepper.moveTo(scanPos). Wenn distanceToGo() == 0: 1 Sekunde warten (Verweilzeit), dann scanSector = (scanSector + 1) % 8. Volle Rotation in 8 Sekunden bei 1s Verweilzeit.
Check: Stepper dreht zu Position 0, 45, 90, 135, 180, 225, 270, 315 — dann wieder von vorne.
Tipp: scanPos += 45 nach jeder Verweilzeit. moveTo(scanPos). Wenn scanPos >= 360: scanPos = 0. Stepper dreht immer in eine Richtung (kein Zurück).
PIR-Alarm mit 3-Sekunden-Einfrierung
PIR-Trigger: pirLocked = millis() + 3000. Während pirLocked > millis(): kein Sektor-Wechsel, S1=2000 (Alarm-Zeiger), SHORT_BLINK. Nach 3s: pirLocked = 0, S1=1000, Scan läuft weiter. Stepper hält exakt auf Alarm-Position — Scheinwerfer zeigt direkt auf Eindringling.
Check: PIR löst: pirLocked = millis() + 3000. Stepper bleibt auf aktueller Position eingefroren.
Tipp: Während pirLocked aktiv: kein scanSector-Wechsel. Nur stepper.run() aufrufen (für Halten). Nach 3000ms: pirLocked = 0, Scan geht weiter.
Leichtgängigkeits-Test ohne Strom
Stepper von Hand auf +360 Schritte drehen: Plattform dreht ohne Kabelzug? Kabel-Schlaufe noch locker? Dann rückwärts: frei? Spotlight-Plattform hat genug Spielraum nach oben? Erst dann einschalten.
Check: Stepper dreht Spotlight-Plattform frei. Volle 360°-Drehung ohne Kabelzug.
Tipp: 360°-Drehung bedeutet: Kabel muss volle Umdrehung mitmachen. Kabel-Schlaufe nach unten aus Turm-Basis führen.
MODE 9 aktivieren — Spotlight im Betrieb
Safe-Einbruch → MODE 9. Spotlight dreht automatisch durch 8 Sektoren. S2 zeigt aktuelle Phase (0–7). S3 zeigt Raumlicht. Vor PIR treten: Spotlight friert für 3s ein, S1 Alarm-Zeiger hoch, Buzzer SHORT_BLINK. Nach 3s: Spotlight dreht weiter.
Check: Stepper dreht Sektoren. S2 zeigt Scan-Phase. S3 zeigt LDR. PIR: Einfrierung für 3s.
Tipp: Test: Vor PIR gehen → Stepper friert ein, S1 auf Alarm, SHORT_BLINK für 3s. Dann weiter scannen.
Verweilzeit und Scan-Geschwindigkeit anpassen
sectorWait = 1000ms Standard. Stepper.setSpeed() für Dreh-Geschwindigkeit zwischen Sektoren. Schneller Scan: sectorWait = 500ms, hohe Stepper-Geschwindigkeit. Langsamer Scan: sectorWait = 3000ms für dramatischere Wirkung. PIR-Einfrierung immer 3000ms — unabhängig von Verweilzeit.
Check: Verweilzeit pro Sektor anpassen. Stepper-Geschwindigkeit für sichtbare Drehung einstellen.
Tipp: Verweilzeit 1s pro Sektor: volle Rotation in 8s. Für langsamen mysteriösen Scan: 3s Verweilzeit = 24s pro Umdrehung.
Troubleshooting
- Stepper dreht nicht in Sektoren — dreht kontinuierlich — distanceToGo() == 0 prüfen: gibt true wenn Zielposition erreicht. Wenn Stepper.run() nicht aufgerufen: Stepper bewegt sich nicht. Wenn moveTo() in jedem Loop-Durchlauf aufgerufen: Ziel wird ständig neu gesetzt. moveTo() nur einmal pro Sektor-Wechsel aufrufen.
- PIR-Einfrierung dauert nicht 3 Sekunden — pirLocked = millis() + 3000. Wenn pirLocked als int16_t statt uint32_t: Überlauf nach 32s. Als uint32_t deklarieren: static uint32_t pirLocked = 0. Vergleich: millis() > pirLocked (nicht millis() - pirLocked > 3000).
Modifikationen & Sicherheit
- Pro-Tipp: LED auf Spotlight-Plattform (über ProtoPeaks-GPIO) bei PIR-Alarm aufblinken lassen — echte Scheinwerfer-Simulation.
- Erweiterung: LDR-basierte Helligkeitssteuerung — Spotlight dreht nur bei Dunkelheit (LDR < 500) für Nachtwächter-Modus.
- Sicherheit: Kabel-Management bei rotierendem Stepper ist kritisch — regelmäßig prüfen dass keine Kabelaufwicklung entsteht.
Wichtige Code-Teile
// PIR-Alarm: 3 Sekunden einfrieren
if(isButtonPressed(PIRHigh, lastPIR8)) pirLocked = millis() + 3000;
bool scanActive = (millis() > pirLocked);
// Sektor-Scanner (nur wenn kein PIR-Alarm)
if(scanActive && stepper.distanceToGo() == 0) {
if(millis() - sectorTimer > 1000) { // 1s Verweilzeit pro Sektor
scanPos += 45; // Nächster 45°-Sektor
stepper.moveTo(scanPos);
sectorTimer = millis();
}
}
stepper.run();
// Servo-Ausgaben
servocontroller.setServoPulse(1, scanActive ? 1000 : 2000); // S1: PIR-Alarm
servocontroller.setServoPulse(2, map(scanPos%360, 0,360, 1000,2000)); // S2: Scan-Phase
servocontroller.setServoPulse(3, mapLDR); // S3: Helligkeit
// Buzzer bei PIR-Alarm
if(!scanActive) Buzzer.setMode(SHORT_BLINK);
else Buzzer.setValue(0);Ähnliche Projekte
- MODE 4 — SCANNER — Ein tastender Scan-Turm mit Ultraschall-Sensor: der Stepper dreht den Sensor in kleinen Schüben hin und her wie ein Radar-Scanner. Bei zu nahem Objekt steigt die Alarm-Stufe — S1 zeigt den Abstand, S2 die Warn-Fahne und S3 die Kritisch-Fahne, bei der höchsten Stufe surrt auch der DC-Motor.
- 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.
- MODE 10 — SEISMIC — Ein Mini-Seismograph fürs Regal: Der Bewegungssensor spürt jede Erschütterung, ein Pendel am Schrittmotor schwingt live mit und zwei Zeiger zeigen die Richtung des Wackelns. Wird es zu heftig, bleibt ein Alarmfenster fünf Sekunden offen — der ideale stille Wächter für Tresor oder Vitrine.