#include <OneWire.h>
/*****************************************************************************
* Sketch: DS18B20_LCD.ino
*
* Digital Pin 38 für 1Wire Bus
* Pull Up Widerstand 4k7 zwischen Digital Pin 38 and +5V
* Temperatur Sensor(en) Dallas 18B20
*
*****************************************************************************/
OneWire ds(A0); // 1Wire initialisieren auf Arduino digital pin 38
byte i;
byte present = 0;
byte data[12];
byte addr1[8]={16, 40, 04, 00, 22, 90, 10, 14};//Dezimale Adresse des 1. DS18B20 28, 28, E5, 57, 04, E1, 3C, 6D
byte addr2[8]={40, 28, 30, 128, 227, 225, 60, 176};//Dezimale Adresse des 2. DS18B20 28, 1C, 1E, 80, E3, E1, 3C, B0
float Temp1;
float Temp2;
void setup() {
Serial.begin(9600); // Start serial Interface mit 9600 Baud
}
void loop() {
//Ti auslesen
ds.reset();
ds.select(addr1);
ds.write(0x44,0); // Start der Umwandlung ohne parasitäre Stromversorgung
delay(1000); // maybe 750ms is enough, maybe not
// prüfen ob Sensor angeschlossen ist
present = ds.reset();
ds.select(addr1);
ds.write(0xBE); // liest das Scratchpad
for ( i = 0; i < 9; i++) { // wir brauchen 9 Daten Bytes
data[i] = ds.read();
}
// Temperatur Berechnung. data[1] High Byte, data[0] Low Byte.
Temp1 = ((data[1] << 8) + data[0] ) * 0.0625; // 12Bit = 0,0625 C per Bit
//Ti auslesen
ds.reset();
ds.select(addr2);
ds.write(0x44,0); // Start der Umwandlung ohne parasitäre Stromversorgung
delay(1000); // maybe 750ms is enough, maybe not
// prüfen ob Sensor angeschlossen ist:
present = ds.reset();
ds.select(addr2);
ds.write(0xBE); // liest das Scratchpad
for ( i = 0; i < 9; i++) { // wir brauchen 9 Daten Bytes
data[i] = ds.read();
}
// Temperatur Berechnung. data[1] High Byte, data[0] Low Byte.
Temp2 = ((data[1] << 8) + data[0] ) * 0.0625; // 12Bit = 0,0625 C per Bit
//Ta auslesen
Serial.println(Temp1);
Serial.println();
Serial.println(Temp2);
}