Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:flaschenkuehler

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
arduino:flaschenkuehler [06.07.2018 16:31] – [Zweiter Langzeittest] Frickelpietarduino:flaschenkuehler [05.11.2018 13:00] – [Microcontroller] Frickelpiet
Zeile 55: Zeile 55:
 {{:arduino:flaschenkuehler:hauptplatine.jpg?100 |}} Das Foto links zeigt die zweite Version der Hauptplatine. Die linke Seite der Platine ist identisch mit der ersten Version der Platine (siehe Foto oben). Auf der rechten Seite können nun vier digitale Temperatursensoren ([[arduino:ds18b29|DS18B20]]) angeschlossen werden. {{:arduino:flaschenkuehler:hauptplatine.jpg?100 |}} Das Foto links zeigt die zweite Version der Hauptplatine. Die linke Seite der Platine ist identisch mit der ersten Version der Platine (siehe Foto oben). Auf der rechten Seite können nun vier digitale Temperatursensoren ([[arduino:ds18b29|DS18B20]]) angeschlossen werden.
 ==== Microcontroller ==== ==== Microcontroller ====
-Für die Kontrolle des Flaschenkühlers fiel meine Wahl auf einen [[https://store.arduino.cc/arduino-nano|Arduino Nano]]. Der Arduino Nano ist kompakt, liefert an den digitalen Ausgängen 5 Volt, was für PWM-Regelung des Lüfters wichtig ist, und hat für die wesentlichen Funktionen genügend Programm- und Arbeitsspeicher: [[arduino:flaschenkuehler:programmversion_0.3|Programmversion 0.3]] benötigt etwa 70 % des Programmspeichers, enthält aber im Wesentlichen alle Funktionen der finalen Programmversion. Allein der dynamische Speicher ist etwas knapp: Die Arduino-IDE warnt ab einer Speicherbelegung von 75 % vor möglichen Instabilitäten; eine Auslastung, die mehrfach überschritten wurde. Auch reicht der dynamische Speicher nicht, um eine nach links scrollende grafische Anzeige der Temperaturmesswerte etc. zu realisieren, weil dafür pro Variable 128 Bytes in einem Array gespeichert werden müssten. In der speicheroptimierten [[arduino:flaschenkuehler:programmversion_0.5|Programmversion 0.5]] werden etwa 73 % des dynamischen Speichers verwendet.+Für die Kontrolle des Flaschenkühlers fiel meine Wahl auf einen [[https://store.arduino.cc/arduino-nano|Arduino Nano]]. Der Arduino Nano ist kompakt, liefert an den digitalen Ausgängen 5 Volt, was für PWM-Regelung des Lüfters und die Ansteuerung der MOSFETs wichtig ist, und hat für die wesentlichen Funktionen genügend Programm- und Arbeitsspeicher: [[arduino:flaschenkuehler:programmversion_0.3|Programmversion 0.3]] benötigt etwa 70 % des Programmspeichers, enthält aber im Wesentlichen alle Funktionen der finalen Programmversion. Allein der dynamische Speicher ist etwas knapp: Die Arduino-IDE warnt ab einer Speicherbelegung von 75 % vor möglichen Instabilitäten; eine Auslastung, die mehrfach überschritten wurde. Auch reicht der dynamische Speicher nicht, um eine nach links scrollende grafische Anzeige der Temperaturmesswerte etc. zu realisieren, weil dafür pro Variable 128 Bytes in einem Array gespeichert werden müssten. In der speicheroptimierten [[arduino:flaschenkuehler:programmversion_0.5|Programmversion 0.5]] werden etwa 73 % des dynamischen Speichers verwendet.
 ==== OLED-Display ==== ==== OLED-Display ====
 Der Falschenkühler hat ein OLED-Display, auf dem verschiedene Informationen angezeigt werden können. Verwendet wird das [[https://www.adafruit.com/product/1673|OLED-Display mit 1,27" Diagonale von Adafruit]]. Der Falschenkühler hat ein OLED-Display, auf dem verschiedene Informationen angezeigt werden können. Verwendet wird das [[https://www.adafruit.com/product/1673|OLED-Display mit 1,27" Diagonale von Adafruit]].
Zeile 100: Zeile 100:
 Eine noch elegantere Lösung wäre die Verwendung eines "buck step down converters", der die Spannung und den Strom mit einer maximalen Restwelligkeit von 10% glättet. Um insbesondere die Größe der notwendigen Spule klein zu halten, muss die PWM-Frequenz sehr hoch oder die Spule sehr groß sein.  Eine noch elegantere Lösung wäre die Verwendung eines "buck step down converters", der die Spannung und den Strom mit einer maximalen Restwelligkeit von 10% glättet. Um insbesondere die Größe der notwendigen Spule klein zu halten, muss die PWM-Frequenz sehr hoch oder die Spule sehr groß sein. 
  
-Die Induktivität und die Kapazität einer solchen Schaltung können mit [[ http://www.daycounter.com/Calculators/Switching-Converter-Calculator2.phtml|diesem Onlinerechner]] berechnet werden. Mit dem Rechner lässt sich sehr schön experimentieren. Es wird deutlich, dass bei einem Duty Cycle von 50% die Spule am größten sein muss. Außerdem wird deutlich, dass die PWM-Frequenz kritisch ist. Soll eine Induktivität von ca. 100 uH ausreichen, muss die Frequenz über 50 kHz liegen. Alternativ oder zusätzlich könnte ein Duty Cycle im Bereich zwischen 30 und 70 Prozent ausgespart werden: Der Rückfluss der Wärme ließe sich auch mit einen DC von unter 30% unterbinden, und eine Regelung der Kühlleistung wäre auch im Bereich zwischen 70 und 100 Prozent möglich. Ohne Einbußen bei der Auflösung hinzunehmen, kann ein Arduino mit einem 16 MHz-Prozessor so konfiguriert werden, dass eine PWM-Frequenz von ca. 60 kHz möglich ist. Bei dieser hohen Frequenz kann der von mir verwendete MOSFET allerdings nicht mehr direkt von dem Arduino angesteuert werden. Es müsste also entweder ein schnellerer MOSFET gefunden werden, oder die Ansteuerung optimiert werden. (Dafür reichen meine Elektronikkenntnisse allerdings – noch – nicht aus.)+Die Induktivität und die Kapazität einer solchen Schaltung können mit [[ http://www.daycounter.com/Calculators/Switching-Converter-Calculator2.phtml|diesem Onlinerechner]] berechnet werden. Mit dem Rechner lässt sich sehr schön experimentieren. Es wird deutlich, dass bei einem Duty Cycle von 50% die Spule am größten sein muss. Außerdem wird deutlich, dass die PWM-Frequenz kritisch ist. Soll eine Induktivität von ca. 100 uH ausreichen, muss die Frequenz über 50 kHz liegen. Alternativ oder zusätzlich könnte ein Duty Cycle im Bereich zwischen 30 und 70 Prozent ausgespart werden: Der Rückfluss der Wärme ließe sich auch mit einen DC von unter 30% unterbinden, und eine Regelung der Kühlleistung wäre auch im Bereich zwischen 70 und 100 Prozent möglich. Ohne Einbußen bei der Auflösung hinzunehmen, kann ein Arduino mit einem 16 MHz-Prozessor so konfiguriert werden, dass eine PWM-Frequenz von ca. 60 kHz möglich ist. Bei dieser hohen Frequenz kann der von mir verwendete MOSFET allerdings nicht mehr direkt von dem Arduino angesteuert werden. Es müsste also entweder ein schnellerer MOSFET gefunden werden, oder die Ansteuerung müsste optimiert werden. (Dafür reichen meine Elektronikkenntnisse allerdings – noch – nicht aus. Außerdem muss ein PNP-MOSFET vwewendet werden, die nicht mit 5 Volt angesteuert werden können. Es ist also - für mich - erst einmal zu kompliziert. Einen geeigneten fertigen Regler von der Stange habe ich nicht gefunden.)
  
 Links:  Links: 
Zeile 135: Zeile 135:
 Mit der neuen Isolierung werden am Becherboden - gemessen mit einem Küchenthermometer - unter minus 1°C gemessen. Der Temperaturfühler am Becherboden misst dann 2°C, der obere 3,5°C. Für 8°C (Temperatursensor am Becherboden) pendelt sich das Peltierelement bei einem duty cycle von 69% ein. Der Lüfter dreht dann bei einer Umgebungstemperatur von ca. 30°C mit 1150 U/min. Es wäre experimentell zu ermitteln, bei welchem Sollwert für den Kühlkörper der Sweetspot zwischen Lüfterdrehzahl und Effizienz des Peltierelements liegt. Generell hat die Korkisolierung keinen so großen Effekt, wie ich mir erhofft hatte. Immerhin entsteht nun am Becheräußeren kein Kondenswasser mehr. Außerdem hat sich die Zeit deutlich verkürzt, die der Flaschenkühler benötigt, um von Zimmertemperatur auf 8°C herunterzukühlen. Das dauert jetzt nur noch etwa 20 Minuten.  Mit der neuen Isolierung werden am Becherboden - gemessen mit einem Küchenthermometer - unter minus 1°C gemessen. Der Temperaturfühler am Becherboden misst dann 2°C, der obere 3,5°C. Für 8°C (Temperatursensor am Becherboden) pendelt sich das Peltierelement bei einem duty cycle von 69% ein. Der Lüfter dreht dann bei einer Umgebungstemperatur von ca. 30°C mit 1150 U/min. Es wäre experimentell zu ermitteln, bei welchem Sollwert für den Kühlkörper der Sweetspot zwischen Lüfterdrehzahl und Effizienz des Peltierelements liegt. Generell hat die Korkisolierung keinen so großen Effekt, wie ich mir erhofft hatte. Immerhin entsteht nun am Becheräußeren kein Kondenswasser mehr. Außerdem hat sich die Zeit deutlich verkürzt, die der Flaschenkühler benötigt, um von Zimmertemperatur auf 8°C herunterzukühlen. Das dauert jetzt nur noch etwa 20 Minuten. 
  
-Nach über 800 Betriebsstunden läuft der Flaschenkühler immer noch tadellos! +Update: Nach über 1000 Betriebsstunden läuft der Flaschenkühler immer noch tadellos! Auch bei hochsommerlichen Außen- (>35°C) und schwer zu ertragenden Innentemperaturen (> 28°C) erreicht der Flaschenkühler problemlos Temperaturen von 6,5°C, was bei diesen Temperaturen viel zu kalt ist. Aber er kann es. 
 + 
 +Update: Auch nach über 1500 Betriebsstunden läuft der Flaschenkühler noch zuverlässig. Das OLED-Display hat allerdings deutlich wahrnehmbar Leuchtkraft eingebüßt. 
  
 Tags: #Arduino #Flaschenkühler #Nano #OLED Tags: #Arduino #Flaschenkühler #Nano #OLED
arduino/flaschenkuehler.txt · Zuletzt geändert: 18.05.2023 12:15 von 127.0.0.1