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.
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?
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
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