El módulo de relé se enciende y se apaga en un bucle

Estoy creando una caja que te permite encender y apagar una fuente de energía usando un botón.

La puesta en marcha

  • Fuente de alimentación que convierte 230AC a 12V DC
  • 12V va a encender el LED en el botón
  • 12V va a un protoboard que convierte 12V a 5V 1.5A
  • 5V va a protoboard con un Aurdino, controlando un Módulo de 2 Relés

El problema

Si le doy corriente al Aurdino a través del micro USB, funciona como debe. Un clic en el botón y el relé se enciende (la luz se enciende y emite un sonido de clic).

Pero cuando quito el USB y trato de darle energía al Arduino desde los 5V convertidos, a través de los pines, entra en una especie de bucle cuando presiono el botón. Puedo oír/ver que el relé se enciende/apaga rápidamente en un bucle continuo.

La pregunta

¿Que está pasando aqui? Supongo que hay un problema con el protoboard con el Arduino, pero no puedo depurar el problema con éxito.

Documentación

vídeo del problema

int ledPin = 13;    // choose the pin for the LED
int inputPin = 7;   // choose input pin 7 for the push button
int relay = 8;
 
void setup() {
    pinMode(ledPin, OUTPUT);  // declare LED as output
    pinMode(inputPin, INPUT); // declare push button as input
    pinMode(relay, OUTPUT);
}
 
void loop() {
    int pushed = digitalRead(inputPin);  // read input value
  
    if (pushed == HIGH) { // check if the input is HIGH    
        digitalWrite(ledPin, HIGH);  // turn LED OFF
        digitalWrite(relay, LOW);
    } else {
        digitalWrite(ledPin, LOW);  // turn LED ON
        digitalWrite(relay, HIGH);
    }
}

ingrese la descripción de la imagen aquí

¿El Arduino se reinicia (es decir, ejecuta la configuración) o simplemente ejecuta el bucle pero cree que se suelta el botón? No sé cuánto consume el Arduino, pero encender el relé aumenta el calentamiento del regulador en 0,5 W, ¿entonces el regulador se calienta y se apaga térmicamente? Además, la conmutación de red parece un poco peligrosa. Si conecta ese dispositivo a un tomacorriente sin conexión a tierra y apaga el neutral, puede terminar con la red conectada a la caja de metal a través de tapas de filtro.
Gracias por eso. Se verá en la conmutación de la red. El Arduino no se reinicia. Puede ver el video y activar el sonido para verificar esto. Enlazado arriba.
Mirando el código, ¿cómo sabes que no se reinicia?
¿Pwr flota cuando se quita USB gnd? ¿Problema de EMI?
¡¿Qué diablos hace ese cable vivo con el extremo desnudo que sobresale de su suministro de 12V?! ¡Eso es realmente peligroso!
Cuando el relé se enciende, podría haber una caída de voltaje suficiente entre el regulador de 5 V y el Arduino para que el Arduino se reinicie, ya sea por detección de caída de tensión o simplemente por tener un voltaje demasiado bajo.
¡Gracias a todos por su respuesta! En primer lugar: lo siento por el cableado en vivo "flotando". Se va a insertar en el relé, pero lo desconectó rápidamente al depurar las cosas. Pero elimínalo por completo ahora, para asegurarte de que nada suceda. En segundo lugar: agregué un poco de retraso y una secuencia de parpadeo de LED al setup()método, y confirmó sus sospechas de que en realidad se reinicia. Ahora se reinicia una vez, luego funciona sin reiniciar después de ese primer reinicio. La pregunta es entonces, ¿cómo evito la "caída de voltaje" para que no se reinicie?
Simplemente supuse que no se reiniciaba, ya que se estaba ejecutando en bucle muy rápido, y no pensé que Arduino se iniciara tan rápido, ¡pero esa fue una suposición incorrecta de mi parte!
¿Alguna idea de cómo puedo evitar el reinicio?
Intente ejecutar la alimentación de la placa de relés directamente desde los 5V en la placa de 12V a 5V. Eso reducirá la caída de voltaje a lo largo de los cables al Arduino.
@jfowkes ¡Creo que funcionó! :D Muchas gracias. También tomaré todas las instrucciones de seguridad que todos aquí dieron.

Respuestas (2)

Seguridad primero.

  1. Su enchufe de entrada de 230 V (en el lado derecho de la foto) debe protegerse con cinta aisladora o termorretráctil.
  2. Debe haber una barrera física preferiblemente hecha de acrílico o ABS o cualquier tipo de plástico sería suficiente.

Por lo que parece, su placa Arduino se está apagando tan pronto como le suministre energía usando el SMPS. Recomendaría que primero proteja su red eléctrica de 230 V y la haga completamente segura para la resolución de problemas. También te recomiendo que pruebes la salida del regulador de 5V. De alguna manera, su fuente de alimentación de CC no funciona correctamente o tiene demasiado ruido para Arduino. Aunque el ruido debe corregirse a través del regulador de 5V, aún así, hay algo que analizar. Además, su regulador de 5V puede necesitar un disipador de calor para disipar el calor. 12V - 5V = 7V. Por lo tanto, 7V * 1,5A = 10,5W. Incluso si no usa 1,5 A de corriente, es posible que su regulador de 5 V aún se esté calentando y es posible que necesite un disipador de calor para mantenerlo fresco y feliz.

También recomiendo no usar protoboard y tener tensión de red en el mismo espacio. No es una buena práctica y ciertamente bastante arriesgada. Le recomendaría que construya una placa de circuito impreso en la que todos los componentes estén soldados (pegados) a la placa sin cables que puedan desprenderse de la placa de pruebas y tocar cualquier terminal de 230 V 'sin blindaje', lo que es simplemente un desastre esperando que suceda.

Gracias por su respuesta. :) Soy nuevo en hacer cosas más permanentes que los protoboards, así que aceptaré su sugerencia y haré algunos cambios. :) Revisé la salida del convertidor y se mantiene constante. Mi único problema ahora es que ya no puedo reproducir el problema. Lo intenté más de 10 veces y ya no se reinicia. :S
El problema probablemente fue con la caída de voltaje. Hice lo que @jfowkes me indicó, y encendí el relé directamente desde la fuente de 5v, y parece que ya no se reinicia. No he podido reproducir el problema. Marcaré esto como la respuesta, ya que fue la respuesta más clara, pero muchas personas ayudaron aquí.
@eivindml, eso es genial. feliz de haber ayudado

Según su imagen, parece que ha creado su propio convertidor de 12v a 5v, por lo que lo que podría estar sucediendo es que el voltaje que va a su arduino está cayendo a menos de 2.7v y eso provoca un reinicio de Brown out (ya que está activado de forma predeterminada). Esto explica el hecho de que su Arduino se reinicie desde un suministro externo pero no desde USB. Sin embargo, debe verificar ese voltaje.

He comprobado el voltaje de salida del convertidor varias veces y se mantiene constante. Cae tal vez 0.01V. Pero ahora no soy capaz de reproducir el problema. Intenté al menos 10 veces.
¿Tu problema está solucionado ahora?