martes, 31 de diciembre de 2013

Servomotor. Introducción y ejemplos

Un servomotor (también conocido como servo), es un motor de corriente continua compuesto por engranajes que limitan la velocidad. Está limitado, teniendo un rango de movimiento de 0 a 180 grados.
Son muy comunes en juguetes y en objetos pequeños.


Como podemos observar en la imagen, el servo dispone d tres cables distintos. Cada uno de ellos se conecta de la siguiente manera: el cable de color rojo (normalmente) se utiliza para recibir la corriente eléctrica. Tenemos que tener en cuenta que debe recibir entre 5 y 7V para conseguir que funcione; el cable de color negro o marrón sirve para conectarlo a tierra; finalmente el cable de color amarillo, blanco o naranja es el que va conectado al pin de nuestro Arduino.





EJEMPLOS

Movimiento de un servo de forma continua
Para realizar este proyecto solo basta con nuestra placa Arduino y el servomotor, sin requerir ningun componente extra.
De acuerdo con la descripción a la hora de hacer las conexiones, tenemos el siguiente esquema:


El sketch es muy sencillo puesto que simplemente tenemos que incluir la librería para servos, que se puede encontrar bien escribiéndola tal y como se muestra, o en Sketch > Importar librería... > Servo
Declaramos nuestra variable del tipo Servo y la declaramos en el pin número 6.
A continuación, mediante la función write mandaremos los valores que queramos que tenga el servo y, puesto que el "loop" se repite de forma continuada, el servo irá adquiriendo valores de 90º´-180º-90º-180º...



Aquí tenemos el ejemplo visual del funcionamiento del servo:




Movimiento de un servo controlado mediante un potenciómetro
A partir del montaje que hemos hecho en el ejemplo anterior y, utilizando una placa breadboard, nos disponemos a realizar un nuevo montaje utilizando un potenciómetro.
Tal y como se explica en una entrada anterior (Potenciómetro. Introducción y ejemplos), recordamos que la patilla central de este componente es la que va conectada al pin que le asignemos. De las otras dos patillas, una será la que se conecta a tierra, y la otra a la alimentación (compartiendo los mismos valores que el servo).
Actuando de esta forma, obtenemos el siguiente montaje:

En lo que se refiere al sketch, tendremos lo siguiente:


Finalmente, el resultado es el siguiente:





Y esto es todo. No dudéis en comentar y en preguntar cualquier duda.
Gracias por la atención.

I.

3 comentarios:

  1. Muy buen aporte, solo tengo una pregunta: en tu sketch, en la función MAP, de dónde salen los valores que pones entre paréntesis?

    ResponderEliminar
    Respuestas
    1. La memoria que soporta es 1.024 bites, por eso 0, 1023
      Los ángulos que puede moverse varían de 0 a 180
      lo que hace es asignar 1023 a 180º y mapear
      Así lo entiendo yo, Perdón si he dicho un dispoarate

      Eliminar
  2. me podrias hacer un favor? Necesito que un servo gire todo el rato y que se detenga si detecta un obstaculo con un sensor ultrasonico

    ResponderEliminar