Comandare servo 360 con un potenziometro

Salve, come ho scritto nella presentazione sono nuovo del mondo Arduino, quindi vi chiedo pazienza...
Sto facendo il progetto di un macchinario composto da un motorino RS550 a 12v ed un micro sevo 360° FS90R al quale devo poter variare la velocità di rotazione mediante un potenziometro. Dovendo alimentare il motorino a 12V vorrei alimentare anche Arduino con lo stesso alimentatore e mi sembra di aver capito che è conveniente abbassare un po' la tensione con un paio di diodi in serie. Il problema che non ho idea di come comandare con un potenziometro il servo 360°. Vi chiederei un aiuto in questo senso.

Ciao.
Ad essere pignoli non è il potenziometro che comanda il servo, ma arduino.
Comunque, semplificando, il tutto si potrebbe ridurre a:

  • Colleghi il potenziometro ad un pin analogico di arduino
  • Leggi il valore del potenziometro
  • Fai i tuoi calcoli
  • Comandi il servo

Hai già una bozza di sketch?

Ciao, no, il problema è proprio quello...

Hai già in casa potenziometro e servo per fare delle prove?
Se per il servo utilizzi una libreria puoi partire da uno degli esempi e quando hai capito come funziona aggiungi la parte del potenziometro.

vuoi cambiare velocita? o vuoi mettere il servo in una determinata posizione tramite la manopola del "potenziometro"?

Potenziometri ne ho da 10k e da 100k e avrei bisogno di variare la velocità di rotazione. La difficoltà sta proprio li, per modificare la posizione di un micro servo di tutoria ne ho trovati diversi, mentre per variare la velocità di rotazione di un servo 360° non sono stato capace di trovare niente.

Sembrerò monotono, ma se posti lo sketch che usi per comandare il servo è più semplice darti dei suggerimenti.

E' la stessa cosa più o meno.

Un servo 360° (NON digitale) non è altro che un servo normale a cui è stato tolto il blocco meccanico che impedisce la rotazione ed il feedback dal potenziometro che rimane bloccato nella posizione corrispondete a 90°.

Se dai l'istruzione myservo.write(90); l'errore rispetto alla posizionedel potenziometro è nullo e quindi il motore si ferma.
Mano a mano che ti discosti da questo valore, da una parte o dall'altra, l'errore aumenta ed il controllore interno del servo regola la velocità del motore in modo proporzionale all'errore.

Con myservo.write(0); avrai la velocità massima in una direzione e con myservo.write(180); in quella opposta.

Intanto grazie per le pazienti risposte, quindi la base è uno sketch così :
#include <Servo.h>
Servo servo;

void setup() {
servo.attach(10);
}

void loop() {
servo.write(95);
}

da implementare con il codice per variare la velocità tramite potenziometro da es. 1k

... ecco, comincia tu a buttare giù il codice e, dove trovi problemi, chiedi :slight_smile:

Guglielmo

Mah... boh... un servo e fatto per posizionarsi non per far girare un a ventola
oppure metti dei delay nel codice mentre va da una posizione all'altra
e se ne metti molti il movimento sembrera continuo
se deve andare da posizione 0 a 10
vai a posizione 1 delayX
vai a posizione 2 delayz