Eccomi di nuovo...
Ho giocato un po con il tuo codice ma purtroppo non dà il risultato che dovrebbe.
In pratica con gli stessi valori sia in un verso che nell'altro la posizione iniziale non è mail la stessa. Quindi ho rallentato la velocità dando lo stesso intervallo in entrambi i versi, e impostato tempi di rotazione diversi nel delay e cosi facendo inizialmente mantiene abbastanza bene la posizione iniziale. Il problema è che con il passar di qualche minuto comincia a perderla di nuovo.
Carico lo sketch completo e metto il link del video che ho fatto.
Il video l'ho fatto molto velocemente con il telefonino, giusto per rendere l'idea, e in alcuni punti l'ho messo in pausa per non farlo troppo lungo, giusto per far vedere come si sposta di posizione con il passar dei minuti.
Il primo codice è questo:
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
servo.write(80);
delay(500);
servo.write(90);
delay(3000);
servo.write(100);
delay(500);
servo.write(90);
delay(3000);
}
Il codice con valori diversi è questo (nel video lo schermo del pc non si vede proprio bene :sweat_smile:)
```#include <Servo.h>
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
servo.write(80);
delay(500);
servo.write(90);
delay(3000);
servo.write(100);
delay(630);
servo.write(90);
delay(3000);
}`
Link video youtube: https://youtu.be/YvjucP3bDuc
Link servo (modello SG90 360 degree): https://it.aliexpress.com/item/1005006230183736.html?spm=a2g0o.order_list.order_list_main.23.48953696lydh0t&gatewayAdapt=glo2ita#nav-description
Dopo le numerose prove fatte e diversi codici studiati credo che il problema sia la bassa qualità del servo (Essendo nuovo del mondo Arduino ed essendo questo il mio primo progetto ne ho preso uno a basso costo cosi in caso avessi bruciato qualcosa la spesa sarebbe stata minima).
Se però mi sfugge qualcosa i vostri consigli sono ben accetti.
Grazie