Autor Tema: ayudarme por favor  (Leído 8766 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #15 en: 20 de Octubre de 2003, 00:11:00 »
Yo también creo que perdería 1 paso. Las posibles combinaciones en los cambios de sentido serían:

Cambio HORARIO --> ANTIHORARIO:

1100 --> 1001 (esta es la única que estaría bien)
0110 --> 1001
0011 --> 1001
1001 --> 1001

Cambio ANTIHORARIO --> HORARIO:

1001 --> 1100 (esta es la única que estaría bien)
0011 --> 1100
0110 --> 1100
1100 --> 1100

Salvo en la primera de cada cambio se perdería 1 paso.

Esta claro, para que no ocurra esto, como bien dices Norberto, hay que utilizar una única tabla y recorrerla ascendente o descendentemente.

... a calentarse la cabeza.

Un saludo


Desconectado dragon33

  • PIC10
  • *
  • Mensajes: 8
RE: ayudarme por favor
« Respuesta #16 en: 20 de Octubre de 2003, 05:02:00 »
Enhorabuena el codigo empieza a funcionar, si entro el 15, el motor recorre 360º, si meto el 7 recorre 180º aprox.....pero todavia tenemos un problema y es, que el motor una vez llega a la posicion deseada, no se queda alli esperando una nueva orden ,sino que regresa inmediatamente a la posicion de origen o reposo......a ver si lo solucionamos....el codigo usado es este de abajo de todopic...gracias....pero reformado a un motor bipolar.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: ayudarme por favor
« Respuesta #17 en: 20 de Octubre de 2003, 13:28:00 »
je je je... bueno, se me calento la cabeza....
aqui esta, parte del codigo de Pocher, y parte mio

a ver que les parece...

; PaPunip4.asm
;    AVANCE ES CUANTO GIRA, ES DECIR DE 0 A 15 , SON 16 VALORES POSIBLES
;   PASOS, SON LA CANTIDAD DE PASOS A DAR EN CADA AVANCE, EJEMPLO 25, VER SEGUN MOTOR
; EJEMPLO  360/200=1,8 GRADOS POR PASO -> EMPLEANDO TABLA DE 1/2  PASO, NOS QUEDARIA
; UN 360/400=0.9 GRADOS POR PASO
; 400/16=25--->>  SON LOS PASOS EN CADA AVANCE
; 25 PASOS * 16 AVANCES = 400   !!! OK?
;
;   List p=16F876 ;Tipo de procesador
;   include "P16F876.INC" ;Definiciones de registros internos
   List p=16F84a
   include "P16F84a.INC"

TEMP1    EQU 0x20 ;TEMP1 y TEMP2 --> temporizaci¢n de 50ms aprox.
TEMP2    EQU 0x21
TEMP3    EQU 0x22 ;Temporal para almacenar el valor anterior PORTA
CONTADOR EQU 0x23 ;CONTADOR3=PORTAanterior-PORTApresente
PASOS   EQU   0X24      ;CANTIDAD DE PASOS POR AVANCE  (15)
CONTADOR_TABLA   EQU   25H   ;POSICION EN LA TABLA DE SALIDA
AVANCE   EQU   26H

   org    00H ;Vector de Reset
   goto    INICIO

   org    05H
;------------------------------------------------------------------------------------

INICIO    bsf    STATUS,RP0 ;Seleccionamos el banco 1
   movlw    0x06
;   movwf    ADCON1
   movlw    B"000001111"
   movwf    TRISA ;PORTA entradas
   clrf    TRISB ;PORTB salidas
   clrf    CONTADOR
   clrf    TEMP3
   movlw   .1
   movwf   CONTADOR_TABLA   ;FORZAR UN VALOR DE INICIO

   bcf    STATUS,RP0 ;Seleccionamos el banco 0
   clrf    PORTB
   clrf    INTCON
BUCLE1    movfw    TEMP3
   subwf    PORTA,0 ;PORTApresente-TEMP3(PORTAanterior) --> W
   btfsc    STATUS,Z
   goto    BUCLE1 ;Paro
   movwf    CONTADOR ;N£mero de pasos hacia delante o atr s
   movf    PORTA,W ;Almacena PORTApresente en TEMP3
   movwf    TEMP3

   btfss    STATUS,C ;Si C=0 hay acarreo
   goto    ANTIHORARIO ;Como C=0 la resta es (-) --> antihorario
   goto    HORARIO ;Como C=1 la resta es (+) --> horario

;*************************************************************************

HORARIO

PASO1H   
   MOVLW   .25
   MOVWF   AVANCE
OTRO1H   
   INCF   CONTADOR_TABLA,F   ;LECTURA DE LA TABLA DE  ARRIBA  HACIA ABAJO
   MOVF   CONTADOR_TABLA,W
   CALL   TABLA
   movwf    PORTB
   call    DELAY
   DECFSZ   AVANCE,F      ;DAR 25 PASOS POR CADA INGRESO DE CONTADOR
   GOTO   OTRO1H
   decfsz    CONTADOR,F   ;CANTIDAD DE AVANCES
   goto    PASO1H
   goto    BUCLE1

;*************************************************************************

ANTIHORARIO

   comf CONTADOR,1 ;Complemento a 1
   incf CONTADOR,1 ;m s 1 y tenemos el n£mero positivo

PASO1A   
   MOVLW   .25
   MOVWF   AVANCE
OTRO1A   
   DECF   CONTADOR_TABLA,F   ;LECTURA DE TABLA DE ABAJO HACIA ARRIBA  
   MOVF   CONTADOR_TABLA,W
   CALL   TABLA
   movwf    PORTB
   call    DELAY
   DECFSZ   AVANCE,F
   GOTO   OTRO1A
   decfsz    CONTADOR,F   ;CANTIDAD DE AVANCES
   goto    PASO1A
   goto    BUCLE1

;*************************************************************************

DELAY    movlw    0x50 ;Temporizaci¢n entre pasos de aprox.50ms
   movwf    TEMP1
   clrf    TEMP2

DELAY_1          ;RETURN solo para verificar en MPLAB
   decfsz    TEMP2,F
   goto    DELAY_1
   decfsz    TEMP1,F
   goto    DELAY_1

   RETURN
;------------------------------- TABLA DE CONTROL BOBINAS MOTOR  -------------   
TABLA            ;TABLA DE MEDIO PASO (400 POR VUELTA )
   ADDWF   PCL,F
   GOTO   MAXIMO      ;0 SALTA A VALOR 8
PRIMERO   RETLW    b"00000001"   ;1
   RETLW   b"00000011"   ;2
   RETLW    b"00000010"   ;3
   RETLW    b"00000110"    ;4
   RETLW    b"00000100"   ;5
   RETLW    b"00001100"   ;6
   RETLW    b"00001000"   ;7
ULTIMO   RETLW   b"00001001"   ;8
;   GOTO   MINIMO      ;9 SALTA A VALOR 1
MINIMO
   MOVLW   .1
   MOVWF   CONTADOR_TABLA   ;COLOCO CONTADOR DE TABLA EN 1
   GOTO   PRIMERO
MAXIMO   MOVLW   .8
   MOVWF   CONTADOR_TABLA
   GOTO   ULTIMO      ;DE ESTA MANERA, LA PROPIA TABLA
            ;ACTUALIZA LOS LIMITES MAXIMO Y MINIMO
;------------------------------------------------------------------------------   

   END


un gran abrazo

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: ayudarme por favor
« Respuesta #18 en: 20 de Octubre de 2003, 13:43:00 »
que feo que queda sin los espacios y tab"s...
descargarlo de aqui !!!!

o mirar si este funciona ...   AQUI!


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #19 en: 21 de Octubre de 2003, 09:31:00 »
Vaya ya no deja adjuntar archivos.

Todos los ficheros estan en: http://miarroba.com/foros/ver.php?foroid=132135&temaid=1132954

Un saludo

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: ayudarme por favor
« Respuesta #20 en: 21 de Octubre de 2003, 19:45:00 »
Hola Pocher, creo que esta interesante para un control de cambio del disco de  colores o gobos para los equipos de iluminacion... o la seleccion de herramientas de la fresadora de Marcelo..., por eso lo del giro completo (360)

Ahora, yo le cambiaria el ingreso de datos por RS232... o mejor aun por DMX  (pero no dispongo de los protocolos)

Un gran abrazo!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado dragon33

  • PIC10
  • *
  • Mensajes: 8
RE: ayudarme por favor
« Respuesta #21 en: 22 de Octubre de 2003, 05:53:00 »
pocher y todopic os agradezco enormemente el interes que estais demostrando, todavia tengo un problema con los nuevos codigos que habeis puesto en el foro, el problema es que si yo ingreso el nº15 el motor efectivamente gira 360º pero no se queda en esa posicion esperando una nueva orden, sino que inmediatamente cambia el sentido de giro y se vuelve a la posicion de reposo.........y lo que se pretende es que si entra el 15 vaya a 360ºy se quede, si entra el 13 compare el dato presente y el anterior y retroceda los grados necesarios y asi etc etc etc.......gracias.
por cierto da igual que sean 360º que 180º la transformacion para uno u otro se hacerla.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #22 en: 22 de Octubre de 2003, 09:33:00 »
Hola dragon33, manda tu código retocado para bipolar y le pegaremos un vistazo.

Lo que dices acerca de .........y lo que se pretende es que si entra el 15 vaya a 360ºy se quede, si entra el 13 compare el dato presente y el anterior y retroceda los grados necesarios y asi etc etc etc....... esta hecho en el último fichero .rar que envié donde está simulado y comprobado con PROTEUS el correcto funcionamiento de un motor unipolar (el bipolar no lo tiene el PROTEUS) según lo que tú pedías.

Un saludo

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: ayudarme por favor
« Respuesta #23 en: 22 de Octubre de 2003, 13:22:00 »
Oye pocher, que pasa si en proteus conectas ese motor unipolar como si fuese bipolar, dejando los comunes al aire??
Se puede probar no?

Un saludo!
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #24 en: 22 de Octubre de 2003, 13:53:00 »
Yo lo que hice en su día fué cortocircuitar la toma intermedia con la parte inferior o superior y así funcionaba.

Un saludo

Desconectado dragon33

  • PIC10
  • *
  • Mensajes: 8
RE: ayudarme por favor
« Respuesta #25 en: 23 de Octubre de 2003, 08:32:00 »
He puesto el codigo en el almacen de codigos del foro, este codigo si me funciona, observar los retoques realizados al codigo y compararlo con los añadidos ultimamente por vosotros.........por cierto en el encabezamiento aclaratorio donde pone AVANCE debe poner RESULTADO,
os agradezco vuestra colaboracion sispic y pocher.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #26 en: 23 de Octubre de 2003, 09:44:00 »
Ya sé que ha sido un "lapsus", pero una aclaración: colaboradores TODOPIC y Pocher por favor, solo Norberto y yo, sabemos el tiempo que hemos invertido en esto.

Un saludo

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: ayudarme por favor
« Respuesta #27 en: 23 de Octubre de 2003, 10:19:00 »
Hola, el programa efectivamente hace lo que pides... ahora si retorna a CERO, es justamente porque no mantienes la señal de entrada, y al leer un cero, se dirije a el..

yo lo simule con los stimulus, y los pines en la posicion toggle del mplab y anda fantastico...


Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: ayudarme por favor
« Respuesta #28 en: 25 de Octubre de 2003, 11:47:00 »
Norberto he estado este sábado estudiando más detenidamente el programa que enviaste y creo que tiene un defecto. Quizá me equivoque, mira a ver que te parece:

Para PORTA=1 ---> 25 · 1 · 0,9º = 22,5º
.
.
.

Para PORTA=15 ---> 25 · 15 · 0,9º = 337,5º

Para 360º faltan 25 pasos de 0,9º, es decir 22,5º

El defecto creo que está en que cuentas 16 avances y como máximo hace 15 (PORTA=1111)

Lo he comprobado con PROTEUS y efectivamente, salen estos números.

Un saludo


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: ayudarme por favor
« Respuesta #29 en: 25 de Octubre de 2003, 12:29:00 »
Hola Pocher, pero yo considero al numero cero como una posicion, con lo cual 0000 es una posicion, y 1111 es la ultima, o sea 16 posiciones posibles ok?
por eso que en el post anterior le manifestaba que hay que mantener la señal de entrada, pues si se realiza pasando por cero, logicamente se dirige a la posicion cero...  se entiende? y el calculo es para medios pasos...

un abrazo

Norberto
pd.. alguien tiene el protocolo  DMX512 ?  para implementar en este proyecto?

Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...


 

anything