Files
salatmaschine/temperature.h
T
2024-09-27 22:08:49 +02:00

57 lines
2.2 KiB
C

// ----------------------------------------------------------------------------------------------------------------
// Temperatur
#include <OneWire.h> // http://www.arduino.cc/playground/Learning/OneWire
#include <DallasTemperature.h> // http://milesburton.com/index.php?title=Dallas_Temperature_Control_Library DS18B20
// Define Pins
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS); // Einrichten des OneWire Bus um die Daten der Temperaturfühler abzurufen
DallasTemperature sensors(&oneWire); // Bindung der Sensoren an den OneWire Bus
DeviceAddress tempDeviceAddress; // Verzeichniss zum Speichern von Sensor Adressen
int numberOfDevices; // Anzahl der gefundenen Sensoren
float sensor[5][10] = { 0 };
float tempSensor[5] = { 0 };
void setupTemperature() {
// Temperatur
Serial.println("Abfrage mehrerer Dallas Temperatur Sensoren");
Serial.println("-------------------------------------------");
// Suche der Sensoren
Serial.println("Suche Temperatur Sensoren...");
sensors.begin();
sensors.setWaitForConversion(false);
numberOfDevices = sensors.getDeviceCount();
Serial.print("Habe ");
Serial.print(numberOfDevices, DEC);
Serial.println(" Sensoren gefunden.");
// Setzen der Genauigkeit 9,10,11 oder 12bit
for (int i = 0; i < numberOfDevices; i++) {
if (sensors.getAddress(tempDeviceAddress, i)) {
sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
Serial.print("Sensor ");
Serial.print(i);
Serial.print(" hat eine Genauigkeit von ");
Serial.println(sensors.getResolution(tempDeviceAddress), DEC);
sensors.requestTemperatures();
}
}
}
void getTemperature() {
for (int i = 0; i < numberOfDevices; i++) {
tempSensor[i] = sensors.getTempCByIndex(i);
Serial.println("Messe Temperatur ");
Serial.print("Sensor ");
Serial.print(i);
Serial.print(" in Celsius: ");
Serial.println(tempSensor[i]);
}
// Auslesen für den nächsten Zyklus. Der Sensor braucht genügend Zeit. Wenn er nur 85 anzeigt, reicht die Spannne zum Auslesen nicht.
sensors.requestTemperatures();
}