Neofita vs servo!!

Salve bella gente, mi sento un tantino in imbarazzo ad aprire un post per una simile sciocchezza, ma sto cercando di prendere un minimo di confidenza con i servi RC per poi costruire un follow focus per alcuni amici, il fatto è che non riesco a far funzionare un piccolo sketch che dovrebbe essere di una semplicità a dir poco banale, qualcuno sarebbe così gentile da spiegarmi cos’è che mi sfugge?? Per la cronaca l’intento (sembra ovvio…) è quello di far “dondolare” il servo avanti e indietro tra i 0 e i 180 gradi…

#include <SoftwareServo.h> 

SoftwareServo myservo;  


int val;   //La variabile che conterrà l'inclinazione del servo     
int oldval;


void setup() 
{ 
  myservo.attach(2);   //Servo connesso al pin 2
} 

void loop() 
{
  for (val=0; val<180; val++){
    myservo.write(val);
    delay(15);
  }
  for (val=180; val>0; val--){
    myservo.write(val);
    delay(15);
  }
  SoftwareServo::refresh();
}

Vi ringrazio in anticipo per la disponibilità e l’attenzione che mi dedicherete!

Mi sembra che vada bene. Come hai fatto le connessioni? messo in comune le masse (gnd) anche con Arduino?

che sintomi da il servo? Ciao Uwe

Chiedo scusa, non ho descritto i sintomi.. le connessioni sono certamente corrette, dando un "val=x, write(x)" il servo obbedisce e anche dando diverse inclinazioni divise da un delay, risponde correttamente, per questo penso si tratti di una qualche banalità... però proprio non ci arrivo...

P.S.: Se il servo si trova ad una inclinazione diversa da 0, caricando lo sketch torna a 0, se si trova a 0 rimane fermo...

non è che bisogna fare il refresh almeno ogni 50 ms?

Visto??! Era una gran banalità!!! Avevo già provato una cosa simile ma con altri sketch che evidentemente avevano altri difetti! Ti ringrazio… posto lo sketch corretto anche se inutile. Immagino non esista un modo per eliminare il post direttamente vero?

#include <SoftwareServo.h> 

SoftwareServo myservo;  


int val;   //La variabile che conterrà l'inclinazione del servo     
int oldval;


void setup() 
{ 
  myservo.attach(2);   //Servo connesso al pin 2
} 

void loop() 
{
  for (val=0; val<180; val++){
    myservo.write(val);
    delay(15);
    SoftwareServo::refresh();
  }
  for (val=180; val>0; val--){
    myservo.write(val);
    delay(15);
    SoftwareServo::refresh();
  }
}

non è mai inutile.. comunque io fino ad ora ho sempre usato la libreria servo.h dove non ci sono problemi di refresh..

Ottima cosa! Ora provo! Ti ringrazio per l'aiuto e il consiglio!