Problema sensor temperatura DS18B20

Buenas tardes a todos.

Estoy teniendo problemas con un sensor DS18B20 y quería ver si podían darme una mano u orientarme en cual podría ser el problema.

En resumen, lo que hace el circuito es, en base a la temperatura que mide con el sensor de temperatura, activa y desactiva dos reles para controlar la misma. Estos reles estan conectados a dos resistencias eléctricas de unos 6A de consumo cada una. Es muy simple. Despues en conjunto con el LCD lo que hice fue armar un proceso secuenciado de cocción programado, pero durante todo el proceso se repite eso, prende y apaga las resistencias en base a la temperatura.

El circuito esta compuesto por:
-Arduino NANO

-Fuente 220-5V 2A

-Sensor DS18B20 con plaqueta que viene con su resistencia de 4,7k.

-LCD nextion enhanced 3.2''

-RELES 2 MODULOS

Todos esos componentes, los monté en unas plaquetas que hice fabricar:

FRENTE

ATRAS

Estan los circuitos de control, y las pistas mas guesas son de 220v para las resistencias eléctricas.
Tengo bornera de entrada de 220v. Borneras de salida 220v para las resistencias previo paso por los reles. Bornera para el sensor ds18b20 y los pines de conexion del lcd.

EL PROBLEMA:
El problema es que todo funciona de maravilla, hasta que en algún momento, sin saber porque, el sensor deja de medir temperatura y se queda en -127.0.

-Para empezar voy a decirles que he fabricado unas 10 plaquetas, y en algunas sucede, y en otras no, todavia no he encontrado una causa del error. Algunas funcionan bien y nunca han dado el error.
En algunos casos, noté que al encender los reles da error, como si fuera algún pico de consumo en ese momento quizas.
-Pienso en la temperatura, el agua que mide llega a 100 grados, pero he visto el datasheet del sensor y no debería afectarle. Podría afectarle esa temperatura al cable del mismo?
-Tambien he leido algo de colocar capacitores para absorver el pico de consumo de los relés, pero eso ya me sobrepasa y no se que capacitor, ni de que manera colocarlo.
-Falsos contactos? He revisado las plaquetas, y parecen estar bien soldadas. Podrá ser la plaquetita que viene junto con el sensor que tenga falla?
-Al cargar el programa en el arduino, me dice que esta casi llena la memoria, que podría causar problemas, podría ser esto?

Bueno, desde ya muchísimas gracias, y todas las respuestas de posibles causas que puedan estar causandome este problema me serian de gran ayuda.

GRACIAS!! Saludos!!

Hi,
Aqui hay varias cosa que veo y es la forma que tienes localizados los componentes. Primero tiene el alto voltaje en el medio de la tarjeta. El sensor deberia estar los mas cercano posible del micro para evitar los ruidos ya que la senal es analoga. Yo se que ya tienes la tarjeta fabricada pero debiste haber colocado los componentes de acuerdo al ruido que puede causarse en la tarjeta. Normalmente deberias de anadirle un condensador de 0.1uf lo mas cercano a los pines que alimentan el micro. Este elimina los ruidos digitales que se producen en el micro. Al sensor de temperatura hazle lo mismo de anadirle un condesador de 10uf con uno de 0.1uf en paralelo a los +5 que alimentan el modulo. Esto tiene que conectarse los mas cerca posible a los pines del modulo. Como los relays estan energizando resistencias no deben de tener problemas de ruido ya que no son inductivos. Podrias anadirle un snoober para reducir el ruido que se produce en los contactos debido si la corriente.es alta. Trata las sugerencias descritas arriba para ver si eliminas lo mas posibles los ruidos electromagneticos. Esto no quire decir que posibllemente resuelver tu problema pero si es debido a los ruido si te puede ayudar.

Prueba con un capacitor de 47uF o mayor electrolítico entre GND y el VCC del DS18B20.

Existe un procedimiento de la clase OneWire que resetea la comunicación: .reset() si el sensor te lee -127.0 utiliza ObjetoCreadoConOneWire.reset()
Saludos

En la librería Dallas

#define DEVICE_DISCONNECTED_C -127

Te esta devolviendo ese valor porque perdió la conexión.

Hola a todos!!!
Antes que nada, muchisimas gracias a todos por sus respuestas, es de gran ayuda para mi. Voy a intentar responderles a cada uno.

tauro0221:
Hi,
Aqui hay varias cosa que veo y es la forma que tienes localizados los componentes. Primero tiene el alto voltaje en el medio de la tarjeta. El sensor deberia estar los mas cercano posible del micro para evitar los ruidos ya que la senal es analoga. Yo se que ya tienes la tarjeta fabricada pero debiste haber colocado los componentes de acuerdo al ruido que puede causarse en la tarjeta. Normalmente deberias de anadirle un condensador de 0.1uf lo mas cercano a los pines que alimentan el micro. Este elimina los ruidos digitales que se producen en el micro. Al sensor de temperatura hazle lo mismo de anadirle un condesador de 10uf con uno de 0.1uf en paralelo a los +5 que alimentan el modulo. Esto tiene que conectarse los mas cerca posible a los pines del modulo. Como los relays estan energizando resistencias no deben de tener problemas de ruido ya que no son inductivos. Podrias anadirle un snoober para reducir el ruido que se produce en los contactos debido si la corriente.es alta. Trata las sugerencias descritas arriba para ver si eliminas lo mas posibles los ruidos electromagneticos. Esto no quire decir que posibllemente resuelver tu problema pero si es debido a los ruido si te puede ayudar.

Gracias Tauro por tu respuesta. Voy a tener en cuenta los consejos para la fabricación de las próximas plaquetas, la verdad que no esa información ya que no soy electrónico y el lugar donde mande a diseñar las plaquetas nunca me lo comentaron.
Con respecto al condesador para la alimentacion del micro, lo soldaría en las pistas directamente lo mas cercano a los pines del micro? Puedo soldarlos directamente a los pines del micro?
Con respecto a lo del condensador para el modulo de temperatura se lo voy a agregar, surbyte abajo también lo menciona. Dices de 10, o es conveniente 47 o mayor?
Te dejo abajo dos imagenes, podrias decirme si son correctas? Desde ya muchas gracias!!!

CONEXION CONDENSADOR A MICRO

CONEXION CONDENSADORES A MODULO TEMPERATURA

surbyte:
Prueba con un capacitor de 47uF o mayor electrolítico entre GND y el VCC del DS18B20.

Surbyte, gracias por tu respuesta, siempre me has dado una mano. Ahi arriba he puesto una imagen de como irìa el condensador. Lo mismo que para Tauro, podrias decirme si es correcta? Dices de 47 o 10 como Tauro?

Disculpen mi ignorancia en estos temas, soy ingeniero mecánico y esto me supera.

Algo que no les comente, cuando sucede el problema, desconecto el sensor y lo vuelvo a conectar y funciona.

PeterKantTropus:
Existe un procedimiento de la clase OneWire que resetea la comunicación: .reset() si el sensor te lee -127.0 utiliza ObjetoCreadoConOneWire.reset()
Saludos

PeterKantTropus, gracias por las respuesta!!! Cuando dices que indica desconexion, se descartaría un problema de programacion? Serìa mas vale algo fisico?
Voy a probar con esta función que no conocía. Si cuando aparece el -127, con esta función vuelve a la normalidad, podria armar algún tipo de loop que cuando detecte el problema lo resetee automaticamente, que te parece eso?
Desde ya muchisimas gracias!!

SALUDOS A TODOS Y MILLONES DE GRACIAS!!!

Hi,
En la forma que estan en el circuito ambos esta correctos. Sugerencia puedes soldar los componentes por el lado de la tarjeta donde estan los pines soldados. En cuanto al condensador si eses el que tienes a mano no hay problema.

Se me olvido mencionarte que la proxima vez monta el micro en sockets y tambien los modulos siempre que se pueda. Pregunta que pasa si se te dana el micro. No se si el micro esta en sockets.

Otra cosa ten cuidado con el condesador electrolitico pues tienes que soldarlos con la polarida correcta. Normalmente tienen una banda que endica el lado negativo del condesador y va a al ground el otro lado va al positivo.

Perfecto Tauro! Muchísimas gracias por tu ayuda.

Son correctos estos capacitores?

0,1uF:

47uF:

Probaré estos días y les comento como va! Gracias!

Hi,
El condesador de 47uf electrolitico es el corrector pero el de 0.1uf debe de ser de ceramica y no electroilitico.

adjunto foto y link:

Gracias Tauro! Ya los he comprado, te avisaré como va!

Saludos!!!

En tus placas PCB veo un pequeño problema que te pido mejores para la próxima.
Las pistas de GND y VCC son del mismo ancho que las demás pistas y eso es un error.
Además deberías tener un plano de tierra o GND, es decir, tu placa debería ser puro cobre y espacios vacíos para las separaciones.

Con esos ajustes, las corrientes altas provocarán menos micro caídas de tensión.
Otro tema es que siempre debes desacoplar dispositivos con los cerámicos de 0.1uF.