Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo:
Aprender sobre la aplicación de algunas funciones básicas de la biblioteca auxiliar de Matlab Simulink para
observar el funcionamiento y control de servomotores.
Introducción
El servomotor es un dispositivo electromecánico que consiste en un motor eléctrico, un juego de engranes y una tarjeta de
control, todo dentro de una carcasa de plástico. Un servo tiene la capacidad de ser controlado en posición. Es capaz de
ubicarse en cualquier posición dentro de un rango de operación generalmente de 180º pero puede ser fácilmente modificado
para tener un giro libre de 360º. Los servos se suelen utilizar en robótica, automática y modelismo (vehículos por radio-
control, RC) debido a su gran precisión en el posicionamiento.
Los servomotores funcionan por medio de modulación de ancho de pulso (PWM) Todos los servos disponen de
tres cables, dos para alimentación Vcc y Gnd (4.8 a 6 [V]) y un tercero para aplicar el tren de pulsos de control,
que hace que el circuito de control diferencial interno ponga el servo en la posición indicada.
La frecuencia usada para mandar la secuencia de pulsos al servomotor es de 50 Hz esto significa que cada ciclo
dura 20 ms, Las duraciones de cada pulso se interpretan como comandos de posicionamiento del motor, mientras
que los espacios entre cada pulso son despreciados.
Dado que existen algunas pequeñas diferencias entre las distintas marcas de servos, en la tabla 1 están indicados
las características técnicas de varias marcas que comercializan este producto.
Tabla 1. Características de servomotores de diferentes marcas
Partes de un servomotor
En general, los servos suelen estar compuestos por 4 elementos fundamentales:
b. Engranajes reductores
Tren de engranajes que se encarga de reducir la alta velocidad de giro del motor para acrecentar su capacidad de
torque (o par-motor).
c. Sensor de desplazamiento
Suele ser un potenciómetro colocado en el eje de salida del servo que se utiliza para conocer la posición angular
del motor.
d. Circuito de control
Es una placa electrónica que implementa una estrategia de control de la posición por realimentación. Para ello,
este circuito compara la señal de entrada de referencia (posición deseada) con la posición actual medida por el
potenciómetro. La diferencia entre la posición actual y la deseada es amplificada y utilizada para mover el
motor en la dirección necesaria para reducir el error.
Motores rotativos
Motores lineales
Motores Angulares
a = arduino ();
3. Verifique los valores del rango de ancho de pulso de la hoja de datos del servo motor para calibrar el motor
para que gire en el rango esperado. Este ejemplo usa 700 10-6 y 2300 10-6 para que el motor se mueva
de 0 a 180 grados.
clear s;
s = servo(a,'4','MinPulseDuration',700*10^-6,'MaxPulseDuration',2300*10^-6)
s =
Servo with properties:
Pins: D4
MinPulseDuration: 7.00e-04 (s)
MaxPulseDuration: 2.30e-03 (s)
4. Cambie la posición del eje del servomotor de 0 (mínimo) a 1 (máximo) con incrementos de 0,2, es decir, 36
grados. Visualice la posición actual cada vez que cambie la posición.
En un servomotor estándar, la posición del eje puede ajustarse con precisión, generalmente entre 0 y 180
grados. Los servomotores se utilizan en muchas aplicaciones y productos industriales, militares y de consumo.
Para ejecutar este ejemplo, se requiere el siguiente hardware:
1. Crear el modelo Simulink que se muestra en la siguiente figura (abrir desde el prompt del espacio de trabajo
de Matlab: openExample('arduino/ServoControlExample')
Para correr este modelo en el hardware independientemente de Simulink presione el botón “Deploy to hardware”
en la barra de herramientas del editor
Como resultado, la tensión en el pin de entrada analógica también cambia. Su tarea es establecer el ángulo del
servomotor proporcional a este voltaje.
Si tiene problemas para crear el modelo como se describe arriba, puede usar el modelo Servo Control.
Ejercicio 4. Control de la posición del servomotor a través de una fotocelda
En esta tarea, creará un modelo que establece la posición del servomotor según la intensidad de luz detectada
por una fotocélula. En una habitación oscura, el eje del motor debe colocarse a 0 grados, mientras que en una
habitación brillante debe colocarse a 180 grados.
Use una fotocélula y una resistencia en lugar del potenciómetro que usó en la Tarea 4. Conecte un extremo de la
fotocélula al pin de 5V en la placa Arduino. Luego, conecte un extremo de la resistencia al pin GND en la placa.
Conecte los otros extremos de la fotocélula y la resistencia entre sí y luego a la entrada analógica pin 0 en la
placa.
Use el bloque de entrada digital para ajustar la posición del eje del motor dependiendo de la señal o señales
de control externo.
Use el bloque Servo Lectura Estándar para leer la posición del eje del motor y compararlo con la posición
deseada