I am new to arduino, I want to use 5 DS18B20 on the same bus.
Fist of all I test one sensors, then 2, 3, 4 températures are read perfectly.
As soon as i plug a 5th sensor all goes bad. No more reading any more.
I have tested all sensors individually, all OK.
I have tested the two way connection I.e. Normal (Vcc, GND, Data) and also the so call parasite (2 Ground, data to Vcc via 4.7 K and to pin 2 of arduino.
Both way goes wrong when 5 th sensor is added.
Here unde is the code I am using.
Thank you very much for help.
yoyodutheil
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// 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(); // IC Default 9 bit. If you have troubles consider upping it 12. Ups the delay giving the IC more time to process the temperature measurement
}
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");
for (int i=0;i<5;i++) {
Serial.print("Temperature for Device: ");
Serial.print(i);
Serial.print(" is: ");
Serial.print(sensors.getTempCByIndex(i)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.println();
}
Serial.println();
Serial.println();
Serial.println();
delay (5000);
}