Hallo ht81
ich hab da noch diesen Sketch rumliegen Versuchs mal damit:
// Laden der Libarys
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Verwendete Pins des Displays angeben
// Bedeutet wie folgt
// * LCD RS pin to digital pin 8
// * LCD Enable pin to digital pin 9
// * LCD D4 pin to digital pin 4
// * LCD D5 pin to digital pin 5
// * LCD D6 pin to digital pin 6
// * LCD D7 pin to digital pin 7
//Variablen Festlegen
float Temperatur_1;
float Temperatur_2;
float Temperatur_3;
float Temperatur_4;
// DS18B20
// Datendraht an Pin D3
#define ONE_WIRE_BUS 3
// Start Kommunikation mit den Datenteilnehmern
OneWire oneWire(ONE_WIRE_BUS);
// Eistellung vom Dallas Datenprotokoll
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer_1 = { 0x28, 0xFA, 0xC9, 0x96, 0x03, 0x00, 0x00, 0x7E };
DeviceAddress Thermometer_2 = { 0x28, 0xC0, 0x97, 0x96, 0x03, 0x00, 0x00, 0x6B };
DeviceAddress Thermometer_3 = { 0x28, 0x89, 0xA3, 0x96, 0x03, 0x00, 0x00, 0x13 };
DeviceAddress Thermometer_4 = { 0x28, 0xA6, 0xB7, 0x96, 0x03, 0x00, 0x00, 0xE2 };
void setup ()
{
Serial.begin(9600); //initialisieren serielle Schnittstelle auf 9600 Baud
Serial.println("Start"); //Start ausgeben
// Festlegen LCD Displaygröße
lcd.begin(16, 2);
//DS18B20Anfang
// Starten der library DS18B20
sensors.begin();
// Einstellung der Auflösung auf 10 bit
sensors.setResolution(Thermometer_1, 10);
sensors.setResolution(Thermometer_2, 10);
sensors.setResolution(Thermometer_3, 10);
sensors.setResolution(Thermometer_4, 10);
} //DS18B20 Ende
void loop()
{
//DS18B20 Anfang
//Start Abfrage DS18B20
sensors.requestTemperatures();
//Temperaturen DS18B20 in Variable ablegen
float Temperatur_1 = sensors.getTempC(Thermometer_1);
float Temperatur_2 = sensors.getTempC(Thermometer_2);
float Temperatur_3 = sensors.getTempC(Thermometer_3);
float Temperatur_4 = sensors.getTempC(Thermometer_4);
// DS18B20 Ende
// Start Ausgabe Seriell
Serial.print("1.Temperature ist: ");
Serial.println(Temperatur_1);
Serial.print("2.Temperature ist: ");
Serial.println(Temperatur_2);
Serial.print("3.Temperature ist: ");
Serial.println(Temperatur_3);
Serial.print("4.Temperature ist: ");
Serial.println(Temperatur_4);
//Ende Ausgabe Seriell
// Ausgabe auf Display
lcd.clear();
lcd.setCursor(0, 0);// 1.Zeichen, 1.Zeile (Beginnt immer bei 0,0)
lcd.print(Temperatur_1,1);// Ausgabe des Variablen Inhalt, die 1 sind die Anzahl der Stellen nach Komma
lcd.setCursor(0, 1); //// 1.Zeichen, 2.Zeile
lcd.print(Temperatur_2,2);
delay (1000);// Warten und dann die Sensoren 3 und 4
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(Temperatur_3,1);
lcd.setCursor(0, 1);
lcd.print(Temperatur_4,1);
//Ende
}
die Sensoradressen bekommste mit diesen Sketch raus:
// This sketch looks for 1-wire devices and
// prints their addresses (serial number) to
// the UART, in a format that is useful in Arduino sketches
// Tutorial:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
#include <OneWire.h>
OneWire ds(3); // Connect your 1-wire device to pin 3
void setup(void) {
Serial.begin(9600);
discoverOneWireDevices();
}
void discoverOneWireDevices(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];
Serial.print("Looking for 1-Wire devices...\n\r");
while(ds.search(addr)) {
Serial.print("\n\rFound \'1-Wire\' device with address:\n\r");
for( i = 0; i < 8; i++) {
Serial.print("0x");
if (addr[i] < 16) {
Serial.print('0');
}
Serial.print(addr[i], HEX);
if (i < 7) {
Serial.print(", ");
}
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}
}
Serial.print("\n\r\n\rThat's it.\r\n");
ds.reset_search();
return;
}
void loop(void) {
// nothing to see here
}
Viel Glück