Tomacorriente de 120VAC controlado por Java / Arduino

1

Estoy trabajando en un proyecto con el objetivo final de controlar una toma de corriente con un programa Java. Actualmente, tengo el relé conectado a puntos de venta, un enchufe de 120 VAC de 3 clavijas y mi Arduino . Todo funciona según lo previsto: mi programa Java puede activar y desactivar la retransmisión / salida.

El problema:

Cuando tengo una carga conectada a las salidas controladas, mi programa Java se bloquea después de algunos ciclos de encendido / apagado (los cambios dependen de la carga conectada). Si desconecto todas las cargas de la toma de corriente, se enciende / apaga aparentemente para siempre. ¿Cómo cambio mi sistema para que Java no se bloquee, independientemente de la carga? ¿Qué está causando una diferencia en el Arduino de una carga que está conectada?

Mis intentos:

  • He intentado usar una fuente de alimentación externa para alimentar el relé y Sólo se utiliza el Arduino para tirar de los pines a una tierra común. Mismo resultado.

  • He intentado depurar mi programa Java extensivamente. Se produce el error tratando de escribir datos en el puerto serie. Tenga en cuenta, sin embargo, la El programa escribirá los datos con éxito un par de veces (el número depende en la carga) antes de que falle.

  • He intentado todos los puntos de venta (ambos relés) y he tenido los mismos resultados en todos.

Información adicional:

  • Un reloj de alarma de 12 W genera el error mucho más rápido que un 14 W pistola de pegamento caliente clasificada.

  • Ambos puntos de venta son GFCI.

Por favor, avíseme si hay alguna otra información que ayude a resolver este problema.

Edit 1: Me di cuenta de que no tengo un verdadero aislamiento óptico (que pensé que tenía) porque el puente se dejó en Vcc y JD-Vcc. Intentaré más tarde esta noche con una fuente de alimentación externa para controlar la bobina (JD-Vcc) y el Arduino para controlar los 'interruptores' (Vcc). Informaré para compartir resultados.

Edición 2: El tirar del acoplador y la alimentación de JD-Vcc desde una fuente de alimentación separada (conexión a tierra común) no funcionó. He puesto resistencias de 330 ohmios entre los pines y relés de Arduino; no resolvió el problema (podría haberme dado más ciclos de encendido / apagado antes del fallo, pero no una solución). Cambié el cableado para que la toma de corriente esté normalmente apagada (era mi configuración prevista). Trabajando en un diagrama de cableado, brb.

Edición 3: Diagrama del circuito. Sí, es feo. Los interruptores en Sain Smart se cierran cuando IN1 / IN2 se bajan. Y ahora veo que hay una función esquemática incorporada aquí. Es bueno saberlo para la próxima vez.

Edición 4: no he logrado averiguar por qué está actuando así. ¿Alguien tiene alguna idea? En este punto, una solución puede ser aceptable. ¿Condensadores, resistencias, optoacopladores? ¿Qué sería mejor / más barato?

Edición 5: ¿Sería beneficioso un amortiguador (Red Lion, SNUB0000) en cada salida? Finalmente encontré una publicación relacionada (# 101815, no puedo agregar otro enlace) pero no estoy seguro de poder aplicar alguna de las posibles soluciones. Se ha recomendado poner una pequeña capacidad cerámica a través del Vin del Arduino; lo está colocando entre el pin arduino de 5 V y el fondo, ¿qué se quería decir con esto?

    
pregunta FourMileIsland

2 respuestas

1

Parece que su Arduino se está corrompiendo por los picos de ruido al encender y apagar la carga de CA. La razón por la que una pistola de pegamento lo afecta menos es que, como una carga resistiva pura, no genera mucho ruido, pero el reloj de alarma probablemente tiene una fuente de alimentación de conmutación que devuelve el ruido de mayor frecuencia a la línea. Incluso un reloj motorizado más antiguo puede volver a poner los picos en la línea dependiendo del motor y de cómo se controle. ¿Ha intentado usar un filtro de CA entre el (los) relé (s) y la carga (no un supresor de sobretensiones, sino un filtro LC real)?

También es posible, aunque a partir de la descripción, es poco probable que las bobinas del relé generen un pico suficiente para dañar el procesador. Industrialmente, por esa razón, utilizamos redes de amortiguamiento RC a través de las bobinas de casi todos los relés / solenoides controlados por una salida electrónica.

También el consejo anterior es 100% correcto, NO cambie el neutro de su carga de CA. Muy mal negocio allí desde un punto de vista de seguridad (y al menos Código de EE. UU.). Si se debe cambiar el neutro, para cumplir con el código, deberá usar relés de seguridad especiales con contactos guiados por fuerza en serie.

    
respondido por el R Drast
0

Un diagrama de circuito ayudará mucho. Algo suena sospechoso con tus conexiones. Parece que tienes algún comentario sobre tu arduino (que no deberías tener) cuando aumenta la carga. Tal vez podría agregar un opto-acoplador entre su relé y su arduino, pero eso sería tratar los síntomas y no la causa. Mis 2 $

    
respondido por el AJBotha

Lea otras preguntas en las etiquetas