16827
Nuevo producto
Cod: GAW
3 Elemento artículos
Advertencia: ¡Últimos artículos en stock!
Disponible el:
compartir
Si realmente quieres sacar todo el partido a un componente, lo primero que tienes que hacer es dirigirte a la hoja de características técnicas del DS18B20. En este documento vas a encontrar todo lo necesario para conectar y programar el componente.
Lo primero que vemos es que hay diferentes formas del sensor DS18B20. A esto se le llama encapsulado y depende de donde lo utilices (protoboard, PCB, etc…), tendrás que elegir uno u otro.
Lo más importante de esta parte es la disposición de los pines. Para cada encapsulado encontramos una disposición diferente. Existen tres encapsulados: TO-92, SO y μSOP.
La única diferencia entre ellos es la forma o encapsulado. Todos tienen tres pines útiles VDD, GND y DQ.
De momento ya hemos avanzado bastante, ya sabríamos como conectar el sensor de temperatura DS18B20 a un Arduino. Faltaría la programación :). Aún así, es interesante conocer más aspectos técnicos de este sensor.
Es importante fijarse en el consumo eléctrico si queremos utilizar el DS18B20 con alguna placa que requiera de baterías o pilas. Eso lo vemos en la segunda página en los parámetros que se miden en Amperios. Para este artículo no nos hace falta ya que será alimentado a través de la red eléctrica.
Algo muy importante es saber qué rango de temperaturas es capaz de medir un sensor de este tipo. No es lo mismo medir la temperatura ambiente de una casa situada en Alicante que medir la temperatura de un congelador o frigorífico.
También es importante conocer el error que puede llegar a tener y la resolución del sensor de temperatura DS18B20. Toda esta información la sacamos de la hoja de características técnicas.
Comenzamos con el rango de temperaturas. El DS18B20 puede medir temperaturas entre -55ºC y 125ºC. Es un rango muy amplio sin embargo, no en todo el rango tenemos el mismo error. Ahora te estarás preguntando ¿qué es el error de un sensor de temperatura?
Si viviéramos en un mundo ideal donde todos salimos del trabajo a nuestra hora, nuestros hijos nos hacen caso y tenemos pagada la hipoteca desde hace años, un sensor de temperatura nos mediría exactamente la temperatura que hace en un sitio.
Pero no, no vivimos en un mundo idóneo y no salimos a nuestra hora, nuestros hijos no nos hacen caso y nos queda mucho de hipoteca por pagar. En este mundo, el real, un sensor de temperatura como el DS18B20 tiene errores debido a factores externos, al ruido inherente en los circuitos eléctricos y alteraciones en el medio físico.
No todo son noticias malas, aunque los componentes eléctricos tengan errores, estos se pueden medir. Por lo tanto sabemos más o menos cuanto oscilará la medición entorno a su valor real. En el caso del DS18B20 el error depende del rango de temperaturas.
Para temperaturas entre -10ºC y 85ºC podemos tener ±0,5ºC. Para el resto de temperaturas entre -55ºC y 125ºC el error es de ±2ºC.
Esto equivale a decir que si el sensor DS18B20 suministra una temperatura de 23ºC el valor real estará entre 22,5ºC y 23,5ºC. Si por el contrario suministra un valor de 90ºC el valor real estará entre 88ºC y 92ºC.
Esto tampoco te debe preocupar a no ser que quieras «cocer metanfetamina» como Walter White en Breaking Bad :)
Una de las características más interesantes de este sensor es que podemos trabajar con diferentes resoluciones. Cuando hablo de resoluciones me refiero a cual es la variación mínima que podemos medir entre dos temperaturas.
Es lo mismo que nos sucede con los pines analógicos en Arduino o cualquier otra placa de desarrollo. El DS18B20 admite resoluciones de 9-bit, 10-bit, 11-bit y 12-bit. Por defecto utiliza la resolución de 12-bit.
Las variaciones para cada resolución las puedes consultar en la siguiente tabla.
RESOLUCIÓN | TEMPERATURA |
---|---|
9-bit | 0,5ºC |
10-bit | 0,25ºC |
11-bit | 0,125ºC |
12-bit | 0,0625ºC |
Elegir una resolución u otra dependerá de la precisión que necesitemos para nuestro proyecto. A través de la programación podremos cambiar dicha resolución pero todo eso lo veremos más adelante.
Además de medir la temperatura, el DS18B20 incorpora una memoria de 64-bit (equivalente a 8 bytes) para almacenar el identificador o dirección única de cada sensor.
El primer byte identifica el tipo de componente. Por ejemplo para los DS18B20 es el número 28 en hexadecimal.
Esta dirección única es necesaria dentro del bus 1-Wire para identificar cada uno de los sensores de temperatura DS18B20 conectados al bus de comunicación.
Gracias a que utiliza este tipo de comunicaciones, se consiguen dos cosas. Por un lado robustez en la transmisión de los datos ya que trabaja con datos digitales, mucho menos sensibles a los efectos adversos del ruido que las señales analógicas. Por otro lado permite conectar muchos sensores de temperatura con un único pin digital.
Internamente tiene otro tipo de memoria que sirve para diferentes cosas. Utiliza el sistema de verificación de redundancia cíclica CRC para la detección de errores en los datos. El código CRC se almacena en la memoria.
También almacena la temperatura obtenida y dispone de dos alarmas que se disparan si la temperatura es mayor o menor que un umbral de temperatura máxima o temperatura mínima.
CARACTERÍSTICA | VALOR |
---|---|
Voltaje de alimentación | 3V a 5,5V |
VDD | voltaje de alimentación |
GND | Tierra |
DQ | Datos |
Rango de temperaturas | -55ºC a 125ºC |
Error (-10ºC a 85ºC) | ±0,5ºC |
Error (-55ºC a 125ºC) | ±2ºC |
Resolución programable | 9-bit, 10-bit, 11-bit o 12-bit (default) |
Una vez que entendemos cómo funciona el sensor de temperatura DS18B20 y, sobre todo, cuales son sus características técnicas más importantes, vamos a pasar al montaje eléctrico con Arduino. Como supondrás, todo este montaje se hace entorno al protocolo 1-Wire.
Esto no es único del DS18B20, cualquier otro componente que trabaje con el protocolo 1-Wire, utilizará la misma configuración eléctrica.
Ya hemos visto que podemos trabajar con diferentes encapsulados. En este tutorial voy a centrarme en el TO-92 y más concreto el que viene en forma de sonda impermeable. Si tienes otro modelo o incluso el mismo sin sonda los pasos serán prácticamente los mismos.
Nota: La polaridad de los cables se puede testear con un multimetro en la función DIODO
Si: Punta negra a Vcc y punta roja a Dato: medición 1.96
Si: Punta negra a Datos y punta roja a Vcc: medición infinito
Diametro de la sonda: 6mm