Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • About me
  • Contact
  • Deutsch
  • English
Menu

Arduino Lesson #6 – digital temperature sensor DS18B20

Posted on 28. October 202210. March 2024 by Stefan Draeger

In this post, I like to show how to connect and code a digital temperature sensor DS18B20 at Arduino UNO.

Arduino Lesson #6 - digital temperature sensor DS18B20
Arduino Lesson #6 – digital temperature sensor DS18B20

I’ve shown you in my last blog post Arduino Lesson #5 – analog temperature sensor LM35DZ an analog temperature sensor. Here you get some information how to connect the digital sensor DS18B20.

  • Required components for samples with sensor DS18B20 at Arduino
  • Types of sensor DS18B20
  • Technical data of DS18B20
  • Pinout digital temperature sensor DS18B20
  • Connect DS18B20 to Arduino
  • Sample – read values from sensor DS18B20

Required components for samples with sensor DS18B20 at Arduino

To rebuild the following samples, you need:

  • a microcontroller from the Arduino-Family like Arduino UNO R3*, Arduino Nano*, etc.
  • USB datacable*,
  • digital temperature sensor DS18B20*,
  • 4,7 kOhm Resistor*,
  • 400 Pin Breadboard*,
  • some breadboardwires*, male-male, 10 cm

Note from me: The links marked with an asterisk (*) are affiliate links. If you make a purchase through these links, I will receive a small commission to help support this blog. The price for you remains unchanged. Thank you for your support!

Types of sensor DS18B20

In addition, you can get the TO92 device on a small board, which eliminates the need for cumbersome and error-prone wiring.

Technical data of DS18B20

  • Measurement range -55 °C to +125 °C
  • nominal voltage 3 V to 5,5 V DC
  • current consumption 1 mA
  • design TO-92
  • resolution 9-bit

Pinout digital temperature sensor DS18B20

The tiny sensor DS18B20 has three legs, when you look at the case you will see a flat side and a rounded side. At the flat side you find the specifications. To get the right pinout, please lay down this part at the rounded side, so the flat side is up.

Connect DS18B20 to Arduino

For the next circuit it’s not required if you use an Arduino UNO, Nano, Micro or others, it will work for all of them.

circuit sensor Ds18B20 at Arduino Nano
Circuit sensor Ds18B20 at Arduino Nano
real circuit sensor Ds18B20 at Arduino Nano
real circuit sensor Ds18B20 at Arduino Nano

Every sensor has an own address, so you can connect more than one sensor at the same digital pin.

Sample – read values from sensor DS18B20

Here you can find a short sample to read all sensor data from connected sensors.

//library to read values from sensor DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>

//sensor connected to digital pin D2
#define ONE_WIRE_BUS 2

//create instance and attach pin
OneWire oneWire(ONE_WIRE_BUS);

//create instance of DallasTemperature and attach instance of OnWire
//connection
DallasTemperature sensors(&oneWire);

//numbers of sensors
int sensorCount;

void setup(void) {
  //start serial communication with 9600 baud
  Serial.begin(9600);
  Serial.println("digital temperatursensor - DS18B20");
  //start communication with sensor
  sensors.begin();
  //read out the number of connected sensors
  sensorCount = sensors.getDS18Count();
}

void loop(void) {
  //if no sensor was found, then...
  if (sensorCount == 0) {
    Serial.println("No sensor found!");
    Serial.println("Please check connection!");
  }

  //request values from connected sensors
  sensors.requestTemperatures();

  //loop trouth all sensors, and print out the values
  for (int i = 0; i < sensorCount; i++) {
    Serial.print(i);
    Serial.println(". Temperatur :");
    //print value in Celsius
    printValue(sensors.getTempCByIndex(i), "°C");
    //print value in Fahrenheit
    printValue(sensors.getTempFByIndex(i), "°F");
  }

  //make a short brake for 1 second
  delay(1000);
}

//function to send a formatted text to serial interface
void printValue(float value, String text) {
  Serial.print("\t\t");
  Serial.print(value);
  Serial.println(text);
}

The code above will print the values to

read and print temperature sensor values froom DS18B20
read and print temperature sensor values froom DS18B20

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Categories

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Cookies, um unsere Website und unseren Service zu optimieren.
Funktional Always active
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Einstellungen anzeigen
{title} {title} {title}