Aprendiendo a utilizar el sensor de temperatura DS18B20

El sensor de temperatura DS18B20 es un dispositivo que se comunica de forma digital. Cuenta con tres terminales, los dos de alimentación y el pin “data”.

Con Arduino podemos “leer” la temperatura que registra este sensor que posee una característica muy peculiar. Utiliza la comunicación OneWire, la cual es un poco complicada para los que no tienen mucha experiencia en el área de electrónica digital.

Básicamente se trata de un protocolo especial que permite enviar y recibir datos utilizando un solo cable, a diferencia de la mayoría de los protocolos que requiere dos vías. De hecho, Arduino posee los pines RX y TX que son los encargados de enviar y recibir información.

Para muchas personas que intenten aprender a utilizar el sensor DS18B20 probablemente sea un poco difícil encontrar información precisa y concisa, debido a que se habla mucho de este protocolo de comunicación de un solo cable y los códigos de ejemplo normalmente están “ahogados” entre los párrafos que tratan de explicar al usuario una serie de conceptos que para nuestros propósitos no tienen relevancia.

Hoy les mostraré como leer la temperatura que registra este sensor, rápido y fácil.

Primero, las conexiones que se deben realizar:

sensor de temperatura ds18b20
Como se puede observar, los pines VCC y GND deben ir conectados entre sí. La alimentación se introduce en el pin DATA, por medio de una resistencia pull up que debe ser igual o mayor a 4.7 KOhm.

La mayoría de las personas que no consiguen leer este sensor es debido a una mala conexión. El código requiere de la utilización de dos librerías, que deben ser instaladas antes de cargar el código a la placa. Estas son:

Una vez descargadas e instaladas ambas librerías, se debe cargar el siguiente código:

 

Ahora solo se necesita cargar el código a la placa y los resultados serán inmediatos.

sensor de temperatura ds18b20

 

Sobre el sensor DS18B20…

  • Es un termómetro digital de alta precisión, entre 9 y 12 bits de temperatura en grados Celsius (el usuario puede escoger la precisión deseada).
  • Su temperatura operativa se encuentra entre -50 y 125 grados Celsius. La precisión, en el rango comprendido entre -10 y 85 grados es de ±0.5 grados.
  • Su precio es económico, su interfaz de funcionamiento es sencilla y su uso es muy provechoso para proyectos que requieran mediciones precisas y confiables.
  • Para más información, consultar la hoja de datos(datasheet) del dispositivo (está en inglés): http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
  • Se puede escoger entre el modelo sumergible y los modelos para uso en placas de circuitos.

sensor de temperatura ds18b20

Espero que la información suministrada sea de su completo agrado y comprensión.

Saludos.

¿Te gustó? ¡Comparte!Share on LinkedInShare on FacebookTweet about this on TwitterEmail this to someoneShare on RedditShare on TumblrShare on Google+Pin on PinterestBuffer this page
  • Allan Britto Delgado y Alma Ma

    Buenos dias, quisiera hacerle una consulta, me puede por favor enviar un numero donde contactarles

    • Antony García González

      +507 67347398 (whatsapp)

      • miguel angel medina

        Hola buenas tardes, estoy iniciándome en esto de la electrónica y me resulta confuso, me permitirías tomar tu numero para ponerme en contacto contigo de manera directa????

        • Antony García González

          A qué se debe la confusión?

  • miguel angel medina

    Hola buenas tardes, estoy iniciándome en esto de la electrónica y me resulta confuso, me permitirías tomar tu numero para ponerme en contacto contigo de manera directa????

  • Leonardo Mendoza

    buenos dias donde puedo descargar la libreria de este sensor?

    • A Michael Castro

      programa>incluir librería>gestionar librería

    • Antony García González

      Es de dominio público en Internet

  • A Michael Castro

    tengo una duda, ya conecte el sensor y cargue el programa, pero no sé donde debería ver los datos que da el sensor. debo crear un programa que lo lea o como?

    • Antony García González

      Monitor Serial en Arduino IDE

    • Antony García González

      Monitor Serial

  • Erick Guerrero

    buenas tardes, una pregunta mi amigo, se puede conectar varios sensores?

  • Damian Dominguez

    tengo el sensor solo… el componente de tres patas es un transistor? me podrias decir que componente es y que valor tiene. muchas gracias

    • Antony García González

      El sensor es el componente de 3 patas. Luce como transistor

  • Antony García González

    Es el modo parásito del sensor

    • Jordan Parra

      disculpa para la implementación con pic también se hace la misma conexión?

      • si, el DS18B20 tiene 3 salidas, una a voltaje, otra a tierra y la última al pin digital para conectar por onewire
        no debería cambiar mas si vas a usar el mismo diseño

      • Antony García González

        NO manejamos PIC

  • no lo están.
    el proto en la imagen tiene los puntos en vertical unidos

  • The_menda14

    Por favor corrige el esquema, porque está en cortocircuito. No hace falta interconectar 5v y GND (mas que nada porque te cargas el regulador de tension, y eso si no se va el arduino entero)

    Testeado sin conectar las susodichas lineas y con la pullup de 10K y funciona perfectamente.

    Un saludo.

    • Antony García González

      Como está funciona bien. No se publica nada que no haya sido probado antes.

  • Antony García González

    Necesitas utilizar funciones especiales de la librería del sensor. No he tenido la oportunidad de investigar y escribir sobre el tema

  • Sofia Serracin

    Buenas tardes, ya conecte el sensor y cargue el codigo a la tarjeta; pero a la hora de ver las mediciones en el monitos, todas salen a -127 °C y 196 F. ¿Cual puede ser el error?

    • Antony García González

      Mala conexión

  • Luisdceo Lgg

    hola he colocado lo mismo que has hecho pero al ver el monitor serial me da temperaturas de -127 en centigrados y 196 en fahrenheit por que pongo la sonda en agua caliente sigue igual, es una sonda nueva

    • Antony García González

      Eso es un problema de conexión entre el sensor y Arduino

      • Akim Ulrich Motolinia

        ¿Cómo se arregla el problema? Eh metido todo tal cual esta en tu post y no entiendo

        • Antony García González

          Es un falso contacto. Trata de usar otro protoboard o cambiar los cables

  • Luisdceo Lgg

    hola he colocado lo mismo que has hecho pero al ver el monitor serial me da temperaturas de -127 en centigrados y 196 en fahrenheit por que pongo la sonda en agua caliente sigue igual, es una sonda nueva https://uploads.disquscdn.com/images/1ef0151b989561332ee14b62a55d7cb863cfc1ed396bdfdbe88a6cddd6fd19d1.png

    • Antony García González

      Es un problema de mala conexión. Verifica lo que estás haciendo

    • Akim Ulrich Motolinia

      ¿Pudiste arreglarlo?