Problema servo

Ho fatto tutto come in questo video

ho levato il blocco che arriva a 180°

ho fissato il potenziometro con la colla (dopo aver settato 90 e facendo star fermo il motore)

ho richiuso tutto bene ma quando scrivo 180 mi porta a 180 e stop

ecco lo sketch

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(90);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  
}

l’ho rismontato pure ma è tutto ok …cosa ho sbagliato? può esserci più di un blocco?

Purtroppo non ho esperienza con Servo modificati.
Normalmente ad un servo non modificato passi la posizione, mentre ho letto che se è a rotazione continua la posizione 90 lo fa fermare mentre un valore diverso lo fa ruotare di continuo in un verso o nell'altro. Poi io credevo che un valore diverso da zero potesse anche influire sulla velocità ma ho letto che non è così, quando ruota a sinistra lo fa ad una velocità sempre fissa (idem a destra), benchè sul reference della write() leggo "On a continuous rotation servo, this will set the speed of the servo (with 0 being full-speed in one direction, 180 being full speed in the other, and a value near 90 being no movement)" magari vale solo per servo continui non modificati. Boh!?!
Ora se il tuo servo con un valore si posiziona e sta fermo direi proprio che la modifica non è riuscita.
Il codice che usi però, fosse un servo a rotazione continua, non sarebbe corretto. Non hai più un servo a cui passare la posizione, ma semplicemente 90=fermo 0=ruota in un senso 180=ruota nell'altro senso. Almeno questo è quello che io ho capito sui servo a rotazione continua.

Non ho voglia di guardare quasi 10 minuti di filmato; scusami.
Se il servo non gira di continuo allora hai sbagliato qualcosa nella modifica. Il servo ha normalmente un blocco meccanico. Quello devi eliminare e devi anche togliere l'accopiamento del potenziometro al albero di uscita.

Per pilotare il Servo: 0 una direzione; 90 fermo e 180 altra direzione. La posizione di fermo puó essere leggeremente diverso da 90 se il potenziometro non é bloccato esatamente nella posizione centrale.

Ciao Uwe

uwefed:
Per pilotare il Servo: 0 una direzione; 90 fermo e 180 altra direzione. La posizione di fermo puó essere leggeremente diverso da 90 se il potenziometro non é bloccato esatamente nella posizione centrale.
Ciao Uwe

@uwe, curiosità mia, ma quella frase nel reference della servo.write() è corretta? parla anche di velocità !?!
"On a continuous rotation servo, this will set the speed of the servo (with 0 being full-speed in one direction, 180 being full speed in the other, and a value near 90 being no movement)"

Non ho mai lavorato con Servo
Penso che dipenda molto dallo servo e del tipo di elettronica contenuta.
Se l' elettronica fa rallentare il motore quando é vicino al angolo settato allora funziona la regolazione di velocitá. Se l' elettronica accende e spegne solo il motore non c'é regolazione di velocitá.
Ciao Uwe

Ciao,
premetto che neanche io ho mai lavorato con servo modificati però ho notato questa cosa: nel post scrivi che tu gli dai il comando dei 180° ma non è vero, nello sketch che hai postato fai un loop di 180 volte scrivendo sempre myservo.write(90); che equivale a dirgli spostarsi a 90°. Tra le altre cose a 90° dovrebbe fermarsi. In ogni caso quel ciclo for è inutile, puoi anche toglierlo.
Prova a caricare il seguente sketch e verifica cosa succede, credo dovrebbe girare continuatamente per cinque secondi per poi fermarsi per altri cinque :

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
    myservo.write(180);             
    delay(5000);                       
    myservo.write(90);             
    delay(5000);
}