Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Guía del Sensor de Temperatura DS18B20: Especificaciones, Cableado y Uso con Arduino

El sensor de temperatura DS18B20 es un sensor digital de temperatura programable y ampliamente utilizado que proporciona mediciones de temperatura de 9 a 12 bits. Comunica mediante protocolo 1-Wire, requiriendo solo un pin de datos (y tierra) para interfaz con microcontroladores como Arduino. Su rango de medición es de -55 °C a +125 °C con precisión de ±0,5 °C (-10 °C a +85 °C). Disponible en encapsulado TO-92 (parecido a transistor) y versión a prueba de agua (waterproof) con cable de acero inoxidable. Ideal para monitorización ambiental, sistemas HVAC, acuarios, neveras, incubadoras y proyectos IoT. Cada sensor tiene un código ROM único de 64 bits, permitiendo múltiples sensores en un solo bus 1-Wire (multidrop). Alimentación: 3,0–5,5 V. Corriente activa ~1 mA, standby ~750 nA. Tiempo de conversión: <750 ms (12 bits). Incluye alarmas programables de temperatura alta/baja (TH/TL) con registro no volátil.

Pinout del DS18B20 (TO-92)

Visto de frente (parte plana hacia ti, patas abajo):

Modo parásito: Puede alimentarse por la línea de datos (DQ) sin conectar VDD (puentea VDD a GND). Requiere resistencia pull-up fuerte (4,7 kΩ) en DQ. Más lento y menos fiable en cables largos.

Modo normal (recomendado): VDD conectado a 3,3 V o 5 V. Resistencia pull-up 4,7 kΩ entre DQ y VDD.

Esquema de Conexión con Arduino

Arduino          DS18B20 (TO-92)
5V      ──────── VDD (pata 3)
GND     ──────── GND (pata 1)
D2      ──────── DQ  (pata 2)
                │
               4,7 kΩ
                │
               5V (pull-up)

Para versión waterproof (3 hilos): Rojo=VDD, Negro/Verde=GND, Amarillo/Blanco=DQ.

Librerías Necesarias

Instala desde Gestor de Librerías en Arduino IDE.

Código Básico: Lectura de Temperatura

#include 
#include 

#define ONE_WIRE_BUS 2

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

void setup() {
  Serial.begin(9600);
  sensors.begin();
  Serial.println("DS18B20 - Lectura temperatura");
}

void loop() {
  sensors.requestTemperatures(); // Envía comando de conversión a todos los sensores en el bus
  float tempC = sensors.getTempCByIndex(0); // Primer sensor (índice 0)
  float tempF = sensors.getTempFByIndex(0);

  if (tempC == DEVICE_DISCONNECTED_C) {
    Serial.println("Error: Sensor no encontrado");
  } else {
    Serial.print("Temp: ");
    Serial.print(tempC);
    Serial.print(" °C  |  ");
    Serial.print(tempF);
    Serial.println(" °F");
  }
  delay(1000);
}

Múltiples Sensores en un Bus (Multidrop)

Gracias al código ROM único de 64 bits, puedes conectar decenas de DS18B20 en paralelo en el mismo pin DQ. Cada uno se direcciona por índice (0, 1, 2...) o por su dirección ROM.

void loop() {
  sensors.requestTemperatures();
  int count = sensors.getDeviceCount();
  Serial.print("Sensores detectados: ");
  Serial.println(count);

  for (int i = 0; i < count; i++) {
    float t = sensors.getTempCByIndex(i);
    Serial.print("Sensor ");
    Serial.print(i);
    Serial.print(": ");
    if (t == DEVICE_DISCONNECTED_C) Serial.println("ERROR");
    else {
      Serial.print(t);
      Serial.println(" °C");
    }
  }
  delay(2000);
}

Para identificar cada sensor físicamente, usa sensors.getAddress() en setup y etiqueta cada uno con su dirección (ej. 28 FF 1A 3C...).

Resolución y Velocidad

Configurable (9–12 bits) con sensors.setResolution(bits):

BitsResoluciónTiempo máx. conversión
90,5 °C94 ms
100,25 °C188 ms
110,125 °C375 ms
120,0625 °C750 ms

Por defecto: 12 bits. Reduce resolución para lecturas más rápidas.

Alarmas Programables (TH / TL)

El DS18B20 tiene registros de alarma alta (TH) y baja (TL) no volátiles. Si temperatura sale del rango, el bit de alarma se activa. Puedes consultar con sensors.hasAlarm() o sensors.getAlarmHandler().

// Configurar alarmas: 30 °C alta, 5 °C baja
sensors.setHighAlarmTemp(0, 30); // sensor índice 0
sensors.setLowAlarmTemp(0, 5);

Versión Waterproof (Sonda Sumergible)

Carcasa de acero inoxidable (6×50 mm típ.), cable 1–3 m. Ideal para: acuarios, depósitos, suelo, neveras, exterior. Mismo protocolo 1-Wire. Asegura sellado del conector si usas en exterior permanente. Rango temp. cable: -55 °C a +105 °C (ver datasheet del cable).

Errores Comunes y Soluciones

Conclusión

El DS18B20 es el sensor de temperatura digital 1-Wire por excelencia: preciso, barato, multidrop, con versiones sumergibles y alarmas programables. Con Arduino y librerías OneWire + DallasTemperature, tienes un sistema de monitorización robusto en minutos. Para dudas, contáctanos.

Tecnología Industrial

  1. Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
  2. Evaluando la Precisión de un Circuito Bomba de Corriente a Través de Tolerancias de Resistores y Rangos de Temperatura Automotrices
  3. Robots colaborativos: Impulso a la eficiencia y crecimiento para pequeños y medianos fabricantes
  4. Cómo RFID Mejora la Visibilidad de Inventario y Producción en 5 Claves
  5. Etiquetas RFID Explicadas: Cómo Funcionan, Usos y Limitaciones
  6. Despliega Node-RED en PLCnext con Docker: Guía paso a paso
  7. Corte Láser: Precisión, Versatilidad y Beneficios Clave para la Fabricación Moderna
  8. Maximizando la longevidad de componentes de transportadores: Consejos expertos para operaciones mineras
  9. 5 Ideas Clave: RFID Activo y Sistemas de Localización en Tiempo Real
  10. Papel inteligente: RFID y blockchain reviven documentos físicos
  11. Por qué la duración de la batería importa para aplicaciones IoT reales