Arduino speed servo Control

Salve a tutti scrivo qui perchè ho un problema con il controllo dei miei servo.
Ho un robot quadrupede e ho problemi a governare i vari componenti, il codice qui sotto è un sunto del codice che uso.

#include <Servo.h>

Servo myservoA;   // GAMBA 1 A

void setup()
{
 
  myservoA.attach(13);    //GAMBA A

  Serial.begin (9600);
}

void loop() {

    myservoA. write(90 );
delay(500);
   myservoA. write(180 );
delay(500);

}

In questa maniera riesco a controllare la posizione di ogni servo.
Il problema è che vorrei poter decidere quanto tempo deve impiegarci x girare da 90° a 180°.
Come faccio?

void loop() {

    myservoA. write(90 );
delay(500);
   myservoA. write(180 );
delay(500);  ///////////////////////////////////////
}

Non e cattiveria ma .... =( non ho capito. Non sono bravo a programmare, quello che so lo so per sbaglio.

Devi usare una libreria diversa. La Servo.h non ha il controllo della velocità del servo. --> http://forum.arduino.cc/index.php?topic=61586.0

Grazie ora devo solo capirecome utilizare questa nuova libreria

Ricorda, se usi l'IDE > 1.0, di sostituire WProgram.h con Arduino.h nella libreria --> http://forum.arduino.cc/index.php?topic=61586.msg1050566#msg1050566

Mi darai dello stupido ma non riesco a trovare il fail da sostituire ne il fail con cuoi dovrei sostituirlo

Non è un file, ma un pezzo di codice. Devi cambiare, dove trovi

#include "WProgram.h"

con

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

Cosi se ti capita di usare un vecchio IDE, ad esempio la 0.22 lui usa WProgram.h; altrimenti compila includendo Arduino.h.

Ok ora mi da comunque errori di compilazione il codice ora e questo.
Dove devo sbatere latesta?

#include <VarSpeedServo.h>

VarSpeedServo myservoA;   // GAMBA 1 A

void setup()
{
 
  myservoA.attach(13);    //GAMBA A

  Serial.begin (9600);
}

void loop() {

    myservoA. write(90 );
delay(500);
   myservoA. write(180 );
delay(500);

}

Quali errori di compilazione?

Mi son trovato pure io a usare questa libreria di recente, vai nella cartella in cui hai messo la libreria e modifica il file VarSpeedServo.cpp. Puoi aprirlo anche con il blocco note, cerchi nel file dove è scritto WProgram.h e sostituisci con Arduino.h. L'errore di compilazione te lo da per quel motivo di sicuro.

Inoltre se continui a usare:

   myservoA.write(90 );
delay(500);
   myservoA.write(180 );
delay(500);

Non otterrai nulla, la cosa buona della libreria è la funzione slowmove(). Con quella modifichi la velocità, in ingresso prende 2 parametri, l'angolo e la velocità quindi scriverai così:

   myservoA.slowmove(90, vel);
delay(500);
   myservoA.slowmove(180, vel);
delay(500);

Ovviamente definisci un int vel nel void setup e gli dai un valore tra 0 e 127 (puoi provare anche di più ma non dovresti avere grossi cambiamenti), quindi scrivi nel void setup:

int vel = 50;

Ad esempio, modificando quel valore modificherai la velocità dei servi, fai un po' di prove e ricordati di editare quel file, altrimenti riceverai sempre quell'errore di compilazione.

Spero di esserti stato utile. :)

GRAZIE grazie 1000 della super spiegazione che hai fatto :) Ora finalmente ho capito bene e so da dove cominciare, vi ringrazio davvero tutti :)

mango: GRAZIE grazie 1000 della super spiegazione che hai fatto :) Ora finalmente ho capito bene e so da dove cominciare, vi ringrazio davvero tutti :)

Figurati, è stato un piacere, anche io sono agli inizi ma per il poco che so ora son contento di aiutare. :)