Cómo conectar un servomotor de 360 grados a Arduino Uno

En este tutorial, vamos a conectar un servomotor de 360 grados a una placa Arduino Uno. Esto nos podrá servir, por ejemplo, para hacer que las ruedas de un coche se muevan.

Servomotor conectado a Arduino Uno

Servomotor conectado a Arduino Uno

En primer lugar, tenemos que tener el entorno de desarrollo para Arduino preparado, tal y como ya vimos en el tutorial de Primeros pasos con Arduino.

A continuación, conectamos el servomotor a la placa. El cable rojo, al pin 5V el negro al pin GND (nótese que, para un proyecto real, debería conectarse a una batería externa, pero para el tutorial básico nos vale así) y el otro (normalmente blanco o amarillo) al pin 9, tal y como se muestra en el esquema:

Esquema

Esquema

Y cargamos el siguiente código en nuestro Arduino Uno:

https://github.com/diegorys/electronic-components/blob/master/servomotor-360-degrees/sketchbook/servomotor-360/servomotor-360.ino

La posición de stop indica la posición del servo en la que éste está parado. Por debajo de esta posición, el servo girará hacia un lado y por encima hacia el contrario. Cuanto más se aleje de la posición de stop, más deprisa girará. Normalmente esta posición de stop está entre 90 y 95 grados.

Y éste es el resultado:

El proyecto completo lo tengo compartido en mi cuenta de Fritzing:

http://fritzing.org/projects/servo-motor-360-degrees

Adicionalmente, el código lo tengo versionado en mi cuenta de GitHub:

https://github.com/diegorys/electronic-components

diegorys

Ingeniero en Informática, apasionado de la robótica, con alma de investigador en nuevas tecnologías, analista programador y profesional del desarrollo ágil en entornos web y smartphones, con amplios conocimientos y experiencia desde antes de 2008 en entornos WAMP/LAMP, experimentando con Arduino desde 2012 y con Raspberry Pi desde 2014.

Share

13 comentarios en “Cómo conectar un servomotor de 360 grados a Arduino Uno

    1. diegorys Autor

      Hola Maikel,

      Tal y como está diseñado este ejemplo, el servo estaría dando vueltas de forma indefinida, hasta que le parases. ¿Cuál es el comportamiento que quieres?

      Responder
    1. diegorys Autor

      Hola Santiago,

      Los servos 360 grados no están pensados para parar en un cierto grado. Son una modificación de los servos 180 grados, a los que sí puedes indicar el grado en el que quieren que se pare, de 0 a 180 grados. Puedes ver cómo hacerlo en esta entrada:

      http://diegorys.es/2016/06/09/como-conectar-un-servomotor-de-180-grados-a-arduino-uno/

      Un servo de 360 grados lo único que puede hacer es girar en una dirección o en la contraria, a más o menos velocidad, o pararse. Para pararlo, tienes que escribir la posición 90 (en la teoría es 90, en la práctica depende de cómo de bien esté calibrado el servo, en mi ejemplo fue 95), de ahí, cuanto más próximo al 90 en valor absoluto esté el número que escribas, más despacio irá, así, cuanto más se vaya alejando, más deprisa irá.

      ¡Cualquier cosa me dices!

      Responder
  1. Kevin Segovia

    Buenas tardes, estoy haciendo un proyecto con arduino y estoy programando un sistema de riego, mi problema es que necesito ajustar el servo de 360° a la valvula y necesito que haga un movimiento de 90° a 0°, cuando la temperatura suba de 32°C, el servo se mueva solamente de 0 a 90 y cuando baje de 90 a 0 y no lo puedo hacer, queria saber si usted me podria ayudar por favor, de antemano muchas gracias!!

    Responder
  2. Kevin Segovia

    Buenas tardes, quisiera saber si hay alguna forma de apagar el servomotor desde la programacion? Me gustaria mover el servo durante 5 segundos y luego apagarlo y encenderlo en la direccion contraria, eso es posible?

    Responder
  3. diegorys Autor

    Buenos días Kevin,

    Sí, la hay. Los servos 360º tienen una posición de parada, normalmente el 90 o muy cercana a él. A partir de esa posición, sumando, aumenta la velocidad en un sentido, y restando aumenta en el contrario. Para pararlo, simplemente escribe:

    servo.write(90);

    Si te fijas en el ejemplo del tutorial, puedes verlo:

    https://github.com/diegorys/arduino-example-servomotor-360/blob/master/sketchbook/servomotor-360/servomotor-360.ino

    Gracias por escribir y ya nos comentarás si lo consigues.

    Un saludo.

    Responder
  4. Gustavo

    Hola mi idea es trabajar con servo de giro completo, pero necesito que de 720 grados es decir dos vueltas, unas ves ahi vuelva a girar para el sentido contrario, 720 grados. Alguna ayuda?

    Responder
    1. Joan

      Hola Gustavo!
      ¿Pudiste encontrar solución a tu necesidad? Yo me encuentro en una situación parecida, y no sé como solucionarlo.
      Alguna ayuda?

      Responder
  5. arturo

    hola, muy buenos tus tutoriales quisiera saber si me pudieses ayudar para hacer girar mi servomotor con una placa arduino uno a diferentes velocidades como un agitador desde 20 revoluciones por minuto a 200 revoluciones por minuto. te lo agradeceria mucho

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.