/* esempio_13_servo_lento.ino * Sposta un servo tra 0, 90 e 18 gradi, uno spostamento al secondo */ #include <Servo.h> // Creo una costante per il piedino del servo #define SERVOPIN 4 #define INTERVALLO 10 Servo attuatore; // Creo la variabile del servo void ruota (Servo s, int da, int a, int tempo) { int t; for (t = 0; t < tempo; t += INTERVALLO) { // metto il percorso da fare in una variabile con la virgola float incremento = a - da; // Ne prendo una parte in base al tempo ntrascorso rispetto al totale richiesto incremento = incremento * t / tempo; // Pongo il servo all'angolo giusto per il tempo trascorso s.write (da + incremento); delay (INTERVALLO); } attuatore.write(a); // Ruota a 10 gradi } void setup () { attuatore.attach(SERVOPIN); // Attivo il servo sul pin indicato } void loop () { ruota (attuatore, 10, 170, 2000); // Vado avanti gradualmente ruota (attuatore, 170, 10, 1000); // Torno indietro gradualmente }