Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:flaschenkuehler:programmversion_0.6

Dies ist eine alte Version des Dokuments!


Flaschenkühler - Programmversion 0.6

Nach den Problemen mit den Thermistoren im ersten Langzeittest wurden diese durch die digitalen Temperatursensoren DS18B20 ersetzt.

Um dynamischen Speicher zu sparen, werden die Adressen der Temperatursensoren nicht beim Programmstart ausgelesen, sondern manuell zugewiesen. Der einzige Nachteil ist, dass die Sensoren nicht getauscht werden können, ohne die Adresse des getauschten Sensors manuell im Programmcode zu ändern.

Dafür werden die folgenden Programmzeilen gelöscht:

DeviceAddress environmentThermometer, coolerThermometer, cupbaseThermometer, cuptopThermometer;

if (!sensors.getAddress(environmentThermometer, 0)) Serial.println("Unable to find address for Device 0");
if (!sensors.getAddress(coolerThermometer, 1)) Serial.println("Unable to find address for Device 1");
if (!sensors.getAddress(cupbaseThermometer, 2)) Serial.println("Unable to find address for Device 2");
if (!sensors.getAddress(cuptopThermometer, 3)) Serial.println("Unable to find address for Device 3");

Und durch dies ersetzt:

DeviceAddress environmentThermometer = { 0x28, 0x7C, 0x49, 0x3B, 0x0A, 0x00, 0x00, 0x57 };
DeviceAddress coolerThermometer      = { 0x28, 0x2E, 0xE0, 0x39, 0x0A, 0x00, 0x00, 0xD0 };
DeviceAddress cupbaseThermometer     = { 0x28, 0x6B, 0x9F, 0x54, 0x0A, 0x00, 0x00, 0x41 };
DeviceAddress cuptopThermometer      = { 0x28, 0x0F, 0x13, 0x55, 0x0A, 0x00, 0x00, 0x3B };

Dadurch werden 2 % Programmspeicher und 13 % dynamischer Speicher eingespart.

Die digitalen Temperatursensoren dürfen nicht häufiger angefragt werden, als sie benötigen, um die Temperatur zu berechnen. Weil die Dauer der Berechnung von der eingestellten Sensorauflösung abhängig ist, wird die Dauer des Messintervalls auf Basis der Sensorauflösung berechnet:

intervalTempControl = 750/ (1 << (12-TEMPERATURE_PRECISION));

To Dos:

  • Die Variable für den Betriebsstundenzähler auf int umstellen. Es weicht, wenn volle Stunden gezählt werden, weil der Flaschenkühler in der Regel mehrere Stunden pro Tag läuft.
  • Im Expertenmodus wird die Temperatur des Becherranssensors nicht aktualisiert.
arduino/flaschenkuehler/programmversion_0.6.1526820688.txt.gz · Zuletzt geändert: 18.05.2023 12:16 (Externe Bearbeitung)