# Sensor de temperatura DS1820.



## Meta (Dic 16, 2010)

Hola:

Hace un tiempo estaba comparando sensores de una lína entre LM35 y el DS1820. Lo probé con un PIC16F84A bajo el DS1820 con tiempo de conversión a 200 ms. El DS18S20 son de 750 ms.

Este PIC16F84A funciona con oscilador externo a 4 MHz. El tiempo de conversión cuando cambia la temperatura lo veo lento, he visto sensores más rápidos y casi a tiempo real. Cuando la temperatura cambia muy rápido en el LCD te lo muestra a saltos, se nota la lentitud y eso que me aconsejaron muchas personas usar el DS1820 porque es más preciso que el LM35. Los que han probado los dos sabrán.

La pregunta es. ¿Usando el DS1820 con un PIC16F84A a 20 MHz se puede notar la velicidad en el LCD o no tiene nada que ver?






Un cordial saludo.


----------



## elbrujo (Dic 17, 2010)

El DS1820 es un Dallas? yo lo use con una interfase para PC y anda ok, resuelve de 0.5 oC


----------



## cris3D (Dic 17, 2010)

checa cada cuanto se refresca o actualizas el dato que le mandas, algún día tuve problemas con eso pero todo fue cuestión de entender cada cuanto mandar a escribir en él, algo que llegue a hacer es poner un if donde a mandaba a escribir el dato solo si el dato era diferente al anterior.

saludos


----------



## cristian_elect (Dic 18, 2010)

El  LM35 de capsula de plástico no es tan rápido al cambio de temperatura, el que tiene encapsulado t0220 con metal libre es mejor.


----------



## Melkocha (Dic 19, 2010)

Los sensores digitales de temperatura son, por definición, lentos relativamente. El tiempo de conversión puede llegar a casi 1 segundo en el que considero insuperable (el más preciso) desde hace años: El LM92CIM, de National.


----------



## curioso207 (Ene 7, 2011)

mira el tiempo de conversio de temperatura en el ds1820 no lo vas a poder baja de .5 segundos yo lo he usado y la verdad si intentas bajarle el tiempo tendras problemas de lectura es mejor 1 segundo de hecho el proceso de temperatura es muy lento y 1 segundo realmente no es nada para ello ahora que si requieres mas pequeño el tiempo de lectura seria mejor que intentaras oto metodo con otro dispositivo


----------



## Perrito (Ene 11, 2011)

Alguien sabe donde puedo conseguir el DS1820 o DS18S20 en Buenos aires y su precio aproximado?
Espero no haber desvirtuado mucho el post.
Muchas Gracias


----------



## elbrujo (Ene 11, 2011)

SEMAK en la avenida Belgrano al 1600


----------



## Meta (Ene 11, 2011)

Por Internet puedes encontrar.
http://shop.ebay.com/?_from=R40&_trksid=p5197.m570.l1313&_nkw=ds1820&_sacat=See-All-Categories

Saludo.


----------



## eduardo2707 (Mar 9, 2011)

Hola meta,no creo q te ayude mi comentario ya ah pasado mucho tiempo desde q lo publicaste pero derrepente le pueda servir a otra persona ....

Soy estudiando para tecnico en electronica, tambien tengo ese mismo  problema, tengo q leer la temperatura del ds1820 visualizarla en una  lcd, pero a la vez en el mismo bucle de testeo tengo q leer un key pad,si preciono  un boton especifico entra a un menu donde puedo ingresar un set point q  se graba en la eeprom,luego resta la temperatura set point de la  temperatura leida por el ds1820  y luego manda la diferecia a otro  proceso
Bueno el problema es que el Ds1820 tiene un tiempo te lectura demasiado  lento o lardo,y puede ser de hasta 750 ms como maximo,esto ocupa casi todo el  tiempo del ciclo de testeo y el microcontrolador nunca llega a leer el  estado del keypad entonces no puedo entrar al menu,intento variar el tiempo de  lectura del ds1820 modificando su libreria driver,pero solo logro  malograr la lectura jajaj

 Debe haber una manera de solucionar mi problema,no con el tiempo de lectura pero si derrepente una interupcio o no se la verdad...pero  en conclusion eh optado por usar el lm35 y mi programa me corre  perfectamente en la simulacion,en la practica tendria que hacer unas  pequeñas variaciones para calibrar a una lectura mas exacta.saludos


----------



## Meta (Mar 10, 2011)

Buenas:

Leyendo mucho por ahí y aquí, el DS1820 es más preciso.

Saludo.


----------



## StrySG (Mar 12, 2011)

Tengo una pregunta...,Alguno ha probado el DS18S20 a *temperaturas bajo 0,* ? por que yo lo hice con el LM35 y tuve algunos problemas sobre todo de precision y lectura de datos me pregunto si el Ds1820 es mejor en estas condiciones.


----------



## Meta (Mar 12, 2011)

Lo he probado metiendo el sensor dentro del congelador y funciona de maravilla con el DS1820. El LM35 no lo he probado, pero tiene buena fama también, es más preciso el DS1820, claro que si varía la tensión del LM35, varía la lectura del sensor.


----------



## StrySG (Mar 13, 2011)

Bueno gracias, ahora estoy decidido a probar el Ds18s20 ahora mismo me pondre a buscar alguna libreria para usar este sensor y su protocolo 1-wire.


----------



## Meta (Mar 13, 2011)

Las encontrará aquí y funciona.

http://www.pic16f84a.org/index.php?...w=article&id=66&Itemid=87#Proteus_Capitulo_28

Saludo.


----------



## eduardo2707 (Mar 20, 2011)

el ds1820 es mas preciso que el lm35, pero su lectura es muy lenta, deberian elegir dependiendo de la aplicacion


----------



## dukex (Abr 6, 2011)

eduardo2707 dijo:


> Bueno el problema es que el Ds1820 tiene un tiempo te lectura demasiado  lento o lardo,y puede ser de hasta 750 ms como maximo,esto ocupa casi todo el  tiempo del ciclo de testeo y el microcontrolador nunca llega a leer el  estado del keypad entonces no puedo entrar al menu,intento variar el tiempo de  lectura del ds1820 modificando su libreria driver,pero solo logro  malograr la lectura jajaj



Estuve trabajando en una aplicación para este sensor, en esos 750ms se encarga de toda la parte de control y visualización.  En tu caso podés utilizar esos 750ms para tu ciclo de testeo del estado del kaypad....



eduardo2707 dijo:


> el ds1820 es mas preciso que el lm35, pero su lectura es muy lenta, deberian elegir dependiendo de la aplicacion



Tienes razón, dependiendo de la aplicación se debe escojer el sensor. Personalmente cuando requiero de una alta temperatura y rápida respuesta utilizo una termocupla tipo J con el AD594(750°C) o tipo K con el AD595(1250°C).. funcionan muy rápido y muy precisos. 

Por otro lado cuando la respuesta no es tan crítica ni la precisión utilizo el lm35. 


Pero el DS18S20 es muy especial, tiene esta buena precisión de 0.5°C(sin realizar ningún cálculo extra) y además puedo crear una red de sensores con ellos a una distancia considerable.  Si se utiliza el DS18B20 se pueden obtener lecturas cada 93ms. 
En este momento tengo 8 sensores en una linea de 100m utilizando un DS2482-100, con cable STP CAT6e sin ningún problema  de ruido como el que muchas veces se obtiene con las termocuplas o el lm35.


----------



## eduardo2707 (Abr 6, 2011)

Hola dukex muy bueno tu aporte,disculpa no tengo mucho tiempo en esto de microcontroladores.
En realidad ya habia abandonado ese proyectito por que lo deje solo con lm35 ajja...pero me interesa mucho saber como es eso que dices.

El tiempo que demora en convertir el ds1820  que son 750ms que es casi todo el tiempo de mi bucle..
A la vez paralelamente puedo leer y teclado? lo haces con interrupciones? o lago asi? me podrias explicar ..gracias

mi programa era algo asi...        los tiempos no los se exactemente solo son de ejemplo

muestra algo en la lcd                    2 ms
leia el ds1820                               750ms
lee el teclado                               5 ms
comparaba la tecla intrucida           1m

(si precionaba la tecla                  
mostraba un menu en la lcd
y hacia un salto a otras funciones)

si no se precionaba la tecla repetia el ciclo...
No usaba interurpciones...no se como

Bueno como la lectura del ds1820 ocupaba casi todo el tiempo del ciclo ...era casi imposible q cuando precione la tecla pueda abrir el menu


----------



## elbrujo (Abr 6, 2011)

eduardo2707 dijo:


> Hola dukex muy bueno tu aporte,disculpa no tengo mucho tiempo en esto de microcontroladores.
> En realidad ya habia abandonado ese proyectito por que lo deje solo con lm35 ajja...pero me interesa mucho saber como es eso que dices.
> 
> El tiempo que demora en convertir el ds1820  que son 750ms que es casi todo el tiempo de mi bucle..
> A la vez paralelamente puedo leer y teclado? lo haces con interrupciones? o lago asi? me podrias explicar ..gracias



No se como lo hace, pero lo que tenes que aplicar es el sentido comun. Si tiene prioridad el teclado sobre la lectura, entonces el bucle no puede ser el mismo..

Al hacer dos bucles donde este por ejemplo 3/4 del tiempo en el teclado y 1/4 en la lectura no perdes el control y como dije en otro post.. en que lo vas a usar que la temperatura cambie en 1 segundo tan considerablemente?

Y si es por interrupcion si toca el teclado entra el teclado y sino lo toca esta la lectura.. lo maximo que pueda pasar que el dato que esta mostrando se vencio.. y ahora la lectura puede haber cambiado.. pero cuanto? 100oC? que es el reactor del japon?


----------



## dukex (Abr 6, 2011)

elbrujo dijo:


> .. pero cuanto? 100oC? que es el reactor del japon?


 jajajaajaaja.....


Esa lectura de cuando lees el DS1820 es una función o algo?? es sólo un sensor??

Si es un solo sensor tienes que  seguir los siguientes pasos:
Bucle principal
{
  -reiniciar la red 1-wire
  -enviar el comando Skip ROM
  -Enviar el comando Start conversion
  -Esperar 750ms
    (es acá donde deberias hacer un tipo de bucle que 
     esté revizando lo que necesitas por 750ms)
  -reiniciar la red 1-wire
  -enviar el comando Skip ROM
  -Enviar el comando leer ScratchPad  
}   

si se presiona la tecla y entra al menú, al salir de éste vuelve a empezar de nuevo.

Saludos.


----------



## juansebax (Abr 7, 2011)

Hola Meta podrias mandar los planos y la configuracion que usaste para el circuito. Te lo agradeceria.


----------



## Meta (Abr 23, 2011)

juansebax dijo:


> Hola Meta podrias mandar los planos y la configuracion que usaste para el circuito. Te lo agradeceria.



Te lo dice en el mismo tema. jejee.

https://www.forosdeelectronica.com/f24/sensor-temperatura-ds1820-48526/#post466710

Saludo.


----------



## orlamarilla (Nov 2, 2013)

Buen día. Tengo un inconveniente q*ue* paso a explicar.
Estoy poniendo en practica un ejemplo del manual del pic16F84. Un termostato con el sensor DS1820.
Como el CD del libro trae el .hex, directamente lo cargué en el pic y con todo conectado anda muy bien.
Mi problema se genera cuando ensamblo el código .asm del mismo termostato q*ue* también viene con el CD.
Con el MPLAB ensamblo el archivo.asm incluyendo por supuesto todos los archivos .INC necesarios.
El ensamblador hace su trabajo perfectamente generándome el .hex correspondiente.
Cargo el programa en el PIC, pero al ponerlo en funcionamiento solo me aparece "eeeeeeeeeeee" y no tengo ninguna funcionalidad del circuito.
El archivo .asm no lo modifico y como dije, incluyo el archivo fuente y todos los .INC.
La verdad q*ue* no tengo explicación ya q*ue *todo lo saco del libro y lo leí todo antes de arrancar con el proyecto.
Intente varias veces sin éxito. Si alguien lo probó por favor q*ue* me cuente y ayude en esto por q*ue* si bien estoy comenzando, la verdad es un tema q*ue*  me encanta y lo estoy estudiando.
Muchas gracias!!!


*Como no escribo correctamente, me editaron el mensaje.*​


----------



## D@rkbytes (Nov 3, 2013)

orlamarilla dijo:


> Intente varias veces sin éxito. Si alguien lo probó por favor q*ue* me cuente y ayude en esto por q*ue* si bien estoy comenzando, la verdad es un tema q*ue*  me encanta y lo estoy estudiando.


El amigo @Meta probó el mismo proyecto y comenta que si funciona.


Meta dijo:


> Las encontrará aquí y funciona.
> 
> http://www.pic16f84a.org/index.php?...w=article&id=66&Itemid=87#Proteus_Capitulo_28
> 
> Saludo.


Igualmente yo he probado con éxito los dos proyectos existentes, para el DS1820 y el DS18B20 sin problemas.

Revisa que las librerías que estás utilizando también funcionen en otros programas, por ahí puede estar el problema.


Adjunto unas pequeñas fotografías del proyecto funcionando y el esquema que usé.

Suerte.


----------



## orlamarilla (Nov 3, 2013)

muchisimas gracias por la ayuda. Otra cosa que note en mi circuito es que las palabras como Termostato aparecen solo la la mitad y no aparece la parte decimal del valor junto con el "ºc". voy a revisar mi circuito también. Sino es molestia quería saber si en caso de que mis librerías fueran la causa del problema de donde puedo obtenerlas.Las que estoy utilizando son las que trae el cd del libro

probé tu diagrama pero si le pongo las patas 7,8,9,10 a masa la linea de abajo del display no se ve. si la mando a vcc funciona.Lo estoy probando con el código original. El problema de que no se ve la otra parte del texto y la parte decimal de la temperatura no lo pude resolver. estoy usando un display wh1602b no como tu que usaste otro , no se si tiene algo que ver eso. Subo la hoja de datos


----------



## D@rkbytes (Nov 3, 2013)

orlamarilla dijo:


> Otra cosa que noté en mi circuito es que las palabras como Termostato aparecen solo la la mitad y no aparece la parte decimal del valor junto con el "ºc". voy a revisar mi circuito también.


Eso posiblemente se deba al tipo de pantalla que estás usando.
Existe una pantalla modelo LMG-162-STN en la que se tiene que empezar a escribir 4 posiciones adelante.

Por ejemplo para la línea 1 se empieza a escribir desde la dirección 0x84 hasta 0x93.
Y para la línea 2 se empieza a escribir desde la dirección 0xC4 hasta 03.
Si ese es tu caso, tendrás que recorrer las direcciones de escritura en el programa para que se vea completo.


orlamarilla dijo:


> ¿Si no es molestia quería saber si en  caso de que mis librerías fueran la causa del problema de dónde puedo  obtenerlas? Las que estoy utilizando son las que trae el cd del  libro.


Posiblemente en la página que mencionó Meta, yo también uso las que vienen con el CD.
En esa misma página se han mencionado las modificaciones que se tienen que hacer a algunas librerías.
Preguntas frecuentes sobre el libro.

Suerte.


----------



## Meta (Nov 4, 2013)

Hola:

La página pic16f84a.org funciona de maravilla, me refiero el proyecto del DS1820 y he subido  un vídeo.






Y otro vídeo de otro libro para el PIC16F886 tanto en ASM como en C del CCS.






Saludo.


----------



## orlamarilla (Nov 4, 2013)

probe con otro ejemplo del libro que incluye las librerias  lcd_4bit y lcd_mensaje y anda de maravillas, pero con respecto al sensor no lo puedo hacer funcionar. lo del  display lcd creo que lo descarto por que en ese ejemplo q probe anduvo muy bien


----------



## Meta (Nov 4, 2013)

Hola:

Hay que revisar muy bien la protoboard donde montaste este circuito. Como último recurso, lo desarmas todo y lo vuelves a montar con más paciencia, paso a paso. Parece una tontería pero no lo es.

Lo he hecho mil veces así y funciona.

Un saludo.


----------



## orlamarilla (Nov 4, 2013)

Lo voy a hacer. Ese es el problema con esto. No lo quería hacer en plaqueta todavía por que voy a agregarle mas cosas, y la manera más fácil de probar es en la proto pero deja sus dudas. Muchas gracias por interesarte por mis problemas te lo agradezco

justo ahora estoy probando el ejemplo del libro Mensaje_07 y funciona perfecto. Eso es lo raro por que todo funciona muy bien excepto el ejemplo del DS1820.



lo ensamble otra vez y anduvo!!!! era un problema con el ensamblado me parece. Ahora tengo otro inconveniente. La palabra termostato solo me aparece como Termosta y no se ve la parte decimal del valor. Eso ya me pasaba antes creo que tiene que ver con el display. Estoy utilizando el wh1602b


----------



## Meta (Nov 4, 2013)

Hola:

Me alegro que te funcione una parte. 

Aquí abajo te explica las direcciones del LCD. Comprueba si es el mismo estandar.

http://embedded.ifmo.ru/sdk/sdk61/components/lcd/WH1602B-YGK-CP.pdf

Saludo.


----------



## orlamarilla (Nov 4, 2013)

muchas gracias!!!

hola.necesito una mano otra vez. Estoy buscando el DS1820 componente para Proteus y no lo encuentro. solo está el DS18B20. Si alguien lo tiene por favor que me lo mande. muchas gracias


----------



## D@rkbytes (Nov 7, 2013)

orlamarilla dijo:


> hola.necesito una mano otra vez. Estoy buscando el DS1820 componente para Proteus y no lo encuentro. solo está el DS18B20. Si alguien lo tiene por favor que me lo mande. muchas gracias


Búscalo en ISIS como DS18S20. Ese te funcionará.

Suerte.


----------



## picnoob (Dic 30, 2013)

Muy buenas, investigado encontre un codigo de termometro digital que utiliza el ds18s20, lo modifique un poco y funciona bien, la cuestion es que solo consigo el ds18b20(en la tienda) el cual por lo visto es mas rapido que el anterior, quisiera saber si son muchas las modificaciones al codigo y diagrama para que funcione con el ds18b20 o si funcionara sin problemas con el mismo codigo y diagrama.


----------



## D@rkbytes (Dic 30, 2013)

picnoob dijo:


> Muy buenas, investigado encontré un código de termómetro digital que utiliza el ds18s20, lo modifique un poco y funciona bien, la cuestión es que solo consigo el ds18b20(en la tienda) el cual por lo visto es mas rápido que el anterior, quisiera saber si son muchas las modificaciones al código y diagrama para que funcione con el ds18b20 o si funcionara sin problemas con el mismo código y diagrama.


Mira por aquí: _https://www.forosdeelectronica.com/f26/interfaz-rs232-pic-pc-proyecto-completo-vb6-70992/index2.html#post695269 _
Dentro de ese tema y en el post del enlace verás la primer experiencia que tuve con ese sensor. 
También encontrarás un enlace con las diferencias entre los dos sensores.

Suerte.


----------



## Otoniel (Abr 6, 2015)

Hola, estoy haciendo una maquina para sellar bolsas de polietileno, quiero hacer que el elemento sellador alcance la temperatura de fusión del polietileno que es de 110° (o un poco más) pero la temperatura maxima de este sensor es de 125°C y no se si habrá algún problema por someterlo a una temperatura tan alta normalmente, ¿hay otro sensor con un rango más amplio? ¿O sería más adecuado una termocupla (con su respectiva amplificación obviamente)?


----------



## orlamarilla (Abr 6, 2015)

Podrías establecer en tu programa un rango máximo de temperatura a medir, osea que cuando alcanza la misma el sensor deje de medir o que se active un aviso luminoso o sonoro. Otra es que cuando llegue suponete a 120º la resistencia se desconecte y de esta forma no se elevará mas la temperatura. Son ideas que se me ocurren que vos desarrollandolas un poco te podrían servir. Disculpa si no es la respuesta que esperabas. saludos

se te ocurrió utilizar resistencias variables por temperatura, PTC o NTC?


----------

