Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo:
Especificaciones:
Diseñar un circuito de control utilizando un FPGA, el cual se encargará de activar un motor a pasos
“bipolar” con 4 líneas de control. Los movimientos que debe realizar el motor son en sentido a las
manecillas del reloj, viceversa y detenido por medio de los botones que controlan estos movimientos.
La figura 1.1 muestra el diagrama a bloques del sistema.
Diagrama de bloques:
Rosa
M(0 … 3)
Divisor
Bit 17
de div_reloj FSM
frecuencia
Naranja
Amarillo
Azul
Rojo
F H UD
Un motor a pasos (stepper motor) tiene la propiedad de moverse de una posición a otra (paso), por cada
pulso de reloj que se le aplique. Un motor de este tipo es conveniente donde se requiere posicionar con
una buena aproximación el rotor. En cuanto a su funcionamiento y configuración, los motores a pasos
se clasifican en tres tipos: unipolares, bipolares y multifase.
En este caso, se utilizará el motor unipolar cuyo control es el más sencillo. Para el uso del tipo unipolar
se debe notar que si se el controlador tiene conectado el común a GND, se excitarán las bobinas con V dc
o el caso contrario cuando el común está a V dc. En la figura 1.2 se muestra un esquema de la conexión
interna del motor a pasos que se utilizará. La frecuencia de trabajo en algunos motores puede llegar a
ser hasta los 6 MHz.
Figura 1.2 Motor a pasos de 4 fases, con conexiones propuestas.
Se tienen tres posibles secuencias a seguir: Paso Completo (Wave drive) , paso normal y paso medio.
Para la primera secuencia de movimiento se plantea la siguiente tabla:
Estado a1 b1 a2 b2
0 1 0 0 0
1 0 1 0 0
2 0 0 1 0
3 0 0 0 1
Estado a1 b1 a2 b2
1 1 0 0 0
0 1 1 0 0
2 0 0 1 1
3 1 0 0 1
Estado a1 b1 a2 b2
0 1 0 0 0
1 1 1 0 0
2 0 1 0 0
3 0 1 1 0
4 0 0 1 0
5 0 0 1 1
6 0 0 0 1
7 1 0 0 1
El programa módulo de control:
Library IEEE;
Use IEEE.Std_logic_1164.all;
Use IEEE.Std_logic_arith.all;
Use IEEE.Std_logic_unsigned.all;
Entity mot_pasodeuno is
Port (reloj, reset, stop: in std_logic;
dato_motor: out std_logic_vector(3 downto 0));
End Entity;
Process(pr_state, stop)
Begin
Case pr_state is
End Case;
End Process;
Process(pr_state)
Begin
Case pr_state is
When inicia => dato_motor <= "0000";
When cero => dato_motor <= "1000";
When uno => dato_motor <= "0100";
When dos => dato_motor <= "0010";
When tres => dato_motor <= "0001";
When others => NULL;
End Case;
End Process;
End behavioral;
Actividades complementarias:
1.- Con base en el programa ejemplo del paso wave drive, el alumno deberá implementar el programa
donde con ayuda de tres señales, se pueda manejar cualquiera de las tres secuencias que manejan el
motor a paso.
2.- El alumno deberá realizar las modificaciones pertinentes para poder girar el motor y contar un
cierto número de vueltas en un sentido y en el otro sentido.
Los parámetros del motor paso a paso son:
• Modelo: 28BYJ-48 – 5V
• Tensión nominal: 5V (o 12 V, valor indicado en la parte trasera).
• Cantidad de fases: 4.
• Reductor de velocidad: 1/64
• Ángulo de paso: 5,625° / 64
• Frecuencia: 100Hz
• Resistencia en CC: 50Ω ±7 % (25° C)
• Torque con tracción: >34,3mN.m (120Hz)
• Torque en autoposicionamiento: >34,3mN.m
• Torque con fricción: 600-1200 gf.cm
• Arrastre en torque: 300 gf.cm