4.1 Consultar el funcionamiento de los motores paso a paso unipolares y bipolares Dentro de los motores de pasos existen los unipolares y los bipolares. Normalmente los motores bipolares poseen 4 cables de alimentación y para poder controlarlo se debe seguir cierta secuencia que permita cambiar el sentido del flujo de corriente que recorre por cada una de las bobinas, que por lo general son dos. Los motores unipolares en cambio son mucho más faciles de controlar ya que la manera más común de manejar estos motores es activando cada bobina y las demás apagadas. Al comparar estás pequeñas caractéristicas se llega a la conclusión que es mucho más facil controlar un motor unipolar que un bipolar, ya que incluso para manejar los bipolares se necesita una inversión de polaridad para variar el sentido del flujo, pero esto no quiere decir que necesariamente que alguno sea mejor que otro. La principal característica observable, que permite identificar a un motor bipolar y a un unipolar, es que el motor bipolar siempre posee 4 cables y el unipolar siempre posee mas de 4 cables Para poder controlar un motor a pasos bipolar se tiene una secuencia determinada de cambio de polaridad del voltaje de alimentación del motor( 4.2 Desarrollar un programa que permita manejar un motor de pasos a través de un pórtico de un microcontrolador. El usuario podrá realizar las siguientes actividades: Control de velocidad: Marcha adelante continuo. Marcha atrás continuo. Variación de velocidad, de 0 a Vmax con el motor funcionando Paro Control de posición (en ambos sentidos de giro): Variación de posición de 30° Variación de posición de 60° Variación de posición de 90° Variación de posición de 180° . org 0x00 rjmp inicio .def tempo=r16 .def conta=r17 .contador sbis pind.org 0x04 rjmp subir .4 rjmp continuo rjmp posicion paro: ldi tempo..r21 sts ocr1al.asm" lazo: out portc.6 rjmp paro sts ocr1ah.contador breq paro ldi tempo.r20 sbic pind. Author : Carlos .include "conf_puertos.def final=r24 .tempo rjmp lazo posicion: cp final.org 0x1A rjmp inte .asm . .org 0x02 rjmp bajar .def intveces=r23 . Created: 06/12/2015 15:13:44 . prepa 6 cmicros.0b00000000 sts timsk1.def sal=r18 . .cseg .def contador=r19 .0b00000010 .org 0x30 rjmp listo inicio: . low(tabla<<1) add zl.z out portb.sal regreso: rjmp lazo subir: subi final.low(tabla<<1) add zl.conta lpm sal.-4 reti bajar: subi final.tempo sbis pind.5 rjmp hor antihor: cpi conta.contador brcs hor rjmp antihor rjmp lazo continuo: ldi tempo.0b00000010 sts timsk1.tempo ldi tempo.high(tabla<<1) ldi zl.sal rjmp regreso hor: cpi conta.sreg push tempo lds r20.adcl .0b11111110 sts adcsra.4 reti listo: push tempo in tempo.$FF brne continua_hor ldi conta.z out portb.4 brne continua ldi conta.conta lpm sal.0 continua: ldi zh.sts timsk1.3 continua_hor: ldi zh.tempo cp final.high(tabla<<1) ldi zl. adch pop tempo out sreg.5 rjmp salto inc conta inc contador rjmp reg_inte salto: dec conta dec contador rjmp reg_inte inte_posicion: cp final.8 sbis pind.4 rjmp inte_posicion sbis pind.lds r21.0b11110110 .db 0b11111100.tempo pop tempo reti inte: dec intveces brne reg_inte ldi intveces.contador brcs disminuir_inte aumentar_inte: inc contador inc conta rjmp reg_inte disminuir_inte: dec contador dec conta reg_inte: reti tabla: .db 0b11110011.0b11111001 . además del timer de 16 bits. .Justificacion de microcontrolador: Se utilizo el Atmega 164p porque posee varios pines de interrupción y varios conversores análogos digitales. 3 Escribir un programa para el computador que permita controlar las tareas mencionadas anteriormente. .4.