🌊 Aufgabe: Sanfte Bewegung ohne delay()
Jetzt bewegst du die Servos gleichmäßig und nicht-blockierend mit millis(). So kann dein Arduino später mehrere Dinge parallel erledigen.
🧠 Ziel
- Zeitsteuerung mit
millis() - Sanfte, kontinuierliche Bewegungen
⚙️ Konstanten
#include <Servo.h>
const uint8_t SERVO_LEFT_PIN = 9;
const uint8_t SERVO_RIGHT_PIN = 10;
🧪 Code
#include <Arduino.h>
#include <Servo.h>
const uint8_t SERVO_LEFT_PIN = 9;
const uint8_t SERVO_RIGHT_PIN = 10;
Servo servoLeft, servoRight;
int pos = 90; // Start in Neutral
int direction = 1; // +1 vorwärts, -1 zurück
unsigned long prevMs = 0;
const unsigned long STEP_MS = 20; // kleiner = schneller
const int MIN_ANGLE = 45;
const int MAX_ANGLE = 135;
void setup() {
servoLeft.attach(SERVO_LEFT_PIN);
servoRight.attach(SERVO_RIGHT_PIN);
servoLeft.write(pos);
servoRight.write(180 - pos); // gegensinnig
}
void loop() {
unsigned long now = millis();
if (now - prevMs >= STEP_MS) {
prevMs = now;
pos += direction;
if (pos <= MIN_ANGLE || pos >= MAX_ANGLE) {
direction = -direction; // Richtung umkehren
}
servoLeft.write(pos);
servoRight.write(180 - pos); // gegensinnig
}
// Platz für weitere Logik (LEDs, Sensoren, …)
}
✅ Checkliste
- Bewegung ist gleichmäßig (keine großen Sprünge)
- Kein
delay()blockiert die Schleife - Grenzen (45°–135°) werden eingehalten