void setup() { pinMode(7, OUTPUT); //Pin an dem der Servo angeschlossen ist } void loop() { for (byte i = 0; i < 180; i += 10) { //So reagiert der Servo auch noch nach 350ms... //Man muss ihn erst mit zwei Signalen wecken for (byte k = 0; k < 3; k++) { digitalWrite(7, HIGH); pause_servo(i); //Delay in Abhängigkeit des gewählten Winkels digitalWrite(7, LOW); delay(20); } delay_millis(500); } for (byte i = 180; i > 10; i -= 10) { for (byte k = 0; k < 3; k++) { digitalWrite(7, HIGH); pause_servo(i); //Delay in Abhängigkeit des gewählten Winkels digitalWrite(7, LOW); } delay_millis(350); //350ms delay, FUNZT aber auch mit delay() } } void pause_servo(unsigned long degree) { unsigned long new_time; new_time = micros(); while ((new_time + (degree * 12) + 500) > micros()) ; //Die Formel ist nicht genau!!! Aber hinreichend! } void delay_millis(unsigned long time) { unsigned long new_time; new_time = millis(); while ((new_time + time) > millis()) ; }