DS18B20 with Arduino Nano

Wiring for the DS18B20 waterproof temperature probe on the Arduino Nano (ATmega328P, 5 V logic), chosen with the same pin rules BoardPilot uses: default buses first, and no pins that are used for flash, USB, the debugger or booting.

Wiring

DS18B20 pinRoleArduino Nano pinNotes
VDDPower5VRed wire
DQOne-wire dataD2 (PD2)Yellow (sometimes white) wire. Needs a 4.7 kΩ pull-up to 3.3 V
GNDGroundGNDBlack wire

Check before you power it on

Test code (Arduino)

// Library: OneWire, DallasTemperature
#include <OneWire.h>
#include <DallasTemperature.h>

OneWire bus(2);  // needs a 4.7 kΩ pull-up from DQ to VDD
DallasTemperature sensors(&bus);

void setup() {
  Serial.begin(115200);
  sensors.begin();
  Serial.print("Sensors found: ");
  Serial.println(sensors.getDeviceCount());
}

void loop() {
  sensors.requestTemperatures();
  Serial.println(sensors.getTempCByIndex(0));
  delay(1000);
}

Arduino board: arduino:avr:nano. Clones with the old bootloader upload at 57600 baud: choose “ATmega328P (Old Bootloader)” if uploads fail.

Questions

Which Arduino Nano pins do I use for the DS18B20?

VDD → 5V, DQ → D2 (PD2), GND → GND.

Does the DS18B20 work with the Arduino Nano at 5 V?

Yes: the DS18B20 runs at 3.3-5 V and the Arduino Nano uses 5 V signals, so no level shifting is needed.

BoardPilot checks this wiring in 3D as you build it, and finds crossed or missing wires on the real board.

Download BoardPilot

Full Arduino Nano pinout · DS18B20 waterproof temperature probe: all pins and data

The DS18B20 on other boards

Other parts on the Arduino Nano