Cómo conectar un Sensor de temperatura DS18B20 a Arduino

En este pequeño tutorial veremos cómo conectar un sensor de temperatura DS18B20 a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.

El sensor DS18B20 es un componente digital de entrada, es decir, su funcionamiento consiste en entregar la información correspondiente a la temperatura del ambiente por medio de un protocolo de comunicación específico implementado en su pin de señal, la tarjeta Arduino a su vez recibe la señal y la lee con uno de sus pines digitales. En este ejemplo conectaremos el pin de señal de nuestro sensor al pin digital #2 de la tarjeta.

Componentes necesarios

  • Sensor de temperatura DS18B20
  • Protoboard chica
  • Arduino Uno
  • Resistor de 4.7 kohms
  • Cables de conexión M-M

Diagrama de conexiones

Arduino Uno – Sensor de temperatura DS18B20 – Resistor de 4.7 kohms

Pasos previos a ejecutar el código

Como mencionamos previamente, el sensor DS18B20 entrega la información por medio de un protocolo de comunicación serial implementado en un solo pin, el protocolo OneWire. En este caso utilizaremos las librerías <OneWire.h> y <DallasTemperature.h> para realizar la lectura de manera sencilla y con muy pocas líneas de código. Estas librerías no forman parte de las librerías pre instaladas del Arduino IDE por lo que tendremos que instalarlas antes de poder compilar nuestro código. Para ello sigue los sigueintes pasos:

1.- Desplegar el Gestor de Librerías en: Programa > Incluir Librería > Administrar Bibliotecas

2.- En el Gestor de Librerías buscar e instalar la librería OneWire

3.- En el Gestor de Librerías buscar e instalar la librería DallasTemperature

Código de Arduino

Cargamos el código a la tarjeta Arduino Uno y abrimos el monitor serie para observar la temperatura entregada por el sensor cada 0.5 segundos aproximadamente.


//Incluimos las librerías necesarias(Asugúrate de que cunetes con dichas librerias instaladas)
#include <OneWire.h>
#include <DallasTemperature.h>
// Conectamos el pin de datos del sensor al pin digital 2 del arduino 
#define ONE_WIRE_BUS 2

//Configuramos una instancia oneWire para comunicarnos con cualquier dispositivo OneWire 
OneWire oneWire(ONE_WIRE_BUS);

//Pasamos nuestra resferencia oneWire a la instancia de DallasTemperature
DallasTemperature sensors(&oneWire);


void setup(void)
{
  //Iniciamos el puerto serie
  Serial.begin(9600);
  Serial.println("DEMO Dallas Temperature");

  //Inicializamos la librería
  sensors.begin();
}


void loop(void)
{ 
  Serial.print("Solicitando temperaturas...");
  sensors.requestTemperatures(); //Enviamos el comando para obtener la temperatura
  Serial.println("Terminado");
  //Después de haber recibido las temperaturas podemos imprimirlas
  
  Serial.print("Temperatura del dispositivo uno (index 0): ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" °C");
  
  delay(500);
}

¡Sigue explorando!