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.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
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.println("DONE");
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:
but I think you are missing this step, because i can't see any connection like that 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– Mehdi2016年04月18日 10:51:29 +00:00Commented 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.
Explore related questions
See similar questions with these tags.