Autor Tema: motor pap unipolar con pic  (Leído 4260 veces)

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

Desconectado jochesfor

  • PIC10
  • *
  • Mensajes: 9
motor pap unipolar con pic
« en: 01 de Diciembre de 2008, 17:51:15 »
Hola a todos, tengo el siguiente problema.
Estoy programando un pic para mover un motor pap y todo funciona mas o menos bien para girarlo en los dos sentidos por medio de pulsadores, cuando esta en un movimiento largo hacia cualquier sentido no tiene problemas, pero hay ocaciones que cuando arranca falla, de la siguiente forma:

la secuencia de movimiento es:

pin Rb     3210
bobinas   dcba

izquierda 1001
              1100
              0110
              0011

derecha  0011
             0110
             1100
             1001
es la misma secuencia pero al revez, resulta que hay ocaciones que sucede lo siguiente: vamos a suponer que oprimo el pulsador de la izq y va en la tercera secuencia 0110 y avanza hacia la izq, luego al pulsar el derecho debiera encontrar la secuencia 1100 en la primera posicion de la der pero encuentra 0011 que es la siguiente posicion de la izquierda, o sea que en vez regresar un paso a la derecha, continua un paso mas hacia la izquierda descuadrando el movimiento.
he intentado cambiar las secuancias y en algun paso igual termina fallando, tambien probe una sola secuencia:

mover    0011
             0110
             1100
             1001
y un contador que recorre la secuancia incrementado o disminuyendo para que sea mas facil encontrar la secuencia siguiente o la anterior, esta me funciona mucho mejor aunque en ocaciones tambien me genera errores.

Que se les ocurre que puedo hacer? gracias.

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: motor pap unipolar con pic
« Respuesta #1 en: 03 de Diciembre de 2008, 01:51:43 »
depende de que secuencia quieras meterle a tu motor unipolar, aqui te pongo una secuencia en un pequeño programa que puede ser adaptado a cualquier micro

Código: [Seleccionar]
output_b(0xFE);
delay_ms(500);
output_b(0xFD);
delay_ms(500);
output_b(0xFB);
delay_ms(500);
output_b(0xF7);
delay_ms(500);


con esta secuencia puedes mover un motor, esta negado por que lo controlaba con un uln2803, y este driver tiene sus salidas negadas, todo depende que secuencia utlices para su funcionamiento, pero tienes que tomar muy en cuenta que sean las bobinas adecuadas, saludos,  para moverlo a la otra direccion, solo cambia el orden, que el primero sea el ultimo, y asi consecutivamente, saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado jochesfor

  • PIC10
  • *
  • Mensajes: 9
Re: motor pap unipolar con pic
« Respuesta #2 en: 04 de Diciembre de 2008, 12:25:33 »
gracias por la informacion, voy a probar la secuencia teniendo en cuenta la negacion y comentare los resultados, creo de todas formas que el problema esta en la negacion, estoy colocando la secuencia en el pic sin tener en cuenta la negacion, aunque no uso el Uln2803 por bajo manejo de corriente, uso el Tip122 con una buena fuente y me funciona de maravilla, puedo conectar diferentes tipos de motores sin cambiar nada en mi driver.

Busque la secuencia en internet y resulto lo siguiente:
;output_b(0xFE);  11111110
;delay_ms(500);
;output_b(0xFD);  11111101
;delay_ms(500);
;output_b(0xFB);  11111011
;delay_ms(500);
;output_b(0xF7);  11110111
;delay_ms(500);

supongo que es a paso completo pero con una sola bobina por los ceros. es correcto?

Saludos
« Última modificación: 04 de Diciembre de 2008, 19:00:01 por jochesfor »

Desconectado jochesfor

  • PIC10
  • *
  • Mensajes: 9
Re: motor pap unipolar con pic
« Respuesta #3 en: 04 de Diciembre de 2008, 21:52:43 »
Disculpa la insistencia Scientsist pero aun tengo el mismo problema.
Hago enfasis en el problema para ver si me hago entender, muevo un motor pap con pulsadores (izquierda y derecha), con cada pulso se mueve un solo paso, si tomamos como ejemplo tu respuesta, seria:
output_b(0xFE);
delay_ms(500);
con esto se moveria un solo paso y el codigo del programa espera un nuevo pulso para un siguiente paso
output_b(0xFD);
delay_ms(500);
y asi sucesivamente, el problema que tengo es que en ocaciones (no siempre), el rotor se encuentra en una posicion y al darle un pulso (cualquiera) el motor en vez de moverse hacia el lado requerido se mueve al contrario, te lo explico con un ejemplo:

cod der     cod izq  esta es la secuencia que tu me diste.
1110         0111
1101         1011
1011         1101
0111         1110

Suponiendo que el motor se mueve a la derecha y termina en la 3ra posicion 1011, luego oprimo izq y va a tomar el primero de la izq 0111, pero 0111 tambien es la 4ta posicion de la derecha, o sea en vez de moverse a la izq se movera hacia  la derecha, lo que he pensado es poner la secuencia completa los 4 pasos con cada pulsador, el unico inconveniente es que el motor avanza cuatro veces mas en cada pulsacion obviamente.
Es posible solucionar este problema?

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: motor pap unipolar con pic
« Respuesta #4 en: 04 de Diciembre de 2008, 22:44:11 »
Por tu primer post deduzco que lo estas intentando mover en semipaso verdad? has probado primero a hacerlo en paso completo? podria estar ahi el problema, prueba tambien dandole mas tiempo al motor para realizar el paso, ponle un delay mas grande, si te funciona asi ya lo vas bajando y probando

Pon alguna informacion del motor, si es de 5 o 6 cables, modelo (a ser posible) voltajes, velocidades maximas, torque, etc, todo lo que puedas, puede k no ayude mucho en tu problema, pero a mi si me interesa pk estoy buscando motores PAP y reuno informacion que me pueda ser util


Tengo un codigo de un programa de cnc para pic, ahi seguro que puedes ver y comparar, si t vale manda privado


Un saludo y suerte, por aqui ando para lo k necesiteis


(Tengo una cnc en proceso de mejora de la parte hardware, pero la parte soft y electronica lo tengo en perfecto funcionamiento, por si ayuda)

Desconectado jochesfor

  • PIC10
  • *
  • Mensajes: 9
Re: motor pap unipolar con pic
« Respuesta #5 en: 05 de Diciembre de 2008, 12:16:53 »
Gracias Foshland por tu respuesta, el motor que estoy utilizando es un PM55L-048 de las que traen algunas impresoras HP de 5 cables, este modelo segun especificaciones consume maximo 800mA, lo fabrica http://www.eminebea.com alli puedes ver mas modelos.
Como entiendo la programacion de motores pap se puede realizar de 3 formas:
-Paso completo con una bobina:
0001
0010
0100
1000
-Paso completo con dos bobinas:
0011
0110
1100
1001
-medio paso:
0001
0011
0010
0110
0100
1100
1000
1001

Yo estoy utilizando el paso completo con dos bobinas para ganar mas torque por paso yaque los motores son pequeños, el programa basicamente escanea 2 pines del puerto A esperando una señal de los pulsadores, dependiendo de cual pulsador envia la señal entra en un rutina Der o Izq, dentro de estas rutinas de los 4 pasos que tiene la secuencia mueve uno y solo uno y regresa a scanear para esperar otro pulso, es alli cuando genera el error, pero verifico la secuencia con un monitor de leds que hice y funciona perfectamente el pic, una pregunta que tengo es ¿la secuencia se debe mover UNO de los 4 pasos por pulso o  los 4 pasos por pulso? o sea, al enviar un pulso se mueve un paso o los cuatro pasos juntos, haciendo obviamente que cada pulso recorra mas distancia porque recorrera cuatro pasos.
Lo unico que me falta por probar seria un aumento en el retardo o delay a ver si mejora, no se si se te ocurre otra cosa que cause el problema.
Gracias.

Desconectado ylumyna

  • PIC10
  • *
  • Mensajes: 1
Re: motor pap unipolar con pic
« Respuesta #6 en: 14 de Enero de 2009, 01:11:59 »
Hola, yo tuve que usar un paso a paso y era importante no perder pulsos cuando invertia el giro, y lo solucione asi: Cuando realizaba cada uno de los 4 pasos para izquierda por ejemplo, lo iva indicando en una bandera creada por mi; con esta bandera indicaba cual seria la siguiente bobina a alimentar si tuviese que girar a la derecha. En otras palabras, cuando envio la secuencia derecha, no comienzo desde el principio, sino que comienzo con la siguiente bobina de la secuencia derecha. Espero haberme explicado, saludos.