Como conectar el sensor digital de temperatura DS18B20

El circuito integrado DS18B20 es un sensor digital de temperatura que utiliza el protocolo 1-Wire para su comunicación, dicho protocolo requiere de solo un pin de datos para comunicarse y permite conectar más de un sensor en el mismo bus.

El sensor DS18B20 fue desarrollado por Dallas Semiconductor y despues esta empresa fue adquirida por Maxim Integrated, quien actualmente lo fabrica, (De ahí proviene el prefijo DS en su nomenclatura). El encapsulado mas común es el tipo TO-92 igual al utilizado en transistores pequeños; también se encuentra en presentación SO, uSOP y empacado dentro de un tubo de acero inoxidable resistente al agua.

Especificaciones técnicas

 • Rango de medición de temperatura: -55 a 125°C (-67°F a +257°F)
 • De 9 a 12 bits de resolución seleccionable.
 • Utiliza el protocolo 1-Wire, sólo requiere un pin para la comunicación.
 • Identificador único y permanente de 64 bits.
 • Múltiples sensores pueden compartir el mismo pin de datos.
 • Precisión de ±0.5°C en el rango de -10°C a +85°C
 • Alarmas de límite minimo y maximo de temperatura configurables.
 • Tiempo de respuesta menor a 750ms.
 • Rango de voltaje de 3 V a 5.5 tanto alimentación como datos.

Cada sensor tiene establecida de fábrica una dirección única de 64 bits, esta dirección se usa para identificarse ante el dispositivo con el que se está comunicando, puesto que en un bus 1-wire se comparte el pin de datos entre todos los dispositivos.


Ficha técnica

El sensor tiene dos formas de conexión y alimentación:

Alimentación a través del pin de datos

En esta modalidad el sensor internamente obtiene el potencial a través del pin de datos cuando este se encuentra en un estado alto y almacena carga en un condensador para cuando la línea de datos esté en una estado bajo, a esta forma de obtener se le conoce como Modo de Alimentación Parásita y se usa cuando el sensor debe conectarse a grandes distancias o en donde el espacio es limitado, puesto que de esta forma no se utiliza la línea de VDD.

Nótese que el pin GND y VDD están ambos conectados a GND, esto es indispensable para que se active el modo parásito.

Puede considerarse una variante a este tipo de conexión en el caso de que
se realicen conversiones de temperatura o copiar datos desde la memoria de EEPROM de los sensores. En estas operaciones el consumo de corriente aumenta y se pueden causar caídas de voltaje en el condensador interno; causando errores en la transmisión.

Para esos casos se recomienda agregar un MOSFET junto a la resistencia pull-up para asegurar que el voltaje no se caiga durante el proeceso de dichas operaciones; el MOSFET deberá ser controlado con otro puerto del Arduino.

 

Alimentación usando una fuente externa

De esta forma el sensor se alimenta a través del pin VDD, así el voltaje es estable e independiente del tráfico del bus 1-Wire.
El diagrama de conexión es de la siguiente forma:

Esta forma de alimentación es la más facil de usar y es la utilizada en este tutorial.

Librerías para el DS18B20 en Arduino

Para poder utilizar el DS18B20 con Arduino necesitamos dos librerías:

Librería OneWire

En esta librería está implementado todo el protocolo del bus 1-wire. Y puede usarse tanto para el DS18B20 como para otros dispositivos 1-wire.


Librería DallasTemperature
En esta librería están implementadas las funciones necesarias para poder realizar las lecturas o configuraciones del DS18B20.

Conexiones del DS18B20 con Arduino

Nótese que se necesita poner una resistencia Pull-Up de 4.7K.

Realizando lecturas de temperatura con el DS18B20

Después de instalar las librerías y realizar la conexión anterior podemos realizar las lecturas de temperatura, para eso usamos el siguiente sketch:

Como se puede observar, medir la temperatura es simple, son necesarias solo dos líneas en el void loop() para realizar esta tarea.

El resultado es el siguiente:


Conectando varios sensores de temperatura

Tenemos dos opciones o métodos que podemos usar cuando necesitamos leer más de un sensor de temperatura.
El primer método es manejando cada sensor con un pin diferente del Arduino. De esta forma sí tenemos 3 sensores, necesitaremos usar 3 pines digitales del Arduino.
Otra forma es usar el mismo pin para todos los sensores, en otras palabras todos los sensores se conectan al mismo bus 1-Wire, y como cualquier bus, cada elemento o dispositivo posee una identificación o dirección. En el caso del DS18B20 necesitamos averiguar su dirección que es única y viene establecida de fábrica.

Esta forma de conectar dos o más sensores es fácil de entender e implementar y es útil cuando son pocos sensores o simplemente tenemos pines disponibles para conectar más DS18B20.

Usando varios DS18B20 con un solo pin del Arduino

En este caso conectamos todos los sensores al mismo bus 1-Wire.

Bajo este esquema es posible conectar más sensores al mismo pin de datos.

La diferencia aquí, es que al tratarse de un sólo bus 1-wire, necesitaremos encontrar la dirección de cada uno de los sensores para identificarlo.
El siguiente sketch solamente se utiliza para obtener la dirección de los dispositivos conectados en el bus:

El código anterior sirve para obtener las direcciones de los sensores, en este caso hemos obtenido las direcciones de los tres sensores que están conectados; pero igual se puede ejecutar este código para cada sensor de forma individual.
Una vez obtenida cada una de las direcciones se podrá identificar a los sensores que busquemos medir.

Para realizar las lecturas con las direcciones previamente obtenidas usamos el siguiente sketch:

Las temperaturas sensadas son similares puesto que los sensores se encontraban en el mismo ambiente:
Para cambiar la resolución del sensor a: 9, 10, 11 o 12 bits. solo se debe usar la función:

 Conclusión

Este tutorial solo muestra unas cuantas de muchas posibilidades que se pueden realizar con este sensor digital. Posibilita el implementar un gran número de ellos controlados por un sólo microcontrolador y hace mas exactas las lecturas dado que la distancia de las conexiones no altera el valor captado por el sensor, como pudiera pasar en sensores de temperatura analógicos; donde la distancia debe ser tomada en cuenta para lograr ser mas precisas.

 

Cómpralo en nuestra tienda:
Sensor Temperatura Digital DS18B20

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *