Un servomotor es un tipo especial de motor que permite controlar la posición del eje en un momento dado. Esta diseñado para moverse determinada cantidad de grados y luego mantenerse fijo en una posición. El interior de un servomotor es un motor DC común y corriente. El eje del motor se acopla a una caja de engranajes similar a una transmisión. Esto se hace para aumentar el par del motor y permitir mantener una posición fija cuando se requiera. El circuito electrónico es el encargado de manejar el movimiento y la posición del motor.
Se debe resaltar que, dentro de los diferentes tipos de servomotores, éstos se pueden clasificar según sus características de rotación en dos grandes grupos:
Servomotores de rango de giro limitado: son el tipo más común de servomotor. Permiten una rotación de 180 grados, por lo cual son incapaces de completar una vuelta completa. El ángulo de giro, en este caso nos permite hacer un barrido entre -90º y 90º, lo que viene a ser un ángulo de giro de 180º. Tienen una precisión de un grado es decir, podemos mover de grado en grado.
Servomotores de rotación continua: se caracterizan por ser capaces de girar 360 grados, es decir, una rotación completa. Su funcionamiento es similar al de un motor convencional, pero con las características propias de un servo. Esto quiere decir que podemos controlar su posición y velocidad de giro en un momento dado.
Para controlar el servomotor se le envía pulsos cada 20 ms es decir 50Hz. ¿Qué quiere decir todo esto?
Este dato nos indica la velocidad máxima a la que podemos mover el servomotor con Arduino. Solo podremos cambiar de posición cada 20 ms. Esto dependerá del tipo y marca de nuestro servomotor. La anchura del pulso es lo que codifica el ángulo de giro, esta anchura varia según el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque pueden variar. En la explicación del vídeo se aclara este aspecto.
VÍDEO DE LA PRÁCTICA
Práctica resuelta. Las explicaciones a las tres prácticas están indicadas en esos rangos de tiempo.
Min 0< Qué es un Servo < Min 5:09
Min 5:10 < Librería Servo.h < 7:55
Min 7:55 < Práctica 12.1< 9:30
Min 9:30 < Práctica 12.2< 14:00
Min 14:00 < Práctica 12.3< 18:25
Min 18:25 < Práctica 12.4< Final
Montamos el circuito de la figura en TinkerCad. Es esta práctica vamos a realizar la secuencia de giro de un servomotor desde su posición inicial 0º a 90º y por último a 180º, volviendo a 0º y repitiendo el ciclo de trabajo.
El programa sería:
En el montaje de la siguiente práctica es el mismo, solo que ahora el desplazamiento del motor debe cumplir que vaya de forma suave y continuada desde 0º a 180º y cuando llegue a 180º vuelva a 0º. En este caso el código será el de la imagen de abajo y como ejercicio podemos variar las velocidades de giro actuando sobre los delays de los bloques for.
Como en la práctica 11.1 vamos a controlar el movimiento del giro del servomotor a través de un potenciómetro. Montamos en TinkerCad el circuito de la figura de abajo. IMPORTANTE para evitar errores en el montaje es recomendable hacer las conexiones de los servomotores fuera de la protoboard, en caso contrario nos puede parecer que está conectado al servo cuando realmente está conectado a la protoboard sin que halla conexión entre ambos.
El programa sería:
La idea de este circuito es que dependiendo de la luz que nos incida en el LDR, el servomotor se vaya moviendo al tiempo que los LEDs de encienden indicándonos los distintos niveles de luminosidad.