Académique Documents
Professionnel Documents
Culture Documents
Introduccin
En varios sistemas electrnicos nos encontramos con una parte mecnica que
transmite algn movimiento por palancas, levas, poleas, ejes de rotacin, entre
otras, todas ellas obtienen, en primera instancia, el movimiento de algn motor.
Existen diferentes tipos de motores, sin embargo para sistemas como: DVDs,
Grabadoras, Quemadores de discos, Impresoras, etc; se necesita un mejor control
de las vueltas que realiza el motor, de esta manera los motores a pasos resultan ser
los ms convenientes.
De igual manera disponemos de motores a pasos unipolares o bipolares, cada uno
de ellos tiene una combinacin a sus entradas que determina su posicin. Para
controlar la secuencia de estas combinaciones podemos utilizar un PIC.
Objetivo
Objetivos especficos
funcionamiento.
Realizar un programa en lenguaje ensamblador para controlar el sentido de
Marco Terico
Hemos mencionado que un micro controlador puede ser considerado como una
computadora, pues posee una ALU (Unidad de Aritmtica y Lgica), registros,
buses y unidad de control, es decir tiene una CPU (Unidad Central de
Procesamiento).
La mayora de los dispositivos de lgica secuencial, entre ellos los CPU, son de
naturaleza sncrona. Es decir, estn diseados y operan en funcin de una seal de
sincronizacin. Esta seal, conocida como seal de reloj, usualmente toma la forma
de una onda cuadrada peridica. Calculando el tiempo mximo en que las seales
elctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un
CPU, los diseadores pueden seleccionar un perodo apropiado para la seal de
reloj.
Para el correcto funcionamiento del micro controlador debemos definir la
frecuencia del oscilador pues determinar los ciclos de instruccin; podemos
utilizar un oscilador interno o externo, sin embargo es recomendable utilizar un
oscilador de cristal externo para evitar un mal funcionamiento frente a las
variaciones de temperatura dentro del micro controlador.
A continuacin mostramos la tabla del registro de configuracin del oscilador
Podemos ver que por default tiene cargado el valor: 0100 X000 que de acuerdo con
los valores de la tabla anterior corresponderan a la siguiente configuracin:
Motor Bipolar
En este tipo de motores las bobinas del estator se conectar en serie formando
solamente dos grupos, que se montan sobre dos estatores. De acuerdo a la (Figura
5) se observa que de este motor salen cuatro hilos que se conectan al circuito de
control que realiza la funcin de cuatro interruptores electrnicos dobles, que nos
permiten variar la polaridad de alimentacn de las bobinas.
Con la activacin y desactivacin adecuada de dichos interruptores dobles,
podemos obtener las secuencias adecuadas para que el motor pueda girar en un
sentido o en otro.
Motor Unipolar
Estos motores suelen tener 6 o 7 cables de salida, dependiendo de sus conexiones
internas. Este tipo se caracteriza por ser ms simple de controlar. En la (Figura 7)
podemos apreciar un ejemplo de conexionado para controlar un motor a pasos
unipolar mediante el uso de un ULN2803, el cual es un array de 8 transistores tipo
darlington capaz de manejar cargas de hasta 500mA. Las entradas de activacin (A,
B, C y D) pueden ser activadas por un micro controlador.
Clculos
Dado que se configur el oscilador interno del microcontrolador a 4MHz, se tiene:
Ciclo de reloj:
Ciclo de instruccin:
Para limitar la corriente del pin de Reset y el botn pulsador a 0.5mA, utilizar una
resistencia de 10k:
4: Conta2
5: conta3
6: endc
7:
8: retardo200ms
9: clrf Conta1
10: clrf Conta1
11: Repeat
12: decfsz Conta1, F
14:
15: decfsz Conta2, F
16:
17:
bra Repeat
18: Return
movlw 0x62
;Palabra de congiguracin del OSC Interno
movwf OSCCON ;Configurar OSCC2ON <- W
clrf PORTD
clrf PORTB
movlw 0x03
;Configurar RD0 y RD1 como entradas
movwf TRISD
;TRISD <- W
clrf TRISB
;Configurar PORTD como salida
clrf SecuenC ;Estado de Posicin a 0x00
INICIO
movf SecuenC, W
call MotorPosition
movwf PORTB
call Retardo200ms
ButtonRight
;Verificar Botn Derecho
btfss PORTD, 0 ;Verificar RB0 == 1, R == ON
bra ButtonLeft ;RB0 == 0, R == OFF
btfsc PORTD, 1 ;Verificar RB1 == 0, L == OFF
bra INICIO
;Ambos estn Presionados
bra MoveRight
;Entradas RB0 == 1, RB1 == 0
ButtonLeft
;Verificar Botn Izquierdo
btfss PORTD, 1 ;R == OFF ahora Verificar RB1 == 0, L == ON
bra INICIO
;Ambos estn Sueltos
bra MoveLeft
MoveRight
movf SecuenC,
xorlw 0x06
btfss STATUS,
bra Continue1
clrf SecuenC
bra INICIO
Continue1
incf SecuenC,
incf SecuenC,
bra INICIO
MoveLeft
movf SecuenC,
xorlw 0x00
btfss STATUS,
bra Continue2
movlw 0x06
movwf SecuenC
bra INICIO
Continue2
decf SecuenC,
decf SecuenC,
bra INICIO
F
F
W ;SecuenC -> W
;Comprobar si W == 0
Z ;Salta si Z == 1, SecuenC = Indice Min
;Secuence =/= 0
;Rotar hasta Indice Max
;Asignar Indice Max -> SecuenC
F
F
MotorPosition
addwf PCL, F
retlw 0x0A
;0000 1010
retlw 0x09
;0000 1001
retlw 0x05
;0000 0101
retlw 0x06
;0000 0110
include "Retardo.inc"
Simulacin en proteus
Se construy en ISIS Proteus el diagrama elctrico de la siguiente manera y se
verific que el motor responda como se esperaba al presionar los pulsadores que
controlan el sentido de giro del mismo. El motor siempre se mueve slo un paso si
se presiona slo una vez, el sentido depende del botn presionado.
Si el botn se mantiene presionado el motor seguir girando en el sentido
correspondiente hasta que se suelte, y si ambos se encuentran en el mismo estado
el motor no har nada.