Hola a todos.
Llevo unos días comiéndome la cabeza con un problemaco que tengo y ya me he quedado sin recursos mentales y tengo que acudir a los expertos.
He realizado un proyecto que consiste en un lector de temperatura a través de una pt100, usando un atmega328p, programado con el ide de Arduino. El funcionamiento que se pretende es que al alcanzar una temperatura máxima, preprogramada, se encienda active un rele de salida.
Adjunto el esquema que he utilizado.
Hay varias partes del circuitos:
- El atmega, con su cristal y sus condensadores.
- Una fuente de 5 voltios realizada con un 7805, dos condensadores electroliticos y dos ceramicos para filtrar. La alimentación general viene de una fuente exterior de 12 voltios.
- Un LCD para visualizar los datos.
- Divisor de tensión para comparar con otra tensión de referencia.
- Max485, para comunicación RS485 a traves de modbus.
- Un botón de reset, y dos para grabar y ver las temperaturas de activación del relé.
- El circuito de adaptación para los canales PT100.
Este último es el que os explicaré un poco mejor, ya que el resto es fácil de entender. Las PT100 a leer son de cuatro hilos. Utilizo el método de suministrar una corriente constante de 1mA, que se encarga de hacer el lm317T y la resistencia en su patilla VO. Esa corriente al pasar por la PT100 en la que habrá una caida de tensión. Esa caida de tensión a extremos de la pt100, se la meto a un operacional (perdon, no es el del esquema, pero si es equivalente en el patillaje y lo use en proteus, pero ahora no caigo en cual es), que esta montado en restador-amplificador, con lo que obtengo un voltaje medible que va derecho a la entrada analógica del arduino. Con ese voltaje y comparandolo con la referencia, ley de ohm en mano, saco la resistencia y la temperatura.
Para el que quiera dejo también el código, que como es largo no me deja meterlo en un code, y lo pongo como añadido.
Vale, hasta aquí todo bien, es más funciona correctamente, precisión inmejorable, todo perfecto, no me lo podia ni creer lo bien que va. Y ahora es cuando viene el problema.
Para poneros en situación, el cacharro en sí se va a encargar de monitorear la temperatura de 2 alternadores, uno pequeño de 250KWh y otro de 350KWh. Las pt100, tengo tres de ellas instalas en distintas fases del alternador grande y utilizo una libre para medir la temperatura del armario, aunque en un futuro le instalaré al pequeño para funcionar. Si la temperatura excede la que yo le diga, parará el generador correspondiente. El circuito está probado, con el alternador grande en funcionamiento y midiendo correctamente la temperatura, y generando los kilowatios como dios mánda.
El hecho es que, cuando conecto la máquina pequeña, es decir, cuando la conecto a la red, va el arduino y se bloquea. Y solo la pequeña, cuando conecto la grande no se queja. Como me cae bien Surbyte y sé que tiene razón, he dudado de la fuente de alimentación y he probado varias:
- Una fuente de PC, se bloquea.
- Un cargador antiguo de movil, no se bloquea.
- Fuente switching 12V 2.5A, se bloquea.
- Una fuente de una pequeña unidad de DVD externa que tenia perdido, no se bloquea.
- Fuente switching 12v 100W, se bloquea.
Al tratarse de un bloqueo del microcontrolador, he pensado en ponerle el perro guardian, y ahora no se bloquea, pero cuando se reseta no mide bien la temperatura, aunque si le doy al reset hardware, se pone a funcionar bien como un loco.
Mi problema, tiene que venir de la alimentación, pero al probar varias fuentes, y contra mas ruinosa, mejor funciona, me preocupa de que algo estoy haciendo mal, por eso quisiera vuestra ayuda y vuestro consejo.
Si necesitais algo mas de información por aquí estaré.
PD. He metido la pata al subir el código fuente que estaba en .rar (manias), pero lo acabo de dejar en .zip
sondapt100_oamp.zip (2.76 KB)
