Salida de registro de desplazamiento a relés

perdón por la longitud.

Esta es una continuación de mi pregunta reciente . Tengo una placa optoacoplada de 8 relés que estoy tratando de conectar a mi microcontrolador. He colocado un registro de desplazamiento 74HC595 en línea para consolidar los puertos de entrada. Sin embargo, al hacerlo, la placa ha mostrado un comportamiento extraño.

ingrese la descripción de la imagen aquí

Si no conecto nada, o solo una pequeña carga en los relés, todo funciona bien usando el registro de desplazamiento. Se encienden y apagan sin problema. Tan pronto como conecto una bomba de más de 1 amperio en el relé, puede escuchar cómo se activa el relé y luego se desconecta rápidamente. El LED IN1 (diagrama de arriba) también se ilumina durante una fracción de segundo. Sin embargo, a veces (1 de cada 5) el relé y la bomba permanecen encendidos. Ahora aquí es donde se pone raro; si elimino el registro de desplazamiento y conecto directamente los pines al microcontrolador, funciona bien al encender la bomba.

Entonces, se mencionó la interferencia en el registro de desplazamiento, pero según tengo entendido, el diseño de la placa de relés, el registro de desplazamiento solo enciende el LED en el optoacoplador (U1) y de ninguna manera está conectado a ninguna otra parte del circuito (registro de desplazamiento y el controlador funcionaban con batería). La placa también es Active Low, por lo que tengo entendido que el registro de desplazamiento está absorbiendo corriente del optoacoplador. ¿Podría ser que el optoacoplador requiera más corriente para cambiar la carga más alta de lo que puede hundirse el registro de desplazamiento? Puedo estar muy lejos ya que esto me tiene desconcertado. Además, ¿hay alguna forma de que la interferencia pueda entrar aunque esté aislada y con una batería?

Todas las pruebas se realizaron con una batería alimentando el microcontrolador \ el registro de desplazamiento y un boceto muy simple que apuntaba a un solo pin de registro de desplazamiento por byte.

El relé de 8 ( información ): actualmente está configurado con una verruga de pared de 5 V separada que alimenta los relés. El microcontrolador proporciona 5 V para alimentar solo el optoacoplador.

Aprecio cualquiera ayuda que me puedas proporcionar.ingrese la descripción de la imagen aquí

Actualización 13 de agosto:

Todavía no pude, pero hice muchas más pruebas: moví el registro de desplazamiento y Arduino a 3 pies de distancia de los relés y la red eléctrica. Ambos funcionaban con una batería de 9V. Lo único conectado a la placa de relés era un riel de 5V del Arduino y los 8 cables del registro de desplazamiento a las entradas de la placa de relés. Los mismos resultados, la luz de 100 W funciona muy bien, la bomba hace que se desconecte. Si elimino el registro de desplazamiento y conecto los pines de salida directamente al Arduino, la bomba se enciende sin problemas.

Solo para verificar que no sucedía nada con la verruga de pared de 5 V dedicada que alimenta los relés, la desconecté y reemplacé el puente en JD-VCC y VCC y conecté el Arduino GND. Mismo resultado, la luz de 100 W funciona, la bomba hace que se dispare.

Tiene que ser registro de desplazamiento.

También coloqué un condensador de desacoplamiento de 47 uf en los rieles de alimentación, y el registro de desplazamiento tiene un 104 justo al lado.

Esta noche intentaré poner un multímetro en línea con uno de los pines de salida, quiero ver cuánta corriente está tirando el optoacoplador.

Acabo de comprar un osciloscopio también, así que todavía estoy aprendiendo a usarlo, pero tal vez pueda descubrir cómo medir cualquier interferencia en el riel de 5V o en las líneas de salida.

Actualización 14 de agosto:

Logré capturarlo fallando con mi osciloscopio. Archivos wfm de Rigol a continuación. El canal uno está conectado a un pin de salida en el registro de desplazamiento. El canal dos está conectado al riel de 5V.

Archivos WFM

Acabo de hacer algunas pruebas y logré reproducir un pico de 500mv-1V (a veces era una caída) tanto en el riel de 5V como en uno de los pines de salida del registro de desplazamiento. ese es el problema verdad? ¿Ese tipo de pico haría que el registro de desplazamiento se disparara y actuara de manera extraña?

15 de agosto:

A continuación se muestra una captura cuando enciendo o apago manualmente la bomba. No usar el registro de desplazamiento para hacerlo. La línea azul es el pin 1 de salida del registro de desplazamiento, la línea amarilla es de 5 V.

También he tomado algunas fotos de la instalación:

ingrese la descripción de la imagen aquí

Tamaño completo

ingrese la descripción de la imagen aquí

Tamaño completo

ingrese la descripción de la imagen aquí

También tengo una publicación en el foro en la que también he estado actualizando los resultados: Arduino Forum

16 de agosto:

Pude capturar una imagen mucho mejor hoy. No me di cuenta de que el osciloscopio solo captura tantos puntos cuando se ejecuta a intervalos de 1 segundo (ahora tiene mucho sentido). Aquí está el malvado emi sobre el pin 1 del registro de desplazamiento:

2us

200ns

Voy a recoger todos los componentes recomendados este fin de semana e intentaré agregarlos uno por uno.

18 de agosto:

Problema confirmado. La bomba estaba causando tanto ruido que nada de lo que podía hacer en las líneas de baja potencia podía contener las ondas. Esas ondas se abrían paso en el reloj del registro de desplazamiento\latch\pins de datos y causaban corrupción\restablecimientos.

Así que fui al extremo y arranqué un circuito protector de sobrevoltaje APC Rack de alta potencia y lo puse frente a la bomba.

ingrese la descripción de la imagen aquí

Ahora apenas hay una señal en cualquiera de las líneas en cualquier lugar. ¡Viva!

Ahora, el objetivo principal era mantener esto contenido en el espacio de la carcasa, así que voy a ver si puedo hacer una versión más compacta, ya que creo que esta placa es excesiva y necesitaría una para cada una de las 5 bombas que tengo. Comenzaré con un solo MOV y veré cuánto reduce el ruido.

Problema resuelto: Decidí comprar un filtro de línea para ver si podía filtrar el ruido de la bomba directamente en la fuente. Compré esto: Filtro Delta de alto rendimiento . Ahora ni siquiera recibo ni un parpadeo en el osciloscopio.

Gracias por toda la ayuda a todos, desearía poder marcarlos a todos como solucionadores, pero no puedo, así que se lo di a quien ofreció la mayor cantidad de consejos.

¿Ha agregado un capacitor de desacoplamiento a los pines de alimentación del registro de desplazamiento?
Sí, tengo un 104 adjunto. Dado que está aislado, ¿no sería un problema de desacoplamiento todo el tiempo? Lo pregunto porque no estoy seguro. Todo funciona correctamente si no conecto la(s) bomba(s).
¿Ha quitado el puente entre Vcc y JD-Vcc?
Sí, se eliminó, tengo una verruga de pared de 5v dedicada conectada a Gnd y JD-VCC.
Archivos Rigol WFM, ¿qué es eso? ¿Cómo se supone que debemos leer eso?
@Steven: justo lo que estaba a punto de preguntar ;-) Existe: ¿puede publicar una captura de pantalla en su lugar, por favor?
Lo siento chicos, pensé que eran algo estándar de la industria. Saco unas fotos y actualizo.

Respuestas (3)

¿Cómo se cablea el registro de desplazamiento? ¿Tiene un condensador de derivación de 0,1 uF entre los cables de alimentación cerca del paquete IC?

Me parece un problema de ruido, especialmente porque solo se activa cuando tienes una carga en los relés. El hecho de que resulte en el restablecimiento del estado de registro del registro de desplazamiento me hace pensar que es un problema de energía.


Además, ¿cómo estás conectando el registro de cambios?
Con un 74HC595, necesita:

  • Ate los dos relojes de registro juntos (Pins 11 y 12)
  • Tire del pin de reinicio maestro hacia arriba (vincule el pin 10 a VCC)
  • Tire de la línea de habilitación de salida hacia abajo (amarre el pin 13 a tierra)

Por último, necesita un condensador de derivación de 0,1 uF entre el pin 16 (Vcc) y el pin 8 (Gnd).

Tengo un 104 en el vcc y el gnd del registro de desplazamiento.
@Exist, y no ha dejado flotando el pin de reinicio, ni nada, ¿verdad?
Lo único que se me ocurre en este momento es intentar cambiar una carga no inductiva (por ejemplo, una bombilla de 60 W o algo así) y ver si eso también desencadena el problema. Si no es así, tiene problemas de EMI cuando se enciende la bomba. si lo hace, estoy un poco desconcertado. En ese momento, comience a mirar sus rieles de suministro cuando el sistema cambie, vea si sucede algo extraño en ellos.
No, ni siquiera creo que el registro de desplazamiento se esté restableciendo, ya que continúa manteniendo otros relés encendidos incluso si no puede encender la bomba.
Las luces funcionan muy bien (100W), probé un par y no hubo problemas. Intentaré volver a cablear el registro de desplazamiento más lejos, como me pediste. Por cierto, gracias por tomarse el tiempo para sus pensamientos.
@Exist: para ser claros, ¿dijiste que el diodo en serie con el opto se enciende durante una fracción de segundo y luego se apaga? Si eso es cierto, el registro de desplazamiento se está reiniciando.
@Exist Lo siento, tuvimos un problema técnico en Matrix. Uno de nuestros generadores de caracteres aleatorios se nos fue de las manos :)

Intente mover el Arduino tan lejos del módulo de relé y la bomba como sea práctico. También asegúrese de que ningún cable relacionado con la alimentación (bomba) esté cerca del Arduino.

Luego use un cable de par trenzado o CAT5 para enviar la señal de encendido/apagado del Arduino.

No puedo abrir el archivo wfm (supongo que son algunos valores hexadecimales, pero esto será difícil de visualizar si se abre de todos modos), pero según su descripción, parece que capturó el evento.
Este pico (que puede ser más rápido/más grande de lo que se muestra en su alcance dependiendo del ancho de banda y la configuración) probablemente sea el problema. Queda por descubrir cómo un pico de este tipo llega a sus rieles; creo que en este punto una foto o dos de su configuración probablemente ayudarían mucho, y si es posible, un diagrama detallado de todo su cableado (bomba, módulo de relé, todo fuentes de alimentación, arduino, etc.)

¿Están unidos el adaptador de relé y la tierra de arduino?

EDITAR: mirando la imagen, el diseño no se ve muy bien, es un poco estrecho. Parece que hay cables de alimentación debajo del módulo de relé; estos pueden estar acoplados al lado aislado de Arduino. Trate de alejarlos si puede.
También debería usar CAT5 o similar para la señal de registro de desplazamiento: ejecútelo junto con 5V para disminuir el área del bucle.
En este punto, también intentaría agregar un par de diodos con polarización inversa a 5 V y tierra desde la salida del registro de desplazamiento, para sujetar cualquier pico que aparezca (5 V zener opcional, pero es una buena idea si tiene uno)

Diodos espalda con espalda

También puede colocar un condensador más pequeño de la línea a tierra (por ejemplo, 100 nF), ya que es solo una señal de interruptor.
Para estar completamente seguro de que no hay conexión entre algo que no debería haber, probablemente valga la pena probar la continuidad entre la tierra de Arduino y la tierra del módulo de relé, y Arduino 5V y 5V de relé.

¿Te refieres al registro de desplazamiento también? Actualmente está montado en el ensamblaje de la barra de energía, pero podría separarlo y alejarlo más. ¿Estás pensando que está captando ruido?
Sí, mueva esto también y use el cable desde la salida del registro de desplazamiento hasta el módulo. Parece que se irradia EMI si todavía está sucediendo mientras alimenta el Arduino desde la batería.
@Exist: ¿probaste lo anterior? Si es así, ¿hizo alguna diferencia?
Lo hice, los resultados publicados arriba.
Hmmm, algo anda mal aquí :-) Si tiene un osciloscopio ahora, comience a probar las señales y la potencia durante la conmutación del relé, debería tener una idea de lo que está sucediendo. Publique una imagen de los resultados si no está seguro de qué hacer con ellos.
@Exist: gracias por las fotos, ese pico se ve bastante desagradable. ¿Cuál es el cable azul/blanco conectado al lado derecho de la placa de relés? (parece que está conectado a una de las entradas)
El cable azul/blanco proviene de la verruga de la pared y alimenta solo la conmutación de los relés. Voy a tomar otra foto para mostrarlo mejor. También comenzaré a trabajar en todas sus sugerencias, ¡gracias!

Esto ciertamente suena como un problema de interferencia electromagnética.

La tierra de la fuente de alimentación de Arduino debe estar conectada a la "tierra verde" de su sistema de energía local. Se puede usar un enchufe en blanco con un solo cable a la 'tierra verde'.

Intente separar físicamente el cableado de la bomba del material de la microcomputadora.

También puede agregar un MOV (varistor de óxido de metal) "supresor de sobretensiones" a lo largo de la bomba para absorber los picos que pueden ocurrir cuando se cambia la carga.

¿Qué niveles de voltaje y corriente tiene la bomba?

Su cableado se ve bien.

Actualicé mi publicación con algunas pruebas más. Estoy de acuerdo en que parece ser EMI, Fake también me empujó de esa manera ayer. Sin embargo, me está costando mucho rastrearlo. Cuando dice que conecte el suelo, ¿aún se aplica si el Arduino funciona con batería? La bomba es de 120V 1.2 Amperios. Gracias