Interferencia que hace reiniciar mi arduino.

Una pregunta por favor. Tengo un arduino mega, al que conecto 4 salidas a un módulo de 4 relés. Uno de los relés enciende un timbre de chicharra (los timbres comunes y baratos que se usan en las casas para indicar que alguien toca la puerta de calle). El asunto es que el programa enciende esa chicharra durante medio segundo, y a veces repite unas tres veces ese medio segundo dejando otro medio segundo de silencio.

Todo funciona perfecto, incluido el programa (que es algo complejo). Excepto cuando se enciende esa chicharra: casi siempre (con varias excepciones) el arduino se reinicia. A veces en el segundo timbrazo de medio segundo, a veces en el tercero, pocas veces en el primero, y a veces no se reinicia.

Hice decenas de pruebas, y por supuesto la inicial, desconectando la chicharra. En ese caso funciona perfecto, sin el menor problema, nunca se reinicia, pero claro, el relé conecta y desconecta el 220 al aire. También conecté en lugar de la chicharra un foco incandescente, un foco led, un taladro eléctrico. En todas las pruebas funciona totalmente bien, nunca se reinicia el arduino. Otra prueba que hice es alargar el cable de la chicarra, y que suene lejos, a metro y medio. En ese caso, son muy pocas veces las que se reinicia, una de muchas.

Parece evidente que la chicharra genera algún tipo de interferencia que produce que el arduino se reinicie. No sé qué interferencia, quizá algunas ondas electromagnéticas, aunque no tengo cómo comprobar eso.

Mi problema es que esa chicharra debe estar y sonar en el mismo lugar, no a metro y medio o mas...

Alguna idea? Alguna prueba adicional que pueda hacer? Alguna idea para solucionarlo?

Gracias.

Si. Claro, la chicharra es una fuente de ruido no solo sonoro sino eléctrico. Es una bobina con un núcleo de hierro que se esta conectando desconectando atrayendo el elemento que hace sonar la campana.
Puede ser de DC o de AC. Sea como sea genera una gran cantidad de perturbaciones eléctricas.

Un camino inteligente que YO seguiría es reemplazarla por una chicharra electrónica.
Básicamente un buzzer con sonidos predeterminados. Esta no te va a provocar ningún dolor de cabeza. A veces es mas fácil gastar un poco que luchar con ciertas cosas.
Y si no quieres cambiar la sirena entonces tendrás que reducir las perturbaciones.
No voy a escribir 15 líneas sin saber si es es DC o AC. s

Gracias por la respuesta. La chicharra se conecta directamente a 220 voltios, AC. Es encendida por medio de uno de los relés del módulo de 4 que uso.

Necesito que todo esté en el mismo lugar, incluida la chicharra, pues es un aparato portátil. Pero veré de reemplazarla por alguna otra que no genere interferencia, como dices, buscaré una electrónica.

Gracias.

¿Como estas alimentando los relays? Estos módulos poseen un jumper entre los pines Vcc y JVcc, que si esta cerrado anula la ventaja del tener un modulo optoacoplado, pero permite utilizar como fuente el Arduino (solo para pruebas). Si esta colocado el jumper , levántalo y alimenta por los pines, de ese mismo peine, GND y JVCC (también puede llamarse RY-Vcc ) con una fuente externa de 5V.
Saludos.

Hi,
Podrias usar un relay SSR AC como foto adjunta. Este a vez te aisla el micro del alto voltaje. Los hay zero crossing que producen menos ruidos electromagneticos.

PeterKantTropus:
¿Como estas alimentando los relays? Estos módulos poseen un jumper entre los pines Vcc y JVcc, que si esta cerrado anula la ventaja del tener un modulo optoacoplado, pero permite utilizar como fuente el Arduino (solo para pruebas). Si esta colocado el jumper , levántalo y alimenta por los pines, de ese mismo peine, GND y JVCC (también puede llamarse RY-Vcc ) con una fuente externa de 5V.
Saludos.

PeterKantTropus, gracias por la respuesta.

No sabía para qué sirve ese jumper, pensé que era solamente para hacer pruebas, y al sacarlo que no conecte nada, sino que solo prenda sus lucecitas en lugar de activar el relé (cosa que usé bastante al momento de desarrollar y depurar el programa).

Por favor, si me puedes confirmar si el módulo que uso (en la foto) es compatible con lo que indicas.

Lo de la fuente externa no hay problema, dado que ahora mismo la uso, no alimento el relé con el arduino, sino que uso una fuente de 5V regulada, y con ella alimento tanto Arduino como el módulo de relés.

Por otro lado, por favor si me puedes indicar cómo conectar:

  • Retiro el jumper.
  • GND lo dejo donde lo tengo ahora, (alado de IN1)
  • 5 voltios dónde lo conecto?, en el pin que tiene el título JD-VCC (donde iba el jumper)?

Muchas gracias.

tauro0221:
Hi,
Podrias usar un relay SSR AC como foto adjunta. Este a vez te aisla el micro del alto voltaje. Los hay zero crossing que producen menos ruidos electromagneticos.

Gracias Tauro. Voy a ver de conseguir un relé así. No obstante, me parece que eso implicaría colocarle un transistor, una resistencia y conexiones adicionales. Los módulos son cómodos, porque ya viene todo hecho y solo se conecta a la pata del arduino sin mas.

Alimentas con el positivo, de la fuente externa, el pin JV-Vcc
La masa de la fuente externa por el pin GND.
Conectas también la masa del arduino al pin GND
Alimentas por el pin Vcc (cualquiera de los dos) con 5 V del Arduino.

Hi,
No estas equivocado solamente conecta el pin del arduino a la entrada del relay. No se necesita ninguna resistencia ni transistor adicionales.La ventaja del relay SSR no se dana como los relay mecanicos especialmente si los estas operando con ciclos mas a menudo.

Muchas gracias por las respuestas a ambos.

Hi,
Otra solucion seria la de anadirle un varistor de 250 voltios AC en paralelo a los contctos. Estos se usa para eliminar los ruidos electromagneticos que se producen cuando abres y cierrs los contactos. Como alimentas el mega voltaje y corriente.