Colapsar columna

Menu Usuario -

Hola, Visitante
avatar


Mas Activos -

nocturno
Mensajes: 2011
Meta
Mensajes: 276
djfreeman
Mensajes: 272
spiderman
Mensajes: 257
HJ.0x00
Mensajes: 224

Autor Tema: Programa para accionar un motor paso a paso  (Leído 289 veces)

Desconectado Ramoneji

  • Nuevo fichaje
  • *
  • Mensajes: 3
Programa para accionar un motor paso a paso
« en: Julio 12, 2021, 21:51 »
Hola a todos.
Estoy dando mis primeros pasos en programar PICs en MiKrobasic PRO, es decir que sé muy poco de programacion en Basic.
Buscando por internet he dado con un listado para mi proyecto. Pero cuando lo copio al editor de Mikrobasic, da error en la linea que contiene la función Lookup, que creo que no existe en ese compilador
La línea es de este bucle:

For digito = 0 To 4
LookUp digito, [1, 2, 4, 8], PORTB 'Crea los pulsos en el puerto B
pause 150 'Tiempo entre paso y paso del motor
Next digito

¿Con que instrucciones puedo reemplazar esa funcion?

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Programa para accionar un motor paso a paso
« Respuesta #1 en: Julio 13, 2021, 06:51 »
Habría que saber qué hace esa función lookup para intentar reemplazarla.
Yo creo que lo que hace es, en función del valor de "digito", poner a 1 un pin diferente del PORTB.

Si es así, y en PORTB tienes conectado el motor paso a paso en los cuatro primeros pines, podrías sustituir directamente esa línea por esta otra:
PORTB = pow( 2,digito)

A ver si te funciona
Un saludo desde Sevilla, España

Desconectado Ramoneji

  • Nuevo fichaje
  • *
  • Mensajes: 3
Re:Programa para accionar un motor paso a paso
« Respuesta #2 en: Julio 13, 2021, 18:04 »
Yo tambien creo que esta funcion Lookup va poniendo a 1 las salidas del PORTB.
He probado esa funcion pow pero me da error de insuficiente espacio en ROM.
Ahora voy a probar algo menos elegante como esto:

gir = PORTA
While gir = 1  'Giro a la izquierda
        PORTB = %00110101 'primer paso 90º
        Delay_ms(50)
        PORTB = %00110110 'segundo paso
        Delay_ms(50)
        PORTB = %00111010 'tercer paso
        Delay_ms(50)
        PORTB = %00111001  'cuarto paso
        Delay_ms(50)
        wend
       
        While gir = 2  'Giro a la derecha
        PORTB = %00111001  'primer paso
        Delay_ms(50)
        PORTB = %00111010 'segundo paso
        Delay_ms(50)
        PORTB = %00110110' 'tercer paso
        Delay_ms(50)
        PORTB = %00110101  'cuarto paso
        Delay_ms(50)
        wend
De momento no lo he probado, porque tambien estoy aprendiendo a importar el hex en un circuito en Proteus y simular su funcionamiento. Con LEDs ye empieza a funcionar, pero no aun con un motor PAP, je je...
Soy un novato en todo

Desconectado Ramoneji

  • Nuevo fichaje
  • *
  • Mensajes: 3
Re:Programa para accionar un motor paso a paso
« Respuesta #3 en: Julio 17, 2021, 11:17 »
Ya empieza a funcionar tanto en Mikropic como en Proteus. Aun tengo que ajustar algunas cositas pero ya empiezo a dominar ambos programas.
El programa completo que es usado es:

program Control_motor_pas_a_pas_2
' Declarations section
TRISA = 0xFF 'Puerto A como entrada
TRISB = 0x00 'Puerto B como salida
PORTB = 0 'Inicializamos puerto B en ceros

main: 'Etiqueta para bucle principal

        While PORTA = 1  'Gir a l'esquerra
        PORTB = %00001000 'primer pas RB0=1 RB1=1 RB2=0 RB3=0
        Delay_ms(50)
        PORTB = %00000100 'segon pas  RB0=0 RB1=1 RB2=1 RB3=0
        Delay_ms(50)
        PORTB = %00000010 'tercer pas  RB0=0 RB1=0 RB2=1 RB3=1
        Delay_ms(50)
        PORTB = %00000001  'quart pas  RB0=1 RB1=0 RB2=0 RB3=1
        Delay_ms(50)
        wend
       
        While PORTA = 2  'Gir a la dreta
        PORTB = %00000001  'primer pas
        Delay_ms(50)
        PORTB = %00000010 'segon pas
        Delay_ms(50)
        PORTB = %00000100' 'tercer pas
        Delay_ms(50)
        PORTB = %00001000  'quart pas
        Delay_ms(50)
        wend

        goto main
end.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Programa para accionar un motor paso a paso
« Respuesta #4 en: Julio 19, 2021, 06:21 »
Me alegro que lo vayas consiguiendo.
Un saludo desde Sevilla, España


 

login