Hola! Saludos a todos los asistentes al foro.
Bien, respecto a la pregunta que me haces (BrunoF), entiendo que en el caso de medio paso, la
precisión del avance es mayor, por lo que pienso que este debe ser el modo a usar en el proceso.
Otra cosa, por lo que me dices de tus experiencias al respecto, te diré que siempre serán mas que
las mías ya que lo que he hecho como ya te dije, fue un ejemplo que encontré en la red con el F84A
y que me funcionó a la primera, por lo que no se puede decir que tenga experiencia alguna. Tu me
comentas sobre valores que enviar a las bobinas del motor; entiendo que te refieres al orden en los
terminales a enviar los datos o niveles altos, ya me aclaras este punto.
Así que, resumiendo, tenemos un motor con dos bobinados y toma intermedia en cada uno, es decir
6 hilos, queremos que el motor avance con saltos de medio paso, además de que avance mientras
una señal esté activa y que el sentido de giro lo determine otra señal, lo de las interrupciones, lo
dejamos para luego.
Bueno, esto es a grandes rasgos pienso que deberíamos ir por pasos, primero que gire mientras esté
apretado el pulsador A, luego ya añadiremos otros puntos.
Del listado anterior creo que se puede aprovechar alguna parte. Mira a ver que tal esta cabecera:
; Fecha: 25-01-07
; Que hace => Controlar giro en motor pap, tiene 2 bobinados con toma
; intermedia en ambos. Usamos el derivador ULN2803. Las salias
; se hacen por RA0, RA1, RA2 y RA3. Usa interrupciones RB4...
;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
; Las tildes estan omitidas de manera intencionada.
;--------------- Encabezado -------------
LIST P=16F628
#include <p16f628.inc>
;************ PALABRA DE CONFIGURACION ******************************************
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _LVP_OFF & _INTRC_OSC_NOCLKOUT
;
ERRORLEVEL -302 ; Elimina banco atencion (warning)
; Declarar equs
acum equ 0x20 ; se declaran acum
stat equ 0x21 ; y stat
reg1 equ 0x22 ; siempre se necesitan unos
reg2 equ 0x23 ; de registros auxiliares
; " "
PULSO equ 0X2A ;
#DEFINE BANCO0 BCF STATUS,5 ; RP0 = 0
#DEFINE BANCO1 BSF STATUS,5 ; RP0 = 1
;*********************************************************************************
ORG 0x00
GOTO ini
ORG 0x04 ;viene cuando hay una interrupcion
GOTO rsi ;salta a la rutina de rsi que atiende la interrupcion
ORG 0X05
ini:
BANCO1 ; selecciona banco1
CLRF TRISA ; PORTA todo SALIDAS
MOVLW b'00100111' ; RB0,1,2,5=ENTRADAS RB7=SALIDA
MOVWF TRISB ; pon PORTB
MOVLW b'10000000' ; RBPU=1 (Pull up) no se usa, flanco desc.
MOVWF OPTION_REG ; pon a 1 OPTION_REG
BANCO0 ; volvemos a la pagina 0
; Establece estado comparadores
MOVLW b'00000111' ; comparadores desactivados,
MOVWF CMCON ; I/O digitales.
CLRF PORTB ; ponemos a 0 portb
Bueno, a parte de BrunoF que está estresado por su trabajo, se que hay más genios que pueden
aportar sus granitos de MG (materia gris), es cuestión de participar y hacer que este proyecto vaya
adelante, no les parece.
De todas formas gracias por el interés y los aportes.
Saludos de Vicente.