domingo, 15 de julio de 2012

MATERIAL:

1-L293D. 
driver para cambio de giro

1- Motor Bipolar 24v.

Motor bipolar 24v
1- PIC 16f84a.
1- Crystal 4Mhz.
2- Capacitores cerámicos de 22pf.
2- Resistores de 10k.
2- Push button.

Un motor paso a paso gira en función de una  secuencia de pulsos aplicados a sus devanados. El eje del motor gira un determinado ángulo por cada impulso de entrada. Los incrementos de rotación o pasos se miden en grados.

Motor Bipolar
De este motor salen cuatro hilos conectados al circuito del control, que realiza la función de cuatro interruptores electrónicos dobles, se pueden obtener las secuencias para que el motor gire de un lado o del otro.

L293D 
Vccs2 es el voltaje del motor, EN 1,2,3,4 poner a 1.

Circuito simulado en proteus:


Giro a la derecha 
Half step
Modo medio paso, el rotor avanza medio paso por cada pulso de exitacion. presenta como principal ventaja una mayor resolucion de paso.

control de un motor bipolar

Al presionar los dos pushbutton se activa este modo.

Giro a la izquierda 
Modo paso completo, avanza un paso por cada pulso de exitacion.


Al presionar el primer pushbutton se activa este modo.

Video de la simulación Proteus:


 


Programa en asm.

__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC

        LIST P=16F84A

        INCLUDE<P16F84A.INC>

cblock

endc

status  equ  0x03

porta   equ  0x05

portb   equ  0x06

trisa   equ  0x85

trisb   equ  0x86

org 0

inicio

     bsf   status,5

     bsf   porta,0

     bsf   porta,1

     clrf  portb

     bcf   status,5

  

activar

     btfss porta,0

     goto  giro

     clrf  portb

     goto  fin

giro

     btfsc porta,1   

     goto  izq_z

     call  der

     goto  fin

izq_z

     call  izq

fin

     goto  activar

izq

     movlw b'00000101'

     movwf portb

     call  Retardo_20ms

     movlw b'00000110'

     movwf portb

     call  Retardo_20ms

     movlw b'00001010'

     movwf portb

     call  Retardo_20ms


     movlw b'00001001'

     movwf portb

     call  Retardo_20ms

     return

   

der

     movlw b'00001001'

     movwf portb

     call  Retardo_20ms

     movlw b'00001000'

     movwf portb

     call  Retardo_20ms

     movlw b'00001010'

     movwf portb

     call  Retardo_20ms

     movlw b'00000010'

     movwf portb

     call  Retardo_20ms

     movlw b'00000110'

     movwf portb

     call  Retardo_20ms

     movlw b'00000100'

     movwf portb

     call  Retardo_20ms

     movlw b'00000101'

     movwf portb

     call  Retardo_20ms

     movlw b'00000001'

     movwf portb

     call  Retardo_20ms

     return

     INCLUDE <retardos.inc>

    end

Para aumentar o disminuir el tiempo del disparo utilizar los tiempos de la librería de retardos.

DESCARGAR SIMULACION,  ASM Y HEX:



REFERENCIAS:  

  • Microcontrolador 16f84 desarrollo de proyectos, pag.  481-504
 

SIGUEME EN FECEBOOK

MI TWITTER

Translate