Sensor de temperatura DS18B20 Arduino

Cómo conectar un sensor de temperatura DS18B20 / DS18B22 al Arduino para hacer un termómetro usando la librería OneWire y DallasTemperature. A diferencia del sensor DHT11, el sensor está construido en una carcasa impermeable, funciona en un amplio rango de temperaturas y es capaz de medir temperaturas negativas. El sensor de temperatura DS18B20 integrado tiene una resolución de medición de hasta 0,0625 °C.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • la sonda impermeable DS18B20;
  • placa de pruebas;
  • LED y resistencia de 220 Ohm;
  • cables de conexion;
  • librerias DallasTemperature.h y OneWire.h

Arduino sensor de temperatura DS18B20 datasheet, pinout

El sensor de temperatura digital DS18B20 (la sonda impermeable) envía datos en el bus Wire y puede trabajar en la misma línea que muchos otros dispositivos. Cada sensor tiene su propio código de 64 bits, lo que permite al microcontrolador Arduino comunicarse en el mismo bus con varios sensores a la vez. El sensor convierte la temperatura ambiente en un código digital, es decir, no se necesita un ADC adicional para la conexión.

Sensor DS18B20 Arduino datasheet, pinout
El sensor de temperatura DS18B20 Arduino pinout, datasheet

Caractéristiques DS18B20 Arduino:

  • apto para 3,3V y 5V
  • rango de medición -55 a 125°C (-67°F a +257°F)
  • precisión ±0,5°C de -10°C a +85°C
  • resolución configurable de 9 a 12 bits
  • identificador único de 64 bits
  • tiempo de respuesta < 750 ms
  • varios sensores posibles en el mismo pin

Como este sensor es digital, puedes utilizar el sensor impermeable DS18B20 a larga distancia sin que se deteriore la información. El único inconveniente es que este sensor utiliza el protocolo Dallas 1-wire que es bastante complejo, pero afortunadamente ya existen librerías para Arduino. Para utilizar el DS18B20, recomendamos la biblioteca de control de temperatura de DallasTemperature.h que requiere la biblioteca OneWire.h.

Cómo conectar el sensor de temperatura DS18B20 Arduino

Conectar un sensor digital ds18b20 Arduino
Cómo conectar un sensor digital ds18b20 Arduino Uno

La biblioteca Arduino DallasTemperature Sensors OneWire hace que trabajar con el sensor DS18B20 sea mucho más fácil y sencillo. La descripción de la librería DallasTemperature.h indica que el sensor es controlado por varias funciones simples, que se presentan en el siguiente programa. Conecta el sensor digital de temperatura DS18B20 resistente al agua al microcontrolador según el diagrama y descarga el código.

Programa Arduino sensor de temperatura DS18B20

#include "OneWire.h"
#include "DallasTemperature.h"
 
OneWire oneWire(A1);
DallasTemperature ds(&oneWire);

void setup() {
  Serial.begin(9600);
  ds.begin();
}

void loop() {
  ds.requestTemperatures();
  int t = ds.getTempCByIndex(0)
 
  Serial.print(t);
  Serial.println( "C");
 
  delay(1000);
}

Explicación del código del sensor de temperatura DS18B20 Arduino:

  1. la información se transmite al monitor serie del puerto IDE de Arduino;
  2. se puede utilizar cualquier pin digital del microcontrolador para conectar el sensor.
Conectar un sensor de temperatura ds18b20 Arduino
Cómo conectar un sensor de temperatura ds18b20 Arduino

El único cable permite conectar varios sensores en el mismo pin del arduino. De hecho, cada sensor tiene una dirección única codificada en 64 bits que está asociada a una biblioteca cargada en el arduino. Es decir, donde necesitarías una placa Arduino Uno completa para conectar 16 sensores, con el ds18b20, puedes poner todo en una sola entrada On/Off (porque es un sensor digital, no analógico).

Programa Arduino sensor digital DS18B20 y LED

#define PIR  2
#define LED  12

unsigned long counttime;

void setup() {
   pinMode(PIR, INPUT);
   pinMode(LED, OUTPUT);
}

void loop() {
   if (digitalRead(PIR) == HIGH) {
      digitalWrite(LED, HIGH);
      counttime = millis();
   }

   if (digitalRead(PIR) == LOW && millis() - counttime > 60000) {
      digitalWrite(LED, LOW);
   }
}

Explicación del código del sensor digital DS18B20 y LED:

  1. el umbral del LED se puede cambiar en la instrucción condicional if else de Arduino;
  2. la información se transmite al monitor serie del puerto IDE de Arduino.

Conclusión. El sensor se puede fabricar en varias variantes (ver imagen superior), de ello dependerá el esquema de conexión del sensor de temperatura DS18B20 al Arduino Uno. En el primer caso, se debe utilizar una resistencia de pull-up de 4,7 kOhm. El sensor de temperatura, como módulo estándar, ya lleva incorporada una resistencia. La tercera opción es un sensor en una carcasa impermeable, que puede utilizarse en agua caliente.


Deja una respuesta

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