Me estoy montando un termostato para mi casita con Arduino.
Lo que tengo hasta ahora es un Arduino Uno R3 con un modulo LCD I2C, unos pulsadores para controlar las funciones y un modulo Rele 5v para manejar circuitos de alterna a 220v y un sensor DHT22
Todo conectado a 5V del arduino y a GND.
Cuando pongo el conjunto a funcionar tengo el trigger de temperaruta en 21 grados y enciendo y apago una bombilla. Tengo la bombilla cerca del sensor para que haga unas pruebas de activacion y desactivacion del ciclo.
Pues bien, si tengo el arduino conectado al PC para ver la salida serial, al cabo de una serie de activaciones, se desconecta, pero sigue funcionando y al rato se bloquea todo y no responde. Si lo conecto al una fuente de 9V 1A, hay veces que se bloquea todo al igual que por el usb y hay otra que sigue funcionando pero que por el LCD empiezan a aparecer caracteres raros...
He notado que los bloqueos vienen con una activacion del rele.
Tener paciencia conmigo, no estoy muy agil en temas de circuitos, lo mio es mas programar...
Te estaba respondiendo si usabas un relé pero hablas de un módulo Relé asi que debemos suponer que esta con su transistor y su diodo en antiparalelo.
Y solo activas una lámpara. Qué tipo de lámpara? Una de bajo consumo, ? parpadea al arrancar o lo hace inmediatamente?
Busco razones para imaginar ruido eléctrico
La historia es que unas veces se bloquea y otras veces todo sigue funcionando pero el LCD empieza a mostrar caracteres raros estilo @ y demas; y entre medias se ve lo que yo imprimo...
He probado con un diodo Flyback, con una resistencia de 10K en el pin de salida, colocando diodos en VND y en GND y lo maximo que he conseguido que funcione han sido 45 minutos, donde en un encendido como he comentado antes se queda colgado...
Aunque parece poco tener que ver, postea tu código.
También intenta dibujar un esquema de como esta todo conectado. O busca alguno que se asemeje a tu conexionado.
Intenta probar alimentando el rele con una fuente externa ,como un cargador de mobil,fuente de pc o similar.conecta el gnd de la fuente externa al gnd del arduino.A falta de ver tu skech,quiza pueda ser tambien que sobrepasas el consumo que permite el regulador del arduino ,aunque un dht,lcd y un solo rele tampoco parece excesivo.
El ESP necesita una fuente de corriente interesante mas allá de solicitar 200mA en Transmision y 120 o 130 en recepción, todos recomiendan una fuente de 1A. Presta atención a ese posible fallo.
Con un nodemcu he querido activar un modulo rele y no funcionaba bien, asi que tuve que usar una fuente de 5V para el rele y entonces si se comportó apropiadamente. El control lo mantuve en 3.3V porque la etapa de entrada (transitor) se sigue saturando bien como para accionar el rele.
Bueno la razón de tu problema creo que esta en el manejo de tu librería Thread.
Te recomiendo que uses o vigiles la RAM Libre en diferentes momentos del programa porque sospecho que te quedas sin ella por eso se cuelga.
Si buscas en el foro hay una pequeña rutina que te dice la memoria Free disponible.
El PIN A3 le uso para la misma cosa en realidad activa la funcion de menu, pero la primera vez que se pulsa simplemente activa la retroiluminacion del lcd.
El porque estoy usando un PIN Analogico para controlar un pulsador, es porque necesito el resto de pines digitales para enganchar un wifi a nrf400 y un wifi para conectarlo a internet y necesitan los pines digitales que me quedan.
Intentare vigilar el tema de la memoria, aunque no creo que vayan por hay los tiros, sin el rele todo funciona perfecto y durante dias, ha sido enganchar el rele y adios muy buenas. De echo hay veces que se cae el puerto serie cuando lo tengo conectado al pc y el rele enciende la bombilla.
Trasteando esta tarde con mi montaje y para descartar por fin la sospecha de la memoria he implementado un codigo muy sencillo, cada segundo se activa o desactiva el rele de forma iterativa. Hecho esto he visto que con mi montaje inicial petaba sin un numero definido de iteraciones, visto esto, simplemente se me ocurrio... ¿y si quito la dichosa bombilla?
Pues bien, despues de quitar la bombilla os puedo decir sin miedo que el rele se ha metido sus mas de 3000 iteraciones y no se ha quejado. Visto esto he vuelto a meterle carga al rele, le he metido un transformador de tension con una lampara de plasma. Y otra vez genial, sin ningun problema hacia sus ciclos perfecto.
Ahora he vuelto a lanzar el montaje de nuevo y lo tengo corriendo con una luz con zumbador antimosquitos para que el dth22 coja temperature y el termostato haga sus ciclos completos.
Darme un par de dias antes de cerrarme el hilo para asegurarme que lo dejo atado el tema del rele.
Muchas gracias por vuestra ayuda y vuestro tiempo.
PD: Cuidadin con las bombillas led del IKEA que las carga el diablo!!!
El porque estoy usando un PIN Analogico para controlar un pulsador, es porque necesito el resto de pines digitales para enganchar un wifi a nrf400 y un wifi para conectarlo a internet y necesitan los pines digitales que me quedan.
Puedes usar cualquier pin analogico como digital declarandolo en el setup como si fuera digital:
pinMode(A0,INPUT);// para entrada digital
pinMode(A0,OUTPUT);//para salida digital