Arduino, servo motore a rotazione continua controllato con un potenziometro

Questo progetto illustra un semplice circuito per iniziare a giocare con Arduino e i motori servo (in questo caso uno a 360 gradi, come quelli che trovate a questo link eBay).
Come si può vedere nel video qui sotto, si può variare il verso e la velocità della rotazione agendo su un potenziometro.




Ecco lo schema per la realizzazione:









Qui lo sketch:

  1. #include <Servo.h>
  2. Servo myservo;
  3. int analogPin = 0;
  4. int val = 0;
  5. void setup()
  6. {
  7.   myservo.attach(9);
  8. }
  9. void loop()
  10. {
  11.   val = analogRead(analogPin);
  12.   myservo.write (val);
  13.   }

Segui Daniele Alberti su Google+

14 commenti:

  1. Ciao, potresti dirmi che modello di servo hai utilizzato? Grazie mille|

    RispondiElimina
  2. Ciao, posso chiederti una cosa? Come mai il servomotore ritorna indietro? Non capisco... c'è un modo per farlo continuare a girare all' "infinito"?

    RispondiElimina
    Risposte
    1. Si certo, alla riga 14 al posto di
      "myservo.write (val)"
      Scrivi
      "myservo.write (180)"
      E lui continuerà incurante della posizione del potenziometro.

      Elimina
  3. salve, ma se volessi bloccare la posizione del servo come faresti

    RispondiElimina
    Risposte
    1. Ciao, semplicemente scrivendo:
      myservo.write (90);
      blocchi il servo.
      Invece se tra le parentesi scrivi 0
      ruoterà alla massima velocità in un senso, con 180 nell'altro.

      Elimina
  4. Ciao,
    ma se volessi fargli fare 5 giri? Quindi 1800°?

    RispondiElimina
    Risposte
    1. Devi farlo ruotare e cronometri quanto ci mette per fare quella rotazione, poi glielo fai fare in automatico mettendo un delay del valore che hai cronometrato.
      Se ti serve qualcosa di più preciso devi usare un motore passo passo, trovi degli articoli qui sul blog

      Elimina
  5. Ciao Daniele, che valore ha il potenziometro che hai utilizzato in questo esempio ?

    RispondiElimina
    Risposte
    1. Ciao, è da 10k ma vanno benissimo anche altri con valore simile

      Elimina
  6. Ho un servo da 360 vorrei che per ogni movimento del potenziometro mi corrisponda un valore doppio di rotazione del servo. E che resti in quella posizione finché non rimuovo il potenziometro.... È possibile farlo??? Mi sto avvicinando ora ad arduino e ancora non so se è possibile Grazie, Sara

    RispondiElimina
  7. Ciao Daniele da poco ho stampato un rover a 2 ruote con motore servo. Sono riuscito a modificare il servo solo che per farlo fermare devo write(1), con 0 si muove pochissimo. Per farlo ruotare nell'altro senso devo mettere il mento davanti.
    Sono rimasto bloccato e non riesco a completare il lavoro. Il robot si chiama Juno-Rover su thingverse. Però c'erano solo file stl e nulla sul programma. Se mi fai una mano mi faresti un grande favore che ricambierei volentieri. Grazie Antonio Ferreri

    RispondiElimina
  8. Scusa il meno ....write(-60) write(180)

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post