PIC16F628A Restablecimiento después de apagar el relé

Tengo problemas para controlar un relé con carga . Estoy usando PIC16F628A. El problema es el siguiente: El relé tiene carga. Al principio está apagado. Cuando la salida del microcontrolador está encendida, el relé también se enciende. Cuando es necesario apagar el relé, la salida del microcontrolador está apagada. Pero cuando esto sucede, el microcontrolador se reinicia.

EDITAR: La carga es 220AC. Tratando de controlar la campana.

Tenga en cuenta que cuando no hay carga, el comando de relé funciona completamente, sin reiniciar el microcontrolador.

Aquí están los esquemas y el PCB del proyecto.

Esquemas

tarjeta de circuito impreso

PD: La huella del cristal se cambió a capacitor, porque necesito dibujar la huella del cristal, pero tiene las mismas dimensiones de orificio que el capacitor.

EDIT2: el diseño de PCB se actualizó como se sugirió. Los esquemas actualizados y PCB:Esquemas tarjeta de circuito impreso

Otra información que sería útil: ¿podría compartir la hoja de datos del relé que se está utilizando?
@JonL No pude encontrar la hoja de datos del relé. Estas son algunas características 10A/24VDC, 10A/120VAC, 50/60Hz 10A/24VDC, 10A/240VAC. ENLACE Así es como se ve.

Respuestas (6)

Solo tenía la intención de comentar, pero descubrí que tenía demasiado que decir:

Sigue los consejos de Spehro y Alexey. Hay múltiples problemas aquí. Realice todas las correcciones, incluso si descubre que solo un amortiguador o un condensador de desacoplamiento parece funcionar.

La carga es de 220AC. Tratando de controlar la campana.

Tenga en cuenta que cuando no hay carga, el comando de relé funciona completamente, sin reiniciar el microcontrolador.

Esto parecería indicar que cambiar la campana es la fuente de un pico que causa el reinicio. No omita el amortiguador y/o el MOV que sugiere Spehro ya que el relé está conmutando una carga inductiva. He visto demasiados problemas con cargas inductivas conmutadas que provocan reinicios en equipos industriales como para considerar que la necesidad de un amortiguador y/o MOV es simplemente una "curita". Además del problema de reinicio, sin la supresión del pico, se producirán arcos adicionales en los contactos del relé, lo que acortará la vida útil del relé. Puedes comprar un amortiguador o hacer el tuyo propio.

El condensador de desacoplamiento agregado (sugerido por Alexey) debe tener la ruta más corta posible a los pines de alimentación/tierra del PIC. El plano de tierra cortado no logra esto.

La colocación de los pines de alimentación/tierra en el PIC es un poco difícil de lograr un camino corto hacia el capacitor de desacoplamiento sin ejecutar rastros entre las almohadillas (podría requerir almohadillas más largas y delgadas) o colocar el capacitor de desacoplamiento en la parte posterior.

Puede "engañar" el condensador de desacoplamiento a la placa existente cortando los cables y soldándolo directamente a los pines de alimentación/tierra del PIC en la parte superior del PIC, o soldándolo a las almohadillas en el lado de soldadura de la placa.

Algunos comentarios más no relacionados con el diseño del tablero. Dado que P1 y P2 están en 220 V CA, aíslelos en un área de la placa sin otros rastros (incluso el plano de tierra) incluso cerca. Consulte Distancia de fuga para PCB que manejan voltaje de línea de CA. ... Tampoco colocaría los interruptores demasiado cerca de la CA ya que los dedos estarán allí. También considere agregar algunos orificios de montaje a la placa.

Diría que arregle el problema, luego agregue el amortiguador/MOV como seguro. Los contactos se volverán más raídos a medida que envejezcan y el amortiguador se volverá menos efectivo.
@SpehroPefhany Me temo que tengo que estar en desacuerdo. El amortiguador y/o MOV no deben considerarse más opcionales que el diodo flyback para conmutar cargas inductivas de CC. Además del problema de reinicio, sin la supresión del pico, se producirán arcos adicionales en los contactos del relé, lo que acortará la vida útil del relé.
Bueno. Acabo de ver muchos casos en los que un técnico de campo colocó un MOV o R+C en una bobina y se fue, solo para que el problema volviera (a un gran costo).
Como dije, hay múltiples problemas aquí y todos los problemas deben solucionarse. El hecho de que todavía haya problemas después de agregar un amortiguador (o MOV) no significa que no sean necesarios.
Sí, estoy de acuerdo. Dado que el ruido varía dependiendo de en qué parte del ciclo cambia el relé, es posible que se requieran muchas pruebas.
No puedo agregar un amortiguador en paralelo a la carga. ¿Significa esto que tendré que incluir 2 amortiguadores para cada contacto en los esquemas?
@Triak En la hoja de datos de Red Lion SNUB0000 , indican que, aunque no es el método preferido, puede colocar el amortiguador entre los contactos (un amortiguador de P1 a P2).
@Tut, leí eso, pero no tengo acceso a la campana. EDITAR: necesito usar los mismos valores R y C de la hoja de datos, ¿verdad?
@Triak Como dije, si no puede colocarlo sobre la carga, coloque el amortiguador de P1 a P2. Los valores no suelen ser críticos y realmente dependen de la carga. Para más de lo que probablemente necesite saber :-) consulte: ¿Cómo diseñar un amortiguador RC para un relé de solenoide que acciona una carga inductiva?
@Tut, cambiaré C9 a 0.1uF/400V < o más

Su diseño no es muy bueno (en particular, la ruta Vcc es larga, delgada e inductiva), y ese es el peor relé que podría elegir (sin embargo, es el más barato). Un mejor relé con alto aislamiento (preferiblemente con aprobaciones europeas no falsificadas), vertidos de polígono de Vcc y tierra (tiene Altium, es un programa muy bueno y costoso, debe usar esas características) y operar el relé desde el no regulado la entrada ayudaría.

Los PIC son bastante insensibles al maltrato, pero no son mágicos.

Podría intentar suprimir el ruido en la carga (presumiblemente al menos algo inductiva) usando un amortiguador o MOV, pero eso es una curita y el problema probablemente volverá de alguna manera.

Agregue el capacitor 0.1u cerca del pin 14. Suba PortA5 (pin4) a Vdd.

Tengo MCLR configurado en APAGADO.
Debe echar un vistazo a su línea de alimentación de CC integrada (C1 más pin) con un osciloscopio en el momento en que se apaga el relé. Supongo que la desconexión de la carga de una línea de CA crea una interferencia en ella, y esa interferencia se transfiere directamente a la fuente de alimentación de su MC, lo que hace que su MC se reinicie.
Y un par de cosas más sobre el diseño de su PCB: - debe asegurarse de que todos sus polígonos GND estén conectados entre sí - ahora mismo, el borde R8 GND está flotando en el aire. - gire P1-6 180' grados - esto le permitirá colocar su línea VDD lo más lejos posible del circuito de entrada de CC.

Cuando era estudiante, tenía el mismo problema que usted enfrenta ahora. Y lo resolví después de muchos fracasos. La solución a tu problema sería la siguiente:

  1. Lo primero que debe hacer es colocar un capacitor cerámico de 0.1uF lo más cerca posible del pin de alimentación de su microcontrolador. Este límite eliminará todo el ruido de alta frecuencia antes de que llegue al microcontrolador.

  2. Si está recibiendo alguna entrada de un entorno externo, como la entrada del sensor, la interfaz del interruptor a través de un cable largo o cualquier otra entrada que no sea el ruido de alta frecuencia no deseado se introducirá en el cable o terminal cuando se produzca la chispa del relé o se produzca cualquier otro cambio. DEBE eliminarlo siempre; de ​​lo contrario, el problema de reinicio continuará.

Este problema se puede resolver colocando un capacitor cerámico de 0.1uF en cada pin de entrada con respecto a tierra antes de que llegue a los pines del microcontrolador.

Esto eliminará todo el ruido de su circuito y funcionará normalmente.

LMAO @ 'eliminar todo el ruido de alta frecuencia'! La esperanza es eterna !

PERO... ¡En realidad no haces una pregunta, pero es fácil inferir una! En las líneas de... '¿cómo soluciono esto?'

Dado que desea cambiar 220 V CA, ¿por qué no usar un SSR de conmutación cruzada por cero en lugar del relé? ¡Sin contactos involucrados, sin arcos, casi sin ruido!

Hace décadas me presentaron un problema similar. El diseño basura de la placa de circuito impreso había sido heredado de una antigua "consultoría - así llamada" y no se permitió ningún presupuesto para una retransmisión.

En resumen, se investigaron los sospechosos habituales, como agregar amortiguadores y un mejor desacoplamiento local.

La solución estaba en realidad en el software, algo extrañamente. En lugar de una sola escritura de E/S, las salidas se escribieron varias veces.

Esto lo arregló. Puede que le interese probar lo mismo

Además de todo lo que te han dicho aquí, lo que siempre hago con un pic que controla los relés, es justo después de la línea del programa que ordena apagar o encender el relé, pongo una pausa (NOP) de 1 o 2 ms, y luego continúe ejecutando el programa.

Porque ? ¿Se basa eso en una idea teórica o simplemente en la experiencia?
Lo digo por experiencia, esto me ha solucionado pequeños problemas.