Sensor de Temperatura DS18B20 con Arduino Nano

publicado en: Sin Categoria | 0

Sensor de Temperatura DS18B20 con Arduino Leonardo 1El sensor de temperatura digital DS18B20 (datasheet) es un sensor de alta precisión de ±0.5ºC, que no requiere muchos componentes externos y de aceptable rango de temperatura de trabajo -55ºC hasta +125ºC. Además posee una resolución programable de 9 a 12 bits, configuración de alarma de temperatura no-volátil y se puede conectar hasta 128 esclavos en paralelo. Es muy utilizado en aplicaciones como: Control de Termostatos, Sistemas Industriales, temperatura de productos de consumo, sistemas térmicos, etc.

Este sensor DS18B20 es muy utilizado en la Industria ya que es digital y es prácticamente imune al ruido y pueden tomarse 2 muestras cada 1.5 segundos. Para poder enviar y recibir datos del sensor DS18B20 es necesario utilizar el protocolo de comunicación OneWire (1 Linea), y además conocer los registro involucrados y la secuencia de comandos para poder leer la temperatura a este sensor. A continuación se muestra algunos registro involucrados:

CARACTERÍSTICAS DEL SENSOR DS18B20:

  1. Interfaz OneWire (1 Linea).
  2. No requiere componentes externos.
  3. Memoria ROM de 64Bits.
  4. Alimentación: 3.0v – 5.0v.
  5. Temperatura desde: -55°C – 125°C.
  6. ±0.5°C de Presición en el rango de: -10°C – 85°C.
  7. Resolución configurable de 9,10,11,12 bits.
  8. Tiempo de conversión de 750ms (max).

MAPA DE MEMORIA.

DS18B20-II

La secuencia para la lectura de temperatura del sensor DS18B20 puede ser extensa y tediosa, pero gracias a que existe ejemplos y librerías en Arduino todo se hace más sencillo.

EJEMPLO.

#include 
#include 

// Define el pin que se utiliza como sensor
#define ONE_WIRE_BUS 2

//  Configura y carga el pin sensor al protocolo OneWire.
OneWire oneWire(ONE_WIRE_BUS);

//  Pasa como referenia el pin sensor a libreria Dallas.
DallasTemperature sensors(oneWire);

void setup(void){
  // Configura el Puerto Serial.
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  // Configura e inicializa OnWire y Dallas library.
  sensors.begin();
  delay(1000);
}

void loop(void){ 
  //  Envia comando y prepara al sensor para ser Leido.
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures();  // Envia comando para lectura.
  Serial.println("DONE");
  //  Lee la temperatura en Grados Celcius.
  Serial.print("Grados Celcius");
  Serial.println(sensors.getTempCByIndex(0));
  //  Lee la temperatura en Grados Celcius.
  Serial.print("Grados Faharenheit");
  Serial.println(sensors.getTempFByIndex(0));
}

Deja una respuesta