I just bought a DS18B20 temperature sensor. I can't detect the device when i run this code :

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

// Data wire is plugged into pin 10 on the Arduino
#define ONE_WIRE_BUS 10

// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
  // start serial port
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library

 void loop(void)
  // call sensors.requestTemperatures() to issue a global temperature
 // request to all devices on the bus
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? 
    // You can have more than one IC on the same bus. 
    // 0 refers to the first IC on the wire


Here are my connections: enter image description here and output on Serial Terminal is:

"Temperature for Device 1 is: -127.00 Requesting temperatures...DONE"

I also tried to detect the address of my device but with no success.
I am using an arduino Mega 2560, i have read in some forms that maybe it has something to do with Clock speed or something like that.

I appreciate your help.

I mainly followed this tutorial : http://www.hobbytronics.co.uk/ds18b20-arduino


2 Answers 2


In the Tutorial, which you are following, it says,

So we will use the 2 wire method. Simply connect both the GND and VDD pins to 0V (yes both)

and it shows:

enter image description here

but I think you are missing this step, because i can't see any connection like that here:

enter image description here

  • I still have the same result :/ I only get the -127 (I apologize for the mistake there was just that i was trying several tutorials and happened to leave that connection)
    – Mehdi
    Commented Apr 18, 2016 at 10:51

I attached VDD to GND and set it up so the 4K7 resistor was connecting the 5V to the data line - at first it didn't work, then I swapped it around as if the VDD and data lines from the sensor were switched - which it turned out they were.

Might be the case with your one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.