PROYECTOS » Motor paso a paso

'****************************************************************

'*  Name    : UNTITLED.BAS                                      *

'*  Author  : [select VIEW...EDITOR OPTIONS]                    *

'*  Notice  : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *

'*          : All Rights Reserved                               *

'*  Date    : 25/02/2022                                        *

'*  Version : 1.0                                               *

'*  Notes   :                                                   *

'*          :                                                   *

'****************************************************************

''''DIRECCION DE RE3GISTROS'''

TRISA=133

TRISB=134

PORTA=5

PORTB=6

'''DEFINICION DE VARIABLES'''

X VAR BYTE    'VARIABLE X PARA INCREMENTAR EL PULSO CON PULSOUT'


''CONFIGURACION DE PUERTOS''

POKE 133,3  'PORTA=00000011(PA.0 Y PA.1 COMO ENTRADA)'

POKE 134,0  'PORTA=00000000(TOFO PORTB COMO SALIDAS)'


''DEFINICION DE ALIAS'''

PULSADOR1 VAR PORTA.0   'INCREMENTA ANGUYLO DEL SERVOMOTOR'

PULSADOR2 VAR PORTA.1   'DECREMENTO ANGULO DEL SERVOMOTOR'


'''ESTADOS INICIALES'''

X=187     '178*10US=1.87ms DE ANCHO DE PULSO(PULSOUT), 0 GRADOS

LOW PORTB.0  'INICIA SALIDA DE PULSO EN BAJO'

'''programa principal''

INICIO:

        IF PULSADOR1=0 THEN LAZO1   'SI PA.0=0 ENTONCES SALTO A LAZO1'

        IF PULSADOR2=0 THEN LAZO2   'SI PA.1=0 ENTONCES SALTO A LAZO2'

        PULSOUT PORTB.0,X           'SALIDA DE ANCHO DE PULSO(100*X us)

        PAUSE 18     'ESPERA DE 18 ms (APROX FREC DE 60 HZ)

        GOTO INICIO   'RETORNO A ETIQUETA INICIO'

LAZO1:

        X=X+1             'INCREMENTA EL VALOR DEL ANCHO DE PULSO'

        PULSOUT PORTB.0,X 'SALIDA DE ANCHO DE PULSO(100*X us)

        PAUSE 18          'ESPERA DE 18 ms (APROX FREC DE 60 HZ)

        IF X>250 THEN     'ANCHO DE PULSO>2.5ms(250*10uS) ENTONCES:

                    X=250 'VALOR MAXIMO DE ANCHO DE PULSO=2.5ms'

        ENDIF

        GOTO INICIO   'RETORNO A ETIQUETA INICIO'

LAZO2:

        X=X-1             'DECREMENTA EL VALOR DEL ANCHO DE PULSO'

        PULSOUT PORTB.0,X 'SALIDA DE ANCHO DE PULSO(100*X us)

        PAUSE 18          'ESPERA DE 18 ms (APROX FREC DE 60 HZ)

        IF X<00 THEN 'ANCHO DE PULSO<1ms(100*10us) ENTONCES:'

            X=100  'VALOR MINIMO DE ANCHO DE PULSO**1ms'

        ENDIF

        GOTO INICIO   'RETORNO A ETIQUETA INICIO'