TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ProteusFan en 20 de Abril de 2011, 01:29:20

Título: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 01:29:20
Hola, estoy con un problema que ya no se que mas hacer. Implementé el circuito adjunto.
Tengo un motor paso a paso de 12v..
COn el PIC mando la secuencia para manejar el motor paso a paso al l298, la parte del pic anda perfecto, probe con leds que haga la secuencia y todo 10 puntos. Cuando conecto al l298, el pic comienza a calentar y no hace nada de nada... No me animo a tenerlo al pic calentando asi que desconecto todo, lo que veo es una variación en las salidas al l298, las que estan a 0 normalmente, suben a 0,4 o por ahí...
Mas preisamente empieza a hacer esto, cuando conecto la fuente de 12v.

Tengo una fuente que tiene como salidas +5 y +12, y uso una para alimentar el pic y la otra para alimentar lo que es el vs del l298.
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 01:42:19
Tu archivo tiene extensión DSN, personalmente no tengo idea de con que programa se abre, podrías especificar donde hiciste tu diagrama?, y te recomiendo que cuando subas un diagrama, imagen, etc. lo hagas en formato de imagen jpg o similar, para que sea de facil visualización. Saludos!
Título: Re: Problema PIC + L298
Publicado por: NoSepComo en 20 de Abril de 2011, 04:45:13
Hola, cuando algo empieza a consumir potencia es porque tienes algún corto en tu circuito y por eso obtienes un consumo grande, supongo que estás conectando mal el motor, ya que este no llega a girar, pero le estás aplicando energía, que como sabrás, ni se crea ni se destruye... sale en forma de calor, en definitiva, que lo estás gripando jeje.
La extensión esa la lee el proteus falflores.
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 09:18:15
Acá va la imagen, ahora me fijo si no dejé en corto algo :P
Título: Re: Problema PIC + L298
Publicado por: Diego E. en 20 de Abril de 2011, 09:49:15
Es de considerar que proteus y todos estos simuladores manejan parámetros ideales, en la realidad pueden existir problemas de fuente , ruidos, rizados, etc.

Importante, no olvides los diodos damper.

Saludos.
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 09:55:44
Recien se movio un poco y se clavó, voy ya a buscar diodos....
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 10:25:27
Nuevo problema, hace un paso y se queda. La rutina que le arme es esta:

while(1){
   output_a(5);
   delay_ms(50);
      output_a(9);
   delay_ms(50);
      output_a(10);
   delay_ms(50);

      output_a(6);
   delay_ms(50);

   }

Pero como que hace la primera y luego las salidas del puerto a se van las 4 a 0 :/

Hace un paso, y la tensión de alimentación se me va a 3,75 (normalmente es 5).
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 14:41:40
Nuevo problema, hace un paso y se queda. La rutina que le arme es esta:

while(1){
   output_a(5);
   delay_ms(50);
      output_a(9);
   delay_ms(50);
      output_a(10);
   delay_ms(50);

      output_a(6);
   delay_ms(50);

   }

Pero como que hace la primera y luego las salidas del puerto a se van las 4 a 0 :/

Hace un paso, y la tensión de alimentación se me va a 3,75 (normalmente es 5).

Prueba poniendo:

#use fast_io(A)

Algunas veces me ha pasado que cuando uso una salida y esta la pongo a 1, cuando la quiero regresar a 0 no puedo, y con esta instrucción, el pin constantemente se reconfigura como salida y no hay ese tipo de problemas.
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 14:48:38
Claro tenés razón, pero el pic anda de 10 solito, cuando lo conecto a las entradas del l298, me hace dos ciclos y se caen las tensiones en las salidas y queda muerto el pic (no se quema, es como que queda reseteado)...

Efectivamente, queda reseteado porque al conectar con el l298 la tensión de alimentación se me viene abajo, de 5v a 1,38v...
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 14:54:39
Pues por lo que describes suena a sobre corriente, tal vez sea tu integrado, tienes otro para probar?, tal vez el integrado tenga ya en corto algún transistor (a mí me ha pasado algunas veces), y el problema se origina al darle el pulso al pin que tenga ese transistor en corto.
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 14:56:30
Si no tienes otro integrado, prueba primero haciendo funcionar independientemente los 2 puentes H, y así es más fácil que detectes cuál de los 2 puede tener el problema
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 15:00:41
Encontré el problema mi querido falflores, el problema era que usaba de la misma fuente el 5 para alimentar el pic, y el 12 para el l298.

Lo que hice fue buscar una batería de nueve para probar alimentar el l298 con la batería, y en efecto, funcionó perfecto...

Te agradezco enormemente tu ayuda y tu interés, admiro tus ganas de ayudar a otros...

Espero que el post le sirva a alguien que le pase lo mismoo :)
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 15:04:21
Que bueno que hallaste el problema, aunque me hubiera gustado ayudarte a encontrarlo  :(. Para eso estamos!
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 22:00:17
Jaja bueno, me podés ayudar ahora, el motor anda pero solo para un sentido...

mis rutinas son(salidas al puerto a):

sentido horario:

5 (0101)
9 (1001)
10(1010)
6  (0110)

sentido antihorario:

5 (0101)
6 (0110)
10(1010)
9  (0110)

Con un pulsador yo pongo para que haga una u otra rutina. La parte del pulsador va todo bien. Ahora, yo no se si esas rutinas están bien...Capaz es diferente...
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 22:10:53
Jaja bueno, me podés ayudar ahora, el motor anda pero solo para un sentido...

mis rutinas son(salidas al puerto a):

sentido horario:

5 (0101)
9 (1001)
10(1010)
6  (0110)

sentido antihorario:

5 (0101)
6 (0110)
10(1010)
9  (0110)

Con un pulsador yo pongo para que haga una u otra rutina. La parte del pulsador va todo bien. Ahora, yo no se si esas rutinas están bien...Capaz es diferente...

Pues el problema puede estar en que en la rutina antihorario estás repitiendo 2 veces el 6, fijate bien si te equivocaste en el binario o en el decimal.
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 20 de Abril de 2011, 22:39:12
Si tenes razón, le pifié al pasarlo al foro, en el programa lo tengo bien, pero es como si me tomara que siempre es horario...
el programa es asi

#include <16F819.h>   
#use delay(clock=4000000)
#fuses NOWDT,NOPROTECT,LP,XT
int flag;
void main(){
   set_tris_a (0x00) ;
   set_tris_b (0xFF) ;
   port_b_pullups(true);
   flag = 0;
   output_a (0);
   while(1){
   If ((input(PIN_B0) ==0) && ( flag == 0)){
   output_a(0b0101);
   delay_ms(100);
   flag++;
   }
       If ((input(PIN_B0) ==0) && ( flag == 1)){
       output_a(0b1001);
   delay_ms(100);
   flag++;
   }
      If ((input(PIN_B0) ==0) && ( flag == 2)){
   output_a(0b1010);
   delay_ms(100);
   flag++;
   }
      If ((input(PIN_B0) ==0) && ( flag == 3)){
   output_a(0b0110);
   delay_ms(100);
   flag = 0;
   }
      If ((input(PIN_B1) ==0) && ( flag == 0)){
   output_a(0b0101);
   delay_ms(50);
   flag++;
   }
      If ((input(PIN_B1) ==0) && ( flag == 1)){
   output_a(0b0110);
   delay_ms(50);
   flag++;
   }
      If ((input(PIN_B1) ==0) && ( flag == 2)){
   output_a(0b1010);
   delay_ms(50);
   flag++;
   }
      If ((input(PIN_B1) ==0) && ( flag == 3)){
   output_a(0b1001);
   delay_ms(50);
   flag = 0;
   }

   }
}


Bien rudo y sin muchas vueltas, total la rutina hace solo eso...

No se en que le estaré errando, no tengo en claro la rutina antihoraria como es...
Título: Re: Problema PIC + L298
Publicado por: falflores en 20 de Abril de 2011, 23:06:22
Pues mira, acabo de analizar tu código y creo ya vi el problema:

La instrucción input() sirve para asignarle el valor de un pin a una variable:

var = input(PIN_A0);

En cambio, la instrucción que tu necesitas es input_state(), que sirve para observar el estado de un pin:

if(input_state(PIN_A0)==0) output_high(PIN_A1);

por lo que creo que tu programa nunca esta evaluando el pulsador, simplemente actua con el valor que se le quedo y es el único sentido que toma, prueba modificando eso y me dices como te fue.
Título: Re: Problema PIC + L298
Publicado por: ProteusFan en 21 de Abril de 2011, 03:46:25
Probé con eso y sigue en lo mismo, para saber si me tomaba el otro pulsador, le puse una velocidad a uno y otra a otro. El pulsador lo toma, o sea que diferencia las entradas el programa. Lo que me queda solo de pensar es que la secuencia de 0 y 1 en las bobinas sea diferente para el sentido antihorario, pero no encuentro nada en internet...
Título: Re: Problema PIC + L298
Publicado por: falflores en 27 de Abril de 2011, 05:26:53
Probé con eso y sigue en lo mismo, para saber si me tomaba el otro pulsador, le puse una velocidad a uno y otra a otro. El pulsador lo toma, o sea que diferencia las entradas el programa. Lo que me queda solo de pensar es que la secuencia de 0 y 1 en las bobinas sea diferente para el sentido antihorario, pero no encuentro nada en internet...

Hola, perdón por no contestar, pero acabo de regresar de vacaciones, espero que hayas dado con la solución a tu problema, ya que a mi me llego a pasar que no estaba correcta la secuencia de pasos, y la única forma era reducir la velocidad jugar con todas las combinaciones. Saludos!
Título: Re: Problema PIC + L298
Publicado por: tapi8 en 29 de Abril de 2011, 13:00:57
Veras no conteste antes porque de C no se casi nada, pero es posible que el problema este enesas tablas que pones.
En los PAP tienes 4 cables si son bipolares y 5 o 6 si son unipolares, constan de dos bobinas, que estan en cruz, esto lo sabes con un tester, ya que los cables te daran continuidad dos a dos, si a los extremos de una bobina les llamas A Y C, y vamos a suponer que A es el punto de inicio, en un reloj las 12, la secuencia seria asi para movimiento entre bobinas (tambien se puede mover de bobina a bobina, es el mas sencillo, y con la combinacion de ambos es a medios pasos, son los tres movimientos mas comunes aunque existen mas) pues si lo quieres entre bobinas, sentido horario es asi:

A B C D
1 1 0 0
0 1 1 0
0 0 1 1
1 0 0 1

Y antihorario asi:

A B C D
1 0 0 1
0 0 1 1
0 1 1 0
1 1 0 0
 

Puedes usar una sola tabla y haces andar en sentido ascendente o descendente para el sentido contrario

Título: Re: Problema PIC + L298
Publicado por: tapi8 en 29 de Abril de 2011, 13:07:27
Me acorde de esta pagina que explica todo esto bastante bien


http://perso.wanadoo.es/luis_ju/ebasica2/mpp_01.html