Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:flaschenkuehler:programmversion_0.6

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
arduino:flaschenkuehler:programmversion_0.6 [18.05.2018 23:01] Frickelpietarduino:flaschenkuehler:programmversion_0.6 [18.05.2023 12:34] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Flaschenkühler - Programmversion 0.6 ====== ====== Flaschenkühler - Programmversion 0.6 ======
  
-Nach dem Problemen mit den Thermistoren im ersten Langzeittest wurden diese durch die digitalen Temperatursensoren DS18B20 ersetzt. +Nach den Problemen mit den Thermistoren im ersten Langzeittest wurden diese durch die digitalen Temperatursensoren [[arduino:ds18b20|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 Sensors manuell im Programmcode zu ändern.+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: Dafür werden die folgenden Programmzeilen gelöscht:
Zeile 31: Zeile 31:
 </code> </code>
  
 +Das EEPROM ist nur für eine begrenzte Anzahl von Schreibvorgängen ausgelegt. Um die Schreibvorgänge in das EEPROM zu reduzieren, werden alle mit den Tastern vorgenommenen Einstellungen mit einer Zeitverzögerung von 10 Sekunden im EEPROM gespeichert. Wenn nun also die Solltemperatur verändert wird, wird nicht nach dedem Tastendruck das EEPROM aktualisiert. (Bis [[arduino:flaschenkuehler:programmversion_0.5|Programmversion 0.5]] wurde das EEPROM nach jedem Tastendruck aktualisiert.
 +
 +Ebenfalls um das EEPROM zu schonen, werden die Betriebsstunden und das Serviceintervall nur noch stündlich im EEPROM aktualisiert.
 +
 +Damit die Anzeige der Isttemperatur nicht zwischen zwei Werten hin und her zappelt, wird aus den letzten neun Werten der Medianwert im Display angezeigt. Ich habe mich für den Medianwert und nicht für den Mittelwert entschieden, damit das Display möglichst selten aktualisiert werden muss. Die Anzeige des Mittelwerts würde dazu führen, dass das Display sehr viel häufiger aktualisiert werden muss. Diese genauere Anzeige würde jedoch keinen Mehrwert bieten, sondern nur dazu führen, dass die Anzeige unruhig erscheint. Die Berechnung des Medians aus neun Float-Werten kostet ca. 5 % des dynamischen Speichers, dessen Belegung von 72 % auf 77 % steigt. Ab einer Belegung von 75 % des dynamischen Speichers warnt die Arduino-IDE vor möglichen Instabilitäten. Daher muss beobachtet werden, ob es zu Instabilitäten kommt und ggf. der Median aus weniger Werten gebildet werden. 
 +
 +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.
 +  * <del>Die Setpoint des PID-Regelers muss schärfer eingestellt werden: 8°C unter der Umgebungstemperatur.</del>
 +  * Die Betriebsstundenanzeige sollte eine konstante Anzahl von Ziffern haben und dann mittig ausgerichtet werden.
 +  * Anstatt den Duty-Cycle des Peltierelements auf dem Display anzugeben, könnte die (berechnete) Kühlleistung ausgegeben werden. Da ich die nicht messen kann, müsste ich recherchieren, ob es für das Peltierelement eine entsprechende Tabelle gibt.
 +
 +Tags: #Arduino #OLED
  
arduino/flaschenkuehler/programmversion_0.6.1526677318.txt.gz · Zuletzt geändert: 18.05.2023 12:16 (Externe Bearbeitung)