servo 360 che si muove di 10 gradi ogni 2 secondi

Premetto che prima di postare ho cercato...ma non trovo quello che fa per me!

Dovrei semplicemente azionare un servo che ogni secondo o ogni 2 secondi possa muoverlo di 10 o 20 gradi..nient' altro..

Sapreste darmi qualche dritta? Dove posso trovare uno sketch che possa fare al caso mio?

edit by mod: titolo modificato

Non l’ ho provato ma dovrebbe andare

//così fa 10 gradi poi atende un secondo all'infinito
#include <Servo.h>
Servo myServo;
int angolo=10;
int tempo=1000;
void setup(){
  myServo.attach(3);//metti la porta a cui l'hai attaccato
}
void loop(){
  angolo1=angolo;
  myServo.write(angolo);
  delay(tempo);
  angolo=angolo+angolo1;
}

Grande!! o provo...e comunque vada GRAZIE! :D

Se non funziona fammi sapere.

ehm..si! ma potrei aver sbagliato io! Ho collegato il + e il -- del servo rispettivamente ai 5v e gnd di arduino, il segnale al pin3 digitale di arduino (forse ho sbagliato pin?) avvio lo sketch e mi da errore: angolo1 was not declared in this scope.

o è un errore sullo sketch?

Scusa è colpa mia, nella prima riga del loop dove c’è:
angolo1=angolo;
è sbagliato, correggi con:
int angolo1=angolo;
di seguito il codice completo corretto:

//così fa 10 gradi poi atende un secondo all'infinito
#include <Servo.h>
Servo myServo;
int angolo=10;
int tempo=1000;//in millisecondi
void setup(){
  myServo.attach(3);//metti la porta a cui l'hai attaccato
}
void loop(){
  int angolo1=angolo;
  myServo.write(angolo);
  delay(tempo);
  angolo=angolo+angolo1;
}

Ora ho controllato e funziona.

Ciao

bhè si, intanto ora riesco a programmarlo!! il problema è che i servo ora inizia a girare ininterrottamente, prima piano..poi va più forte, ad un certo punto gira nel verso opposto e poi si ferma! E' un servo 360..può essere questo il problema?

robyr11: ehm..si! ma potrei aver sbagliato io! Ho collegato il + e il -- del servo rispettivamente ai 5v e gnd di arduino, il segnale al pin3 digitale di arduino (forse ho sbagliato pin?) avvio lo sketch e mi da errore: angolo1 was not declared in this scope.

o è un errore sullo sketch?

Meglio poi se il servo lo alimenti separatamente, con il GND in comune con Arduino.

robyr11:
bhè si, intanto ora riesco a programmarlo!! il problema è che i servo ora inizia a girare ininterrottamente, prima piano…poi va più forte, ad un certo punto gira nel verso opposto e poi si ferma! E’ un servo 360…può essere questo il problema?

Ancora colpa mia, scusa sonon un po’ stanco :sleeping: :sleeping: :sleeping: :sleeping:
Ora è ok. naturalmente un servo 360 quando arriva a 360 non può più andare avanti. Io ho solo un servo 180 ma non dovrebbe cambiare nulla tranne l’angolazione massima. Quando dici initerrottamente intendi che non fa la pausa?

//così fa 10 gradi poi atende un secondo all'infinito
#include <Servo.h>
Servo myServo;
int angolo=10;
int tempo=1000;//in millisecondi
void setup(){
  myServo.attach(3);//metti la porta a cui l'hai attaccato
}
void loop(){
  myServo.write(angolo);
  delay(tempo);
}

caspita, stesso problema!!! Secondo me non si può fare con un servo 360..perchè parte senza fermarsi, mentre dovrebbe partire, fare 10 gradi, attendere 1 secondo e poi ripartire per altri 10 gradi...così all' infinito...mi sa che non si può fare! :fearful:

Devi usare un motore stepper. Un servo a rotazione continua, gli puoi dire quale direzione prendere ma poi parte e basta, senza fermarsi. Diciamo accetta 3 valori, esempio 0=destra 90=fermo 180=sinistra (non ricordo se sono esattamente così). I valori intermedi solo per la velocità.

http://arduino.cc/en/Reference/ServoWrite "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)."

intanto leggiti questo

http://www.mauroalfieri.it/elettronica/df15hsr-360-gradi-arduino.html

Ci sono servo a rotazione continua (dove é stato tolto l' accopiamento del asse del Servo con il potenziometro di posizione) Servono per realizzare dei motori per robottini semplici visto che tutta l'elettronica di pilotaggio motore é giá presente nel servo. Questo tipo di servo viene anche chiamato "360Gradi". Con il segnale PPM non definisi piú la posizione dell albero del Servo ma la direzione e secondo il servo anche la velocitá di rotazione.

Se Ti serve un servo che ha un escursione di piú dei 180 gradi standard e la cui posizione é pilotabile ci sono ca 3 possibilitá: 1) usi un Servo che fa piú di mezzo giro per esempio il Hitec HS-785HB che fa 3 giri e mezzo per ca 40€ 2) prendi un motore DC con ingranaggio e un potenziometro multigiri o un ingranaggio oppure un encoder e Ti costuisci un Servo ( motore con retroazione di posizione) 3) prendi un motore passo passo con relativa elettronica di pilotaggio. Ciao Uwe

grazia ragazzi, lo sketch di Mauro Alfieri sembra funzionare..dovrò lavorarci sopra, ma sono sulla buona strada!! XD

Brunello: intanto leggiti questo http://www.mauroalfieri.it/elettronica/df15hsr-360-gradi-arduino.html

Interessante, non lo avevo mai letto. Non conoscevo l'uso della writeMicroseconds(). Grazie :D

in realtà quello che vorrei fare è questo:

https://www.youtube.com/watch?v=--RBj6no7EY

una gopro che viene ruotata da un servo, il discorso del comando wireless non è un problema! secondo me quello è un servo!

robyr11: una gopro che viene ruotata da un servo, il discorso del comando wireless non è un problema! secondo me quello è un servo!

Quello è un verricello , ne esistono vari tipi, tipicamente sono in grado di ruotare almeno sei giri complessivi. Col servo 360° non vai da nessuna parte perché non puoi dosare l'angolo di rotazione, anche se i verricelli non sono precisissimi l'errore angolare massimo è minore di 2°, più che sufficiente per la tua applicazione.

ciao caro!!

si si, infatti io mi ritrovo 2 verricelli, come posso modificare lo sketch?

robyr11: si si, infatti io mi ritrovo 2 verricelli, come posso modificare lo sketch?

Il verricello funziona come un normale servo, ovvero gli devi fornire un impulso compreso tra 1050 us e 1950us, con 1500 us si posiziona al centro permettendo tre giri completi per lato. In pratica non devi far altro che incrementare/decrementare la durata dell'impulso ogni tot secondi come ti serve, di quanto modificarlo dipende dallo specifico modello di verricello, basta fare una prova con un goniometro per verificare l'angolo in funzione della variazione dell'impulso. Per l'eventuale telecomando remoto si può utilizzare un canale libero della radio, se disponibile, per dare il via alla sequenza, in alternativa una coppia di moduli Xbee Pro che ti garantiscono una portata di almeno 500 metri in volo.

astrobeed: Quello è un verricello , ne esistono vari tipi, tipicamente sono in grado di ruotare almeno sei giri complessivi.

azz, ma quanti fili ha ? 2 connettori, uno da 2 che sembra vcc/gnd e l'altro da 3 fili ?