El microcontrolador se bloquea y no funciona el WDT?

Un saludo a todos, muchas gracias por este espacio que de tantas dudas me ha sacado. Hace tiempo trabajo con los microcontroladores de microchip, y hasta el momento pesaba que todo se podía hacer con algo de conocimiento y por supuesto un PIC, sin embargo hoy tengo una duda que no he podido resolver, por eso recurro a esta comunidad.

Hace rato hice un diseño para controlar un motor da AC 120V de 1/2Hp, con reducción e inversión de giro, en su momento el diseño se realizo con un pic 16f84, el control de giro se hace con 2 reles de 12 con un contacto de 30Am (Eso decía la etiqueta del producto), y la bonina principal, con otro rele, para un total de 3. Se probo el funcionamiento del motor sin carga y todo salio bien, el problema resulto cuando se le coloco la carga !!!. Esto generaba un ruido en la etapa de rectificación que el microcontrolador se perdía, se cambio la etapa de rectificación por un adaptador conmutado de 12V 1.2Am, por lo menos el microcontrolador dejo de bloquearse asegurándolo con el uso del perro guardián.

Sin embargo el problema no paro hay, ahora se quedaban pegados los contactos de los reles y el motor perdía la compostura, esto se solucionaba cambiando los reles pero esto era cada ves mas frecuente.

Con el animo de mejorar se paso una propuesta para cambiar la parte electrónica y claro nuevamente se cobro y mucho mas fuerte, ahora se incluían CONTACTORES y el poderoso pic16f873 y programación Csc compiler, todo iba a lo seguro, para la posición se pensaba incluir control PID y por supuesto un sensor que me diera la lectura del motor en todo momento (Conversor análogo ), y dos set point de llegada, y teniendo en cuenta los problemas de fuente del pasado se compro una fuente conmutada casi igual a la de las que traen las torres del computador, se verifico con el osciloscopio la cantidad de rizado que tenia la fuente con la carga y bien, se probo el sistema ahora con los contactores bueno se creía que todo funcionaria bien, y problema !!!, en el diseño se coloco una parte para activar el motor de manera manual, la cual activa los contactores y perfecto ahora entra la parte tecnología con el PIC y ufff, el microcontrolador se enloco y lo peor se bloqueo, a claro un problema de programación, no se había activado el perro guardián ¡Claro esto era el problema !!!, se programo el perro guardián ahora nuevamente a probar, ahora funciono perfecto, ¡ Pero ! por alguna razón que desconozco el microcontrolador se queda bloqueado.

Claro se dijo ¡¡ no eso es ruido de la fuente !!, se cambio por una de computador se programo para que el microcontrolador se reinicie cada 24 segundos, y sin embargo se bloquea.

Cambie el código, utilicé la instrucción ( “sleep” ), ahora estoy de prueba.

Bueno me gustaría saber si alguien ha tenido este problema de funcionamiento y de inestabilidad con los PIC y de que manera pudo resolverlo.

Muchas gracias.
 
tal vez no desbloqueas algunas interrupciones?

o quiza en algun momento del programa se desaactiva el WDT.

quiza posteando el programa se te pueda ayudar
 
Como haces el reset del pic, has probado de utilizar un reset de mas calidad ya sea utilizando un reset de maxim-dallas o con un 555.

Con un transformador y un fintrol de red deberias tener suficiente, deberias investigas proque son tan fuertes esas interferecias.

Recuerda que para los reles debes anadir un diodo al reves y utilizar transistores de media potencia tipo BD437.
 
si es un ambiente industrial, debes pensar en filtros EMI, es decir encerar en una jaula de faraday
los IC, colocar condensadores de desacople en todos los IC, y unos pares zener para esta mas protegido.

Es posible que el ruido este afectando el contador interno del WDT y se sobrepasa rapidamente y te mantiene en reset. otro consejo es que si el programa no es muy grande llena la ROM hasta el final
con instrucciones "goto inicio", en caso de que el PC (program counter) se loquee y salte mas alla de
tu pograma este regrese al incio del programa.

saludos
 
Tambien le podrian entrar parasitos por el teclado sobretodo si utiliza interrupciones.

Haz una prueba simple, busca un receptor de AM a pilas lo mas barato que encuentres y si es viejo mejor todavia, el de escuchar el futbol del abuelo. Utilizalo como sensor de interferencias, son realmente sensibles, en teoria un buen circuito no debe interferir a partir de 1m. Pruebalo con el PC y lo veras claro.

tambien podras seguir las interferencias si pasan o no por el filtro.


Un motor de medio caballo 1500VA-->12A deberia aguantar pero mejor uno que sea bastante mas grande.

Que raro que se soldaran los contactos,
Una pregunta, durante la inversion de giro esperabas que el motor se detenga. Lo digo porque un frenado brusco si que aumenta la corriente en mas del doble de la nominal.
 
Un gran saludo a esta comunidad, igualmente dando gracias a todos los que me han dado concejos en este dilema.

He tomado todos los consejos que me han dado cuenta, he colocado chequeos a lo largo del programa, con el objetivo de que si al final no se han completado, este reinicie el microcontrolador, bueno en algo a mitigado el problema. También he envuelto en papel aluminio todas las entradas de sensores, conectando este a tierra, mejor dicho casi esta completa la caja de faraday, en esto me surgió la duda, “como el sistema esta en una caja metálica, ¿Cuál tierra colocar?, la tierra de o negativo de la fuente, o la tierra del polo a tierra”.

Luego de varias pruebas encontré un pulsador causante del muchos problemas, resulta que el cable se paso por la ducteria, donde van los cables de una luz fluorescente de 25W, y resulta que cuando se activa esta luz, genera como un parpadeo, el cual genera algo, que de una bloquea el funcionamiento del pic, en este caso utilice cable telefónico no trenzado de 4 hilos, tomando otras recomendaciones del foro ahora me dispondré a cambiar el cable por uno blindado y trenzado a ver que resultado obtengo.

Otra cosa que me esta matando, es que para el control del motor y con el objetivo de que mejorara, decidí incluir los contactores, los cuales funcionan súper, solo que ahora estoy empezando a dudar del sistema que tengo para activar la bobina, por que por alguna razón el taco (break), de protección se dispara, por que por alguna razón parece que se quedaran pegados, los dos contactores y al activar uno de ellos parece que se activaran los dos y por supuesto que se activa el taco.

Bueno que inconveniente.
 
Recuerda que para activar contactores es necesario poner un diodo de proteccion para el transistor, ese que se coloca en paralelo al rele pero invertido por ejemplo un 1n4004.

Los fluorescentes se debe huir como la peste, pegan unos picos que no te menees.

Para mejorar un poco puedes añadir una red RC (1K y 100nF) y si quieres mas un diodo zener 5.1V

Si tienes que pasar varios cables utiliza un cable de red ehternet y elige bien por colores para utilizar pares trezados.

No mezcles señales digitales con señales de red.

La masa se suele tomar el negativo del circuito. Cuidado con las tomas a tierra, puede ser peor que sin ellas.

Recuerda que cualquier masa/negativo no puede volver nunca a su punto de partida seguienmdo otro camino.
O sea tienes un unico punto de masas/negativos y de ahi parten todas la masas y nunca mas se vuelven a unir, como un arbol.
Imaginate que de un punto de la masa circula una corriente, sigues las pistas de masas, sigue.....sigue esa corriente, puen en algun lugar termina, no puede volver al punto de partida porque la pista finaliza, la idea es no crear una espira de masas.

Que rollllo .
 
Atrás
Arriba