Ruido en arduino con relés

Hola de nuevo, os comento mi problema, tengo una placa de relés y uno conecta un motor a través de un contactor cuando le mando a través de un Arduino UNO. Tanto el relé como el optoacoplador que lo acciona están alimentados por el Arduino.

El caso es que en cuanto entra el motor la placa se vuelve loca, no responde, ejecuta mal el código... pero en vacío no pasa. Solo puedo pensar que se trate de ruido, no controlo mucho de electrónica y aunque he leído varios temas sobre eso, no llego a ninguna solución.

¿Qué tendría que añadir al circuito para suprimir el ruido? He leído que un condensador de 0,1 uF entre 5v. y GND, ¿con eso me bastaría? Tengo varios condensadores de 100 uF 50 V, ¿con este me bastaría o son demasiados uF?

Hola de nuevo, os comento mi problema, tengo una placa de relés y uno conecta un motor a través de un contactor

Intenta ser mas preciso. El rele de 5V es del tipo módulo comprado para arduino?
El contactor debería llevar Snubber, o bien usar un Rele de estado sólido por cruce por cero.
Aún asi no aseguro que no tengas problemas.

surbyte:
Intenta ser mas preciso. El rele de 5V es del tipo módulo comprado para arduino?
El contactor debería llevar Snubber, o bien usar un Rele de estado sólido por cruce por cero.
Aún asi no aseguro que no tengas problemas.

Perdón, es de este tipo:

!(http://forum.arduino.cc/index.php?action=dlattach;topic=481703.0;attach=214433
rele)

Con una entrada específica para fuente de 5v. externa para los relés (ya que cada uno consume 75mA) y con lógica inversa. Es más, es este.

Pero he probado con varios modelos que tienen un aspecto similar, todos optoacoplados, y probando a alimentarlos desde USB con el portátil, desde USB con el móvil, con un cargador 1A 9V, con una fuente de alimentación de leds de 5V 5A… Y nada, el ruido del motor al arrancar se transmite de alguna manera a la placa y no respeta delays, se bloquea, etc.

Lo del snubber, no creo que lleve nada de eso, es un contactor típico de potencia:

Contactor trifásico.jpg

Y con el contactor sin carga, funciona correctamente. La locura comienza al conectar el motor, y he leído mil cosas como lo del condensador o hacer un “filtro de paso bajo” que para mi suena a chino, pero no he localizado ninguna solución específica que pueda entender y aplicar.Ad

Relé doble arduino 5v .jpg

Me parece que tu problema es el motor y no el contactor.

El motor tiene puesta a tierra? Seguro que no.
Intenta probar si la instalación del motor dispone de una puesta a tierra. Comencemos por lo básico.

Otra cosa, aún no vemos tu código, no sea cosa que tu código contribuya a lo que comentas.

surbyte:
Me parece que tu problema es el motor y no el contactor.

El motor tiene puesta a tierra? Seguro que no.
Intenta probar si la instalación del motor dispone de una puesta a tierra. Comencemos por lo básico.

Otra cosa, aún no vemos tu código, no sea cosa que tu código contribuya a lo que comentas.

El código lo he probado hasta la saciedad y en vacío no falla de ninguna manera, ni puteando con los botones. El código es un poco extenso (temporiza el motor entre varias opciones de tiempo) pero básicamente uso millis() para temporizar, guardo un int con el tiempo seleccionado y cada segundo de millis decremento el valor en 1 (sin delays para poder meter otros temporizadores o cancelar el actual). Todo se muestra en una pantalla LCD de 16x2 controlada por un Shift Register, que es dónde se manifiesta el problema.

El motor si está puesto a tierra (faltaría más), de momento estoy probando directamente con un par de ventiladores monofásicos a 230V de 5 y 60W (he hecho varias pruebas) conectándolos directamente al relé (en el proyecto usaría el contactor). Al principio arrancan bien, y a Arduino no parece afectarle el ruido (los temporizadores y los botones actúan bien) pero hay un punto en el que la pantalla se queda en blanco, y suele pasar al entrar el motor. Solo reiniciando Arduino vuelve a funcionar.

He probado a meter un condensador que tenía de 50V 100uF en paralelo en la alimentación 5v de Arduino, se mitigó un poco el problema (o eso creía) pero acababa fallando. Así que lo siguiente que tenía a mano era papel de aluminio así que "apantallé" de forma casera los cables que alimentan los relés.

Otra vez conseguí una leve mejoría, pero a las 4 o 5 veces de entrar y salir el relé, acababa fallando. Reordené los cables (porque tengo un follón curioso) y los 3 que van al Shift register que controla el LCD también los apantallé. Ahí casi conseguí eliminar el problema.

El caso es que he buscado mil cosas por Google, probado todo lo que tenía a mi alcance, pero continúo con problemas por el maldito ruido del motor. Y claro, necesito que se vea el tiempo de temporizado del relé, así que no puedo prescindir del LCD.

Bueno, siento el rollo que me he pegado :confused: pero ¿cómo crees que puedo mitigarlo? ¿Condensadores, varistores, resistencias, diodos, todo a la vez? Tengo la cabeza como un bombo de tanto buscar, soy demasiado nuevo en el mundo de la electrónica para entender como filtrar el ruido en 4 búsquedas y sin esquemas xD

Hay un hilo no recuerdo si en hardware o en proyectos donde justamente yo pedi que todos compartiéramos estas experiencias porque hay que sacar la valija y comenzar a probar cosas a falta de instrumental.

Si tienes instrumental es otro el cantar!!

Desde ya que usa una jaula de faraday para el arduino. Pero ademas nada de cables que trabajen como antena con semajante interferencia electromágnetica como pareces tener.
Si el motor tiene puesta a tierra bien, nos concentramos en otra cosa.

Dime: y precisemos las cosas.
El problema ocurre cuando? tu accionas el motor y ya pasa o sea es responsabilidad del contactor o
no pasa nada y al tiempo el arduino se descontrola?

Si ya lo dijiste disculpa, leo tantos msg y hoy estoy algo cansado por problemas personales, asi que te pido si me puedes orientar de nuevo o por primera vez.

Al principio dices que al conectar ocurre todo. Confirma esto.

Si es asi usa un snubber en las bobinas del contactor. Otra idea sería que uses un rele de estado solido con cruce por cero de modo que cuando la AC pasa por 0, conmuta al contactor y minimizas los problemas.

Si es asi o lo compras o lo armas. Hay reles de estado solido SSR disponibles en el mercado.
Busqué y salió esto en Holanda para el caso sirve de ejemplo
[SSR con cruce por cero x 1 a 2 euros](http://SSR con cruce por cero x 1 a 2 euros)
Esto reemplaza tu rele conectado a arduino que acciona el contactor trifásico.
Mejor sería un contactor SSR trifásico con crece por cero pero son mas caros y es algo que tu debes evaluar.

Este es el hilo Experiencias con Arduino en ambientes de trabajo

No especificas si el motor es trifásico o no. Así que deduciré que tienes un motor trifásico y contactor con bobina a 220VAC.

Si tienes unas cuantas resistencias de 100 ohm y 3 W de potencia, con unos condensadores de 100nF 400V; pon una resistencia y un condensador en serie y los terminales conectalos en los contactos. Eso es lo que se llama snubber

c.jpg

Necesitaras poner un snubber en la bobina del contactor. Y otros entre los contactos LX-TX del contactor.

En realidad, habría que hacer los cálculos del snuber según las tensiones y consumo de cada dispositivo pero al desconocerlos te dejo unos valores “comunes” (ademas sea dicho de paso que no sé calcularlos).

Ya tiene varias guias/opciones, si no aporta datos es porque no los sabe/no puede medirlos.

Asi que como todos sabemos hay mucho de prueba error, que intente las sugerencias a ver si va mejorando la situación.

y a qué distancia estan los componentes entre ellos? en mi caso que hice, el arduino está en una caja metalica, un trica activa el contactor y a 1,5 metros aprox hay los contactores trifasicos que solo en la bobina hay el snubber, no en los contactos del motor trifasico y cero problemas. PERO cuando activaba el contactor con reles como los de la foto anterior, que estaba pegado al arduino, imposible de gobernar por interferencias

surbyte:
Desde ya que usa una jaula de faraday para el arduino. Pero ademas nada de cables que trabajen como antena con semajante interferencia electromágnetica como pareces tener.
Si el motor tiene puesta a tierra bien, nos concentramos en otra cosa.

Dime: y precisemos las cosas.
El problema ocurre cuando? tu accionas el motor y ya pasa o sea es responsabilidad del contactor o
no pasa nada y al tiempo el arduino se descontrola?

Si ya lo dijiste disculpa, leo tantos msg y hoy estoy algo cansado por problemas personales, asi que te pido si me puedes orientar de nuevo o por primera vez.

Al principio dices que al conectar ocurre todo. Confirma esto.

Si es asi usa un snubber en las bobinas del contactor. Otra idea sería que uses un rele de estado solido con cruce por cero de modo que cuando la AC pasa por 0, conmuta al contactor y minimizas los problemas.

Si es asi o lo compras o lo armas. Hay reles de estado solido SSR disponibles en el mercado.
Busqué y salió esto en Holanda para el caso sirve de ejemplo
[SSR con cruce por cero x 1 a 2 euros](http://SSR con cruce por cero x 1 a 2 euros)
Esto reemplaza tu rele conectado a arduino que acciona el contactor trifásico.
Mejor sería un contactor SSR trifásico con crece por cero pero son mas caros y es algo que tu debes evaluar.

Este es el hilo Experiencias con Arduino en ambientes de trabajo

Perdonad por tardar en responder pero no tuve tiempo de continuar con el invento.

Supongo que te refieras a un relé como este pero, ¿me aislaría de forma efectiva del ruido? Porque los relés mecánicos que tengo también son optoacoplados, así que ¿no sería lo mismo?

Rele x2 SSR 5v.png

Por otro lado, el problema ocurre al accionar el motor, y no siempre, es más cuando apantallé los cables de corriente que van de la fuente de alimentación a los relés de 5v. el problema en parte se mitigó. La mayor consecuencia es que la pantalla deja de mostrar datos o muestra símbolos extraños, pero el arduino continúa temporizando bien. También apantallé los cables de esta.

Lo de la jaula de faraday imposible, ya tengo semimontado el proyecto y solo puede ir en una caja de plástico grande de electricista.

Caja electrica.jpg

El hilo lo consultaré más tarde cuando llegue a casa.

Caja electrica.jpg

Rele x2 SSR 5v.png

¿Cómo y/o con qué alimentas al arduino?

victorjam:
¿Cómo y/o con qué alimentas al arduino?

Una fuente regulada de 5v. de las que se usan para los LEDs. También he probado por USB y con un cargador de 9v. con el conector redondo. He descartado que se traten de las fuentes, porque con todas viene pasando lo mismo.

victorjam:
No especificas si el motor es trifásico o no. Así que deduciré que tienes un motor trifásico y contactor con bobina a 220VAC.

Si tienes unas cuantas resistencias de 100 ohm y 3 W de potencia, con unos condensadores de 100nF 400V; pon una resistencia y un condensador en serie y los terminales conectalos en los contactos. Eso es lo que se llama snubber

c.jpg

Necesitaras poner un snubber en la bobina del contactor. Y otros entre los contactos LX-TX del contactor.

En realidad, habría que hacer los cálculos del snuber según las tensiones y consumo de cada dispositivo pero al desconocerlos te dejo unos valores “comunes” (ademas sea dicho de paso que no sé calcularlos).

Eso tendré que probarlo, el motor que va a conectar al final será uno monofásico de 60 W, y aunque tengo un contactor no se si será mejor meter directo al relé de Arduino o seguirlo pasando mediante el contactor. En los dos casos falla igual, cuando le da la gana peta la pantalla (en el arranque del motor).

efect2000:
y a qué distancia estan los componentes entre ellos? en mi caso que hice, el arduino está en una caja metalica, un trica activa el contactor y a 1,5 metros aprox hay los contactores trifasicos que solo en la bobina hay el snubber, no en los contactos del motor trifasico y cero problemas. PERO cuando activaba el contactor con reles como los de la foto anterior, que estaba pegado al arduino, imposible de gobernar por interferencias

El extractor a unos 3 o 4 metros, los relés alejados todo lo que pude de arduino, el arduino en una caja de plástico (más arriba puse la foto) y el motor al final es monofásico, metido mediante contactor.

De momento he probado con un motor al lado de potencia similar para simular las condiciones pero, ¿crees que al estar tan cerca el motor de Arduino puede fallar por eso?

Monofásico de 60W !!!! por dios, P = UIcos(phi) donde phi es defasaje entre tensión y corriente.
Para un motor supongamos 0.8 = cos (phi)

entonces la corriente es I = P/Ucos(Phi) = 60W/220cos(phi) = no llegas a 10mACA (2,6e-5 Amper)

Entonces para que un contactor? Mas alla que la corriente de arranque sea otra.

Yo usaría un SSR en lugar de todo esta parafernalia de reles y contactores.

AL final una pregunta: para que hablaste de contactor trifásico?

El contactor se planteó en principio para un extractor de unos 400 W trifásico, pero al final se quedó en uno monofásico de 60W que para lo que se quiere usar sirve igual y más barato.

Evidentemente si el contactor no me va a atenuar el ruido lo descarto (iba a reutilizar uno viejo) ya que puedo meter el motor al relé directo, pero el problema es que con ese motor de 60 W que he probado, da problemas con el LCD 16x2 que tengo que peta alguna vez al entrar el relé. No conocía los SSR, que me valen igual si hace la misma función que el relé, pero mi pregunta es:

¿Con un SSR en vez de relé mecánico eliminaré el problema? Porque son más caros y si no me soluciona el problema buena gana de meter 3,5 € más al proyecto...

Un SSR con cruce por cero, no olvides. No compres cualquier cosa. Misma tensión de trabajo, que pueda manejar la corriente que requires y que sea por cruce por cero para que minimize las interferencias electricas.

¿Y si le hago una jaula de faraday a los relés y apantallo el cable (porque la fuente ya está metida en una) crees que me funcionaría? Porque me está costando encontrar SSR por cruce de cero (los normales los hay a patadas).

¿Puedo sugerir otra prueba?

d.jpg

El módulo de relés lleva un jumper para que puedas alimentar el circuito a través del arduino o con una fuente externa. Quitalo y usa una fuente separada para el arduino y otra para los relés. Para hacerlo, el pin RY-VCC y GND (donde estaba el jumper), deben ir a la fuente externa. Yo pondría un condensador de 2200uF a la salida de la fuente, ya que estas son por no decir malas, algo peor.

El Arduino lo alimentas con otra fuente, a través del jack por ejemplo. Y llevas el pin de control y +5V al modulo de relés, a los conectores de los relés. No hace falta llevar GND.

Y luego a falta de snubber, pondría un varistor entre los contactos del relé. Lo puedes sacar fácilmente de alguna fuente vieja o rota. Aunque también puedes probar sin él.

Si lo pruebas me cuentas.

Gracias por la sugerencia victorjam, eso que me comentas lo quise probar pero de momento solo tenía la fuente de LEDs para alimentar Arduino, no se como de malas son pero yo siempre las he utilizado para sustituir fuentes de placas electrónicas quemadas, para alimentar placas termoeléctricas y por supuesto LEDs 12 v. y nunca me han dado problemas.

El tema es que lo del jumper ya lo tengo hecho, pero todo a la misma fuente así que muy efectivo hasta ahora dudo que fuera. No quería ponerle otra alimentación a Arduino porque complica el tener que sacar un enchufe para "el cargador" (tengo uno de 9v 1A).

Mañana sin falta lo pruebo, que creo que incluso tengo algún condensador de ese tipo. Lo del varistor para la salida a 230v AC va a ser más complicado, pero si usar dos fuentes atajara el problema sería la ostia...

P.D.: También probaré antes lo de la jaula de faraday, ya que como tengo medio montado el proyecto y tengo malla metálica es lo más simple de probar. Mañana cuento los progresos. :wink: