Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:flaschenkuehler

Flaschenkühler

Mein neuestes Bastelprojekt ist ein Flaschenkühler. Der Flaschenkühler soll eine vorgekühlte Flasche auch im Sommer kühl halten können.

Die Funktionen des Flaschenkühlers:

  • Das Kühlgerät soll das Aufwärmen vorgekühlter Flaschen (mit bis zu 0,5 Liter Inhalt) verhindern. Es sollte eine Temperatur von 5°C gehalten werden können, niedrigere Temperaturen wären auch okay.
  • Die Solltemperatur kann über zwei Taster eingestellt werden.
  • Die eingestellte Solltemperatur wird im EEPROM gespeichert.
  • Die Soll- und Isttemperatur (und weitere Informationen im erweiterten bzw. grafischen Anzeigemodus) werden auf einem OLED-Display angezeigt werden.
  • Mit einem längeren Druck auf den oberen oder den unteren Tastern kann zwischen verschiedenen Anzeigemodi gewechselt werden.
  • Der ausgewählte Anzeigemodus wird im EEPROM gespeichert.
  • Es werden die Betriebsstunden gezählt und ebenfalls im EEPROM gespeichert.
  • Nach 100 Betriebsstunden empfiehlt der Flaschenkühler im Startbildschirm die Reinigung des Geräts.
  • Der Serviceintervallzähler kann mit einem schnellen Doppeldruck auf den oberen Taster zurückgesetzt werden.
  • Bei einer Lüfterfehlfunktion (d.h. der Lüfter sollte sich drehen, gibt aber kein Tachosignal aus) wird eine Warnung auf dem Display ausgegeben.
  • Abhängig von der eingestellten Solltemperatur arbeitet der Flaschenkühler, sobald die Solltemperatur erreicht ist, sehr leise. Aber auch bei voller Drehzahl des Lüfters ist die Geräuschentwicklung akzeptabel.

Mechanischer Aufbau

Der Flaschenkühler wird mechanisch zunächst einmal so aufgebaut, dass er funktioniert. Ein hübsches Gehäuse bekommt er erst dann, wenn alles vernünftig läuft.

Kühlung der heißen Seite

Zur Kühlung der heißen Seite kommt ein CPU-Kühler der Firma Titan (Titan ttc-nc25/HS) zum Einsatz. Dieser Kühler sollte keine Probleme haben, die entstehende Hitze abzuleiten und baut dennoch hinreichend kompakt. Der Kühlkörper wird von der 92mm-Version des Silent Wings 2 von BeQuiet! angeblasen.

Kühlung der Flasche

Die Kühlung der Flasche erfolgt durch einen Aluminiumbecher, an dem die kalte Seite des Peltier-Elements befestigt ist. Der Becher ist eine Einzelanfertigung nach meinen Vorgaben und wurde von der Firma Rapidfacture erledigt.1) Es passen Flaschen mit einem Durchmesser von bis zu 72 mm hinein.

Isolation des Kühlbechers

Bei den ersten Tests mit dem experimentell aufgebauten Flaschenkühler hat sich gezeigt, dass eine gute Isolierung der Außenseite des Kühlbechers sehr wichtig ist. Zum einen befinden sich an der Außenseite die Thermistoren Nr. 3. und Nr. 4, die, um exakt die Temperatur des Kühlbechers messen zu können, nicht von der anderen Seite erwärmt werden dürfen. Zum anderen erwärmt die Umgebungsluft den Becher so stark, dass das Peltier-Element nur bis zu einer gewissen Temperatur kompensieren kann. Schließlich muss die Entstehung von Kondensationswasser verhindert werden.

Sehr schön verarbeiten lässt sich einseitig selbstklebender Zellkautschuk. Schon eine nur 3 Millimeter dicke Schicht verhindert die Entstehung von Kondensationswasser. Allerdings fühlt sich die Außenseite der Zellkautschukschicht immer noch deutlich kühler an als die Umgebungstemteratur, das heißt, es geht weiterhin Kälte verloren. Daher muss die Schicht entweder dicker gewählt werden, oder es muss ein besserer Wärmeisolator verwendet werden. Einen guten Überblick über die Wärmeleitfähigkeit verschiedener Materialien gibt dieser Artikel bei Wikipedia.

  • ListenpunktZellkautschuk hat ungefähr eine Wärmeleitfähigkeit von 0,1 W/(m * K)2).
  • Expandiertes Polystrol (EPS) hat bereits eine Wärmeleitfähigkeit zwischen 0,032 und 0,040 W/(m * K), so dass die Isolierung nur halb so dick ausfallen müsste. Auch Kork läge etwa in diesem Bereich.

Elektrischer Aufbau

Das nebenstehende Foto (zum Vergrößern klicken) zeigt die Hauptplatine mit der Steckerbelegung. Der Arduino wird mit der USB-Buchse nach unten eingesteckt. Oben rechts befindet sich der Stecker, der die Hauptplatine mit Strom versorgt. Auf dem obersten Pin liegt das PWM-Signal für das Peltier-Element (D09). Der Stecker links daneben versorgt das OLED-Display mit 5 Volt. Darunter befinden sich die Anschlüsse für die Thermistoren. An AREF liegen 3,3 Volt vom Arduino an. Ganz links oben ist der vierpolige Stecker für den Lüfter. Die Minius-Leitung des Lüfters wird mit dem MOSFET (FQP30N06L) geschaltet. Darunter liegt der Stecker für die beiden Taster. An den 2- und 3-poligen Steckern in der Bildmitte wird das OLED-Display angeschlossen.

Microcontroller

Anforderungen an den Microcontroller:

  • kleiner Formfaktor
  • 5 Volt Ein- und Ausgänge (für PWM-Steuerung des Lüfters)
  • mindestens zwei analoge Eingänge (für die Thermistoren)
  • SPI-Interface (für OLED)
  • EEPROM (für Temperatureinstellung über Tasten)

Die Wahl fiel auf einen Arduino Nano, der alle Anforderungen erfüllt. Programmversion 0.3 benötigt etwa 70 % des Programmspeichers, enthält aber im Wesentlichen alle Funktionen der finalen Programmversion. Allein reicht der dynamische Speicher nicht, um eine nach links scrollende grafische Anzeige zu realisieren, weil dafür pro Variable 128 Bytes in einem Array gespeichert werden müssten.

OLED-Display

Der Falschenkühler hat ein OLED-Display, auf dem verschiedene Informationen angezeigt werden können. Verwendet wird das OLED-Display mit 1,27" Diagonale von Adafruit.

Das OLED-Display ist an den folgenden Pins angeschlossen:

Arduino Nano    Adafruit OLED Breakout Board
GND             GND (G)
5V              VIN (+)
D13             SCLK (CL)
D11             MOSI (SI)
D5              DC
D6              OLEDCS (OC) CS
D7              RST (R)

Da für SCLK und MOSI die Standard-Pins verwendet werden, müssen im Code nur die Pins DC, CS und RST definiert werden.

Bedienung über Taster

Die Bedienung des Flaschenkühlers erfolgt über zwei Taster. Mit einem Taster kann die Solltemperatur schrittweise nach oben eingestellt werden, mit dem anderen schrittweise verringert werden. Ein langer Druck ruft verschiedene Anzeigemodi auf („einfach“, „erweitert“ und „grafisch“).

Temperaturmessung

Es sind insgesamt vier Thermistoren verbaut. Thermistor Nr. 1 misst an der Rückseite des Geräts die Umgebungstemperatur. Der Thermistor Nr. 2 ist auf dem Kühlkörper direkt neben dem Peltier-Element angebracht. Die Thermistoren Nr. 3 und Nr. 4 sind an der Seite des Kühlbechers angebracht (siehe Foto links). Thermistor Nr. 3 ist im unteren Bereich befestigt, Thermistor Nr. 4 unterhalb der oberen Öffnung.

Lüfterregelung

Der Kühlkörper wird von einem PC-Lüfter angeblasen. Verbaut wird die 92mm-Version des Silent Wings 2 von BeQuiet! mit einem 4-Pin-Anschluss. Bei PC-Lüftern mit einem 4-Pin-Anschluss liegt die Betriebsspannung kontinuierlich an. Der dritte Pin gibt ein Tachosignal aus und über den vierten Pin wird die Drehzahl des Lüfters mit einem PWM-Signal gesteuert. PC-Lüfter mit einem 3-Pin-Anschluss haben den Nachteil, dass das Tachosignal nur sehr umständlich ausgelesen werden kann, wenn die Drehzahl per Pulsweitenmodulation der Eingangsspannung gesteuert werden soll, weil auch der Hall-Sensor an dem pulsweitenmodulierten Signal anliegt. Das Problem wird sehr anschaulich auf dieser Webseite dargestellt. Wie dennoch das Tachosignal ausgelesen werden könnte wird auf dieser Webseite beschrieben. Mir ist das aber zum einen zu umständlich und erscheint mir zum anderen auch keine „saubere“ Lösung zu sein.

Der Silent Wings 2 von BeQuiet! ist ein PC-Lüfter des Typs B.3) Das heißt, dass der Lüfter unterhalb eines definierten Duty Cycles mit seiner Minimaldrehzahl läuft. Um den Lüfter auch ganz ausschalten zu können, wird ein MOSFET verbaut.4) Das PWM-Signal muss eine Frequenz von ungefähr 25 kHz haben. Die PWM-Frequenz des Arduino muss entsprechend angepasst werden, was zum Beispiel mit der PWM-Bibliothek möglich ist.

Ansteuerung des Peltier-Elements

Bie 12 Volt fließen um die 4 Ampere durch das Peltier-Element.

ACHTUNG: das Folgende ist sehr vorläufig: Sobald der mechanische Aufbau eine angemessene Kühlung der heißen Seite des Peltier-Elements erlaubt, wird experimentiert.

Die einfachste Möglichkeit, das Peltier-Element zu schalten, wäre eine Zweipunktregelung: Dabei würde das Peltier-Element eingeschaltet, bis die Soll-Temperatur erreicht ist und dann ausgeschaltet. Ab einer definierten Abweichung der Ist- von der Soll-Temperatur würde das Element wieder eingeschaltet.

Der Nachteil einer Zweipunktregelung ist die geringe Effizienz, weil die Wärme im ausgeschalteten Zustand zurück zur kalten Seite fließt. Diese Wärme muss jedes Mal, wenn das Element wieder eingeschaltet wird, zunächst wieder entfernt werden. Dadurch kommt es außerdem zu thermischen Schwankungen, was sich negativ auf die Lebensdauer auswirken.

Daher fiel die Entscheidung für eine Ansteuerung per Pulswseitenmodulation. Dadurch muss das Peltier-Element nie vollständig ausgeschaltet, sondern kann in der Leistung soweit reduziert werden, dass die Temperatur an der kalten Seite konstant gehalten wird. Da das Element nie ausgeschaltet werden würde, würde der Wärmetransport nicht unterbrochen und die thermischen Spannungen würden minimiert.

Eine elektrische Schaltung (im Grunde genommen ein buch step down converter) glättet die Spannung und den Strom. Das Ziel ist eine maximale Restwelligkeit von 10%. Um insbesondere die Größe der notwendigen Spule klein zu halten, muss die PWM-Frequenz deutlich erhöht werden.

Folgende Probleme müssen gelöst werden:

  • Problem Nr. 1: Die PWM-Frequenz des Arduino müsste angehoben werden.
  • Problem Nr. 2: Ich habe keine Ahnung, wie groß die Spule dimensioniert sein müsste.
  • Problem Nr. 3: Ob die Ansteuerung und die Schaltung korrekt funktionieren, könnte nur mit einem Oszilloskop überprüft werden, welches ich nicht besitze.
  • Zu Problem Nr. 2: Im Grunde genommen wird ein Buck Step Down Converter benötigt. Die Induktivität und die Kapazität einer Solchen Schaltung können mit diesem Onlinerechner berechnet werden. Mit dem Rechner lässt sich auch sehr schön experimentieren. Es wird deutlich, dass bei einem Duty Cycle von 50% die Spule am größten sein muss. Das bedeutet, dass dieser Duty Cycle im Programmcode ausgespart werden könnte. Der Rückfluss der Wärme ließe sich ja vermutlich auch mit einen DC von 20% unterbinden, und wenn gekühlt werden muss, könnte das auch mit einem DC von 100% erfolgen. 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. Das führt und zu Problem Nr. 1.
  • 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.

http://electronics-diy.com/electronic_schematic.php?id=1012

https://www.adafruit.com/product/1794

Stromversorgung

Das Peltier-Element, der PC-Lüfter und der Arduino werden mit 12 Volt betrieben. Um die Elektronik vor Verpolung und Überspannung zu schützen, wird der Pololu Step-Down Voltage Regulator D24V150F12 verbaut. Der D24V150F12 kann bis zu 15 Ampere zur Verfügung stellen, so dass er durch das Peltier-Element nicht zu irritieren sein sollte. Die Betriebsspannung des Flaschenkühlers liegt daher zwischen 15 und 35 Volt.

Buchse: https://www.dcjack.de/eshop/product_info.php?products_id=4022

Netzteil: Dell Precision M6700, Netzteil, 19.5V, 12.3A, 240W

Programmierung

Die Programmierung des Arduinos erfolgt Schritt für Schritt. Jede Programmversion fügt mindestens eine Funktion hinzu. Welche Funktionen das sind, welche Probleme zu lösen waren und wie sie gelöst wurden, wird jeweils auf einer eigenen Wiki-Seite erklärt.

Tests

Das Peltier-Element kann den Becher etwa innerhalb einer halben Stunde auf 3 °C herunterkühlen. Gemessen wird Thermistor Nr. 4, der sich am oberen Rand des Kühlbechers befindet. Nachdem die Temperatur erreicht ist, pendelt sich die Leistung auf ca. 80% ein. Der Lüfter läuft dann ca. mit 1200 bis 1300 U/min.

Die Temperatur ist allerdings sehr ungleichmäßig verteilt. Wird eine Temperatur von 5 °C eingestellt, messe ich in einer Testflasche in acht bis neun cm Höhe (tiefer komme ich mit dem Thermometer nicht) etwa vier bis fünf °C, in 15 cm Höhe ist das Wasser nur noch 12 bis 13 °C kalt.

Tags: Arduino Flaschenkühler Nano OLED

1) Ich kann Rapidfacture besten Gewissens empfehlen: Der Becher ist maßhaltig, die Lieferzeit wurde auf den Tag genau eingehalten und der Preis lag etwa auf Höhe des Angebots eines Konkurrenten, der aber eine mehr als doppelt so lange Lieferzeit gehabt hätte.
3) Siehe dazu die Spezifikationen in diesem PDF.
4) Der einzige Nachteil gegenüber einem Lüfter des Typs A ist, dass das Tachosignal bei ausgeschaltetem Lüfter nicht verfügbar ist. Es kann also nicht das Auslaufen des Lüfters nach einem Stopp gemessen werden.
arduino/flaschenkuehler.txt · Zuletzt geändert: 22.08.2017 17:39 von Frickelpiet