Cómo medir las temperaturas con DS18B20 y Arduino Deja un comentario

El sensor DS18B20

Una de las formas más fáciles y baratas de añadir la detección de temperatura a tu proyecto Arduino es usar el sensor de temperatura de 1 cable DS18B20. Estos sensores son bastante precisos y no necesitan componentes externos para funcionar. Así que, con sólo unas pocas conexiones y un poco de código de Arduino, estarás detectando la temperatura en poco tiempo.

Pinout del sensor DS18B20

DallasTemperature.h para poder emitir comandos simples para obtener lecturas de temperatura del sensor.

Para instalar la librería ve al menú Sketch > Include Library > Manage Libraries.. Espera a que el Administrador de la Librería descargue el índice de las librerías y actualice la lista de librerías instaladas.

Filtra tu búsqueda escribiendo “ds18b20”. Debería haber un par de entradas. Busca DallasTemperature de Miles Burton. Haz clic en esa entrada y luego selecciona Instalar.


Serial.print(sensors.getTempCByIndex(0));
Serial.print((char)176);//shows degrees character
Serial.print("C | ");

//print the temperature in Fahrenheit
Serial.print((sensors.getTempCByIndex(0) * 9.0) / 5.0 + 32.0);
Serial.print((char)176);//shows degrees character
Serial.println("F");

delay(500);
}

Entonces en el monitor serie tendría que aparecerte la temperatura reflejada como lo siguiente:

serial monitor temperaturas DS18B20 - Cómo medir las temperaturas con DS18B20 y Arduino

El programa comienza incluyendo las librerías OneWire.h y DallasTemperature.h y declarando el Pin de Arduino a la que está conectada la clavija de señal del sensor.

#include
#include

#define ONE_WIRE_BUS 2

A continuación creamos un objeto de un solo cable pasando la clavija de señal del sensor a su constructor. Este objeto de un solo cable nos permite comunicarnos con cualquier dispositivo de un solo cable, no sólo con el DS18B20. Para poder comunicarnos con el sensor DS18B20, necesitamos crear un objeto de la biblioteca de DallasTemperature y pasar la referencia del objeto de un solo cable como parámetro.

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

Una vez creado un objeto de DallasTemperature, podemos emitir a continuación simples comandos para interactuar con el sensor.

  • La función begin() busca los sensores conectados en el bus y establece la resolución de bits (12 bits) para cada uno.
  • La función requestTemperatures() envía un comando para que todos los sensores del bus realicen una conversión de temperatura.
  • La función getTempCByIndex(deviceIndex) lee y devuelve la lectura de temperatura del sensor. deviceIndex no es más que la ubicación del sensor en el bus. Si sólo usas un DS18B20 en el autobús, ponlo en 0.

Otras funciones útiles en la biblioteca de DallasTemperature.h

Hay algunas funciones útiles que puedes utilizar con el objeto DallasTemperature. Algunas de ellas se enumeran a continuación:

  • La función setResolution() establece la resolución del convertidor analógico-digital interno del DS18B20 a 9, 10, 11 o 12 bits, que corresponde a incrementos de 0,5°C, 0,25°C, 0,125°C y 0,0625°C, respectivamente.
  • La función bool getWaitForConversion() devuelve el valor de la bandera waitForConversion. Puede ser útil cuando se quiere comprobar si una conversión de temperatura está completa.
  • La función setHighAlarmTemp() & setLowAlarmTemp() establece las alarmas internas de alta y baja temperatura de un dispositivo en grados centígrados. El rango válido es de -55 a 125°C
  • La función “bool hasAlarm()” se activa si el dispositivo tiene una condición de alarma cuando la temperatura excede el ajuste de temperatura de alarma alta y baja.

Última actualización el 2020-04-16 / Enlaces de afiliados / Imágenes de la API para Afiliados

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

0
    0
    Tu Carrito
    Tu carrito esta vacíoVolver a la tienda
    Enviar Whatsapp
    Hola 👋
    ¿En qué podemos ayudarte?