Comportamento Servo

Indipendentemente dal servo utilizzato ho notato un comportamento strano, almeno per me, nel funzionamento. Quando lo sposto di 1 grado (CW) e poi, attendo anche 100ms, inverto la rotazione (CCW) sempre di 1 grado, vedo l'impulso generato dal controllo che si riduce della corretta quantita' di tempo ma il servo non si muove. Solo dal successivo impulso esegue la rotazione. Questo avviene sia con write (pilotaggio in gradi) che con writeMicroseconds (pilotando con tempo). Questo inconveniente non accade se l'impulso successivo e' nello stesso verso di rotazione. Per risolvere il problema ho dovuto dare un impulso inverso di circa 3 gradi. Premetto che le prove sono state eseguite con nessun carico collegato all'albero del servo.
Sembra quasi una "isteresi" che avviene all'inversione del moto. Ripeto, il comando si comporta correttamente ma e' l'HW del servo che non lo segue.
Avete mai notato questo comportamento ?.

Giusto per completezza posso dire che ho mappato il funzionamento del servo e i parametri sono 0 gradi <-> 545uS e 180 gradi <-> 2400uS. Da qui si puo' ricavare la relazione tra gradi e larghezza dell'impulso. E' una retta
gradi=K*durataImpluso-B
dove K=180/(2400-545) e B=-52.89
Se si vuole ricavare la durata dell'impulso basta invertire la equazione della retta
durataImpulso=(gradi+52,99)/0.097
1 grado corrisponde perfettamente alla durata dell'impulso misurato di 11.5uS con oscilloscopio digitale. Quindi ogni volta che si incrementa di 1 grado la rotazione, l'impulso aumenta di 11.5uS.
Se, partendo da una condizione stabile, inverto la rotazione di 1 grado, vedo un impulso piu' corto di 11.5uS ma il servo non attua la rotazione. Se invece aumento di 1 grado la rotazione nello stesso verso, l'impulso aumenta di 11.5uS e il servo attua la nuova posizione. L'unica spiegazione che mi puo' apparire sensata e' il recupero del gioco meccanico tra gli ingranaggi del riduttore interno al servo quando si inverte la rotazione necessitando di qualche grado in piu' perche' si assesti.