Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use DS18B20 Digital Temperature Sensor: Examples, Pinouts, and Specs

Image of DS18B20 Digital Temperature Sensor
Cirkit Designer LogoDesign with DS18B20 Digital Temperature Sensor in Cirkit Designer

Introduction

The DS18B20 Digital Temperature Sensor, manufactured by DF Robot (Part ID: Temperature Sensor), is a versatile and highly accurate temperature sensor. It provides temperature readings in the range of -55°C to +125°C with a resolution of up to 12 bits. The sensor communicates using a 1-Wire interface, enabling multiple sensors to share a single data line. This makes it an excellent choice for applications requiring distributed temperature monitoring.

Explore Projects Built with DS18B20 Digital Temperature Sensor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO-Based Multi-Sensor Environmental Monitoring System
Image of diagrama tesis: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
This circuit involves an Arduino UNO microcontroller interfacing with a DS18B20 temperature sensor. The sensor is powered by the Arduino's 5V and GND pins, and its data pin is connected to a digital I/O pin on the Arduino, with a pull-up resistor in place. The setup is designed to read temperature data from the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Based Temperature Monitoring System with DS18B20 Sensor
Image of DS18b20 sim test: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
This circuit is designed to measure temperature using a DS18B20 sensor interfaced with an Arduino UNO. The Arduino reads temperature data from the sensor via a 1-Wire bus with a pull-up resistor and outputs the readings to the serial console.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO with Multiple DS18B20 Sensors for Temperature Monitoring
Image of Interfacing Multiple DS18B20 Digital Temperature Sensors With Arduino UNO: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
This circuit is designed to monitor temperatures using multiple DS18B20 1-Wire temperature sensors connected to an Arduino UNO microcontroller. The sensors are powered by the Arduino's 5V output and share a common data line (DQ) connected to digital pin 2 through a 4.7kΩ pull-up resistor, allowing for simultaneous temperature readings. The Arduino runs a sketch that reads temperatures from each sensor and outputs the readings to the serial monitor in both Celsius and Fahrenheit.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU with DS18B20 Temperature Sensor Monitoring
Image of SUHU: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
This circuit features an ESP8266 NodeMCU microcontroller connected to a DS18B20 temperature sensor. The sensor's data line (DQ) is connected to the D2 pin of the NodeMCU through a 4.7k ohm pull-up resistor, which is a common configuration for one-wire temperature sensors. The sensor is powered by the 3.3V supply from the NodeMCU, and both the sensor and the NodeMCU share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with DS18B20 Digital Temperature Sensor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of diagrama tesis: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
Arduino UNO-Based Multi-Sensor Environmental Monitoring System
This circuit involves an Arduino UNO microcontroller interfacing with a DS18B20 temperature sensor. The sensor is powered by the Arduino's 5V and GND pins, and its data pin is connected to a digital I/O pin on the Arduino, with a pull-up resistor in place. The setup is designed to read temperature data from the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of DS18b20 sim test: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
Arduino UNO Based Temperature Monitoring System with DS18B20 Sensor
This circuit is designed to measure temperature using a DS18B20 sensor interfaced with an Arduino UNO. The Arduino reads temperature data from the sensor via a 1-Wire bus with a pull-up resistor and outputs the readings to the serial console.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Interfacing Multiple DS18B20 Digital Temperature Sensors With Arduino UNO: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
Arduino UNO with Multiple DS18B20 Sensors for Temperature Monitoring
This circuit is designed to monitor temperatures using multiple DS18B20 1-Wire temperature sensors connected to an Arduino UNO microcontroller. The sensors are powered by the Arduino's 5V output and share a common data line (DQ) connected to digital pin 2 through a 4.7kΩ pull-up resistor, allowing for simultaneous temperature readings. The Arduino runs a sketch that reads temperatures from each sensor and outputs the readings to the serial monitor in both Celsius and Fahrenheit.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SUHU: A project utilizing DS18B20 Digital Temperature Sensor in a practical application
ESP8266 NodeMCU with DS18B20 Temperature Sensor Monitoring
This circuit features an ESP8266 NodeMCU microcontroller connected to a DS18B20 temperature sensor. The sensor's data line (DQ) is connected to the D2 pin of the NodeMCU through a 4.7k ohm pull-up resistor, which is a common configuration for one-wire temperature sensors. The sensor is powered by the 3.3V supply from the NodeMCU, and both the sensor and the NodeMCU share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • HVAC systems for temperature control
  • Weather monitoring stations
  • Industrial temperature monitoring
  • Home automation systems
  • Data logging and scientific experiments

Technical Specifications

The DS18B20 sensor is designed for ease of use and reliable performance. Below are its key technical details:

Parameter Value
Operating Voltage 3.0V to 5.5V
Temperature Range -55°C to +125°C
Accuracy ±0.5°C (from -10°C to +85°C)
Resolution 9 to 12 bits (programmable)
Interface 1-Wire
Maximum Current Draw 1.5mA during conversion
Communication Protocol 1-Wire digital protocol
Response Time < 750ms (12-bit resolution)

Pin Configuration and Descriptions

The DS18B20 sensor typically comes in a 3-pin TO-92 package. Below is the pin configuration:

Pin Name Description
1 GND Ground pin, connect to the ground of the circuit
2 DQ Data pin, used for 1-Wire communication. Requires a pull-up resistor (4.7kΩ)
3 VDD Power supply pin, connect to 3.0V to 5.5V

Usage Instructions

How to Use the DS18B20 in a Circuit

  1. Wiring the Sensor:

    • Connect the GND pin to the ground of your circuit.
    • Connect the VDD pin to a 3.3V or 5V power supply.
    • Connect the DQ pin to a digital I/O pin of your microcontroller. Add a 4.7kΩ pull-up resistor between the DQ pin and the power supply (VDD).
  2. 1-Wire Communication:

    • The DS18B20 uses a 1-Wire protocol, which allows multiple sensors to share a single data line. Each sensor has a unique 64-bit serial code for identification.
  3. Power Modes:

    • The sensor can operate in parasitic power mode, where it draws power from the data line. However, this requires careful circuit design and is less commonly used.

Important Considerations and Best Practices

  • Use a 4.7kΩ pull-up resistor on the data line to ensure proper communication.
  • Avoid long wires or noisy environments, as they can interfere with the 1-Wire signal.
  • If using multiple sensors on the same data line, ensure each sensor's unique address is correctly identified in your code.
  • For accurate readings, avoid placing the sensor near heat sources or in direct sunlight.

Example Code for Arduino UNO

Below is an example of how to use the DS18B20 with an Arduino UNO. This code uses the popular DallasTemperature and OneWire libraries.

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is connected to pin 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass the oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  sensors.begin();    // Initialize the DS18B20 sensor
}

void loop() {
  Serial.println("Requesting temperature...");
  sensors.requestTemperatures(); // Send command to get temperature readings

  // Fetch and print the temperature in Celsius
  float temperatureC = sensors.getTempCByIndex(0);
  if (temperatureC != DEVICE_DISCONNECTED_C) {
    Serial.print("Temperature: ");
    Serial.print(temperatureC);
    Serial.println(" °C");
  } else {
    Serial.println("Error: Sensor not found or disconnected!");
  }

  delay(1000); // Wait 1 second before the next reading
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Temperature Reading:

    • Cause: Missing or incorrect pull-up resistor on the data line.
    • Solution: Ensure a 4.7kΩ pull-up resistor is connected between the data line and VDD.
  2. Inconsistent Readings:

    • Cause: Electrical noise or long wires.
    • Solution: Use shorter wires and shielded cables. Add decoupling capacitors near the sensor.
  3. Sensor Not Detected:

    • Cause: Incorrect wiring or damaged sensor.
    • Solution: Double-check the wiring and ensure the sensor is functional.
  4. Temperature Stuck at -127°C or 85°C:

    • Cause: Communication error or sensor initialization issue.
    • Solution: Verify the sensor's connection and ensure the code initializes the sensor correctly.

FAQs

Q1: Can I connect multiple DS18B20 sensors to the same data line?
Yes, the DS18B20 supports multiple sensors on a single data line. Each sensor has a unique 64-bit address for identification.

Q2: What is the maximum cable length for the DS18B20?
The maximum cable length depends on the environment and power mode. In ideal conditions, it can reach up to 100 meters with proper pull-up resistance.

Q3: Can the DS18B20 operate in water?
Yes, but only if it is housed in a waterproof casing. Many DS18B20 sensors are available in waterproof versions for such applications.

Q4: What happens if I don't use a pull-up resistor?
The sensor will not communicate properly without a pull-up resistor on the data line.

Q5: Can I use the DS18B20 with a 3.3V microcontroller?
Yes, the DS18B20 operates within a voltage range of 3.0V to 5.5V, making it compatible with 3.3V systems.