¿Cómo probar si un motor paso a paso bipolar está funcionando?

0

Tengo este motor paso a paso:

Escribo el siguiente código para un microcontrolador PIC16F877 para un movimiento continuo en el motor paso a paso:

    LIST P=16F877A
include "P16F877A.INC"
__CONFIG _RC_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF  & _CPD_OFF & _DEBUG_OFF;
ERRORLEVEL -302

cblock 0x020
    d1
    d2
endc    

    org         0x00
    goto        start
    org         0x04
    retfie

start
    bcf         STATUS,RP0              ;BANK 0
    bcf         STATUS,RP1
    clrf        PORTB


    bsf         STATUS,RP0
    bcf         STATUS,RP1              ;BANK 1
    clrf        TRISB
    bcf         STATUS,RP0              ;BANK 0

    call move

move
    movlw   b'00001010'
    movwf   PORTB
nop
    call    delay
nop 
    movlw   b'00000110'
    movwf   PORTB
    call    delay

    movlw   b'00000101'
    movwf   PORTB
    call    delay

    goto    move
return



delay
    movlw   0xFF
    movwf   d1
delay_0
nop
nop
nop
nop
    nop
    nop
    nop
    decfsz  d1,f
    goto delay_0
    nop
    return



idle_loop
    goto        idle_loop

end

Pero el motor paso a paso no está funcionando. Conecto: rojo: RB0, verde: RB1, amarillo: RB2, azul: RB3 y tengo un transistor darlington ULN2003A.

¿Hay alguna forma alternativa de probarlo para ver si no funciona correctamente?

    
pregunta 20317

1 respuesta

2

El motor paso a paso que tiene necesita un controlador de puente, no una unidad unipolar como un transistor Darlington.

Además, el bucle de "movimiento" necesita 4 pasos, cambiando el estado de un devanado a la vez. El tuyo solo tiene 3 pasos; por lo que en "goto move" invierte ambos devanados, lo que detendrá el motor.

El controlador que tiene puede bajar un extremo de una bobina a 0V. Lo que funciona bien si puede conectar permanentemente el otro extremo a 5V (u otro V +) Esta es la forma en que se cablean los steppers con 4 bobinas separadas.

Pero un controlador de puente puede llegar a 0V o 5V, y puede ver que tiene que hacer esto: si el rojo es 0V, el verde debe ser 5V y viceversa. Un ejemplo de un controlador de puente es el L293D que se usa en el escudo del motor AdaFruit entre otros lugares . La "Figura 2" en esa hoja de datos muestra una forma de usarla (con los inversores generando 2 de los 4 bits de entrada, donde está utilizando 4 bits de puerto).

Secuencia de cambio de cuatro pasos:
mover:
10 10
01 10
01 01
10 01
goto mover

Esperamos que esta información sea suficiente para que comiences.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas