Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:flaschenkuehler

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
arduino:flaschenkuehler [05.11.2018 12:00]
Frickelpiet [Microcontroller]
arduino:flaschenkuehler [13.02.2021 07:09] (aktuell)
Frickelpiet ↷ Links angepasst weil Seiten im Wiki verschoben wurden
Zeile 20: Zeile 20:
   * Peltier-Element (TEC1-12706),​ 40 mm x 40 mm, 12 V, 4 Ampere (48 Watt)   * Peltier-Element (TEC1-12706),​ 40 mm x 40 mm, 12 V, 4 Ampere (48 Watt)
   * Arduino Nano   * Arduino Nano
-  * Digitale Temperatursensoren [[arduino:ds18b29|DS18B20]]+  * Digitale Temperatursensoren [[arduino:ds18b20|DS18B20]]
   * Kühlbecher aus Aluminium   * Kühlbecher aus Aluminium
   * Rahmen aus GFK und aus dem 3D-Drucker   * Rahmen aus GFK und aus dem 3D-Drucker
Zeile 53: Zeile 53:
 {{:​arduino:​flaschenkuehler:​beschriftung_hauptplatine.jpg?​100 |}} Das nebenstehende Foto (zum Vergrößern klicken) zeigt die erste Version der 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. {{:​arduino:​flaschenkuehler:​beschriftung_hauptplatine.jpg?​100 |}} Das nebenstehende Foto (zum Vergrößern klicken) zeigt die erste Version der 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.
  
-{{:​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:ds18b20|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 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. 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.
Zeile 82: Zeile 82:
 Während des ersten Langzeittests (bis [[arduino:​flaschenkuehler:​programmversion_0.5|Programmversion 0.5]]) wurden Thermistoren ([[http://​www.mouser.com/​ds/​2/​362/​semitec_atthermistor-371460.pdf|Datenblatt]]) verwendet, die über einen Spannungsteiler an jeweils einem analogen Eingang ausgelesen wurden. Eine sehr gute Anleitung für Einbindung von Thermistoren gibt es [[https://​learn.adafruit.com/​thermistor/​overview|hier]]. Nach etwa 400 Stunden haben einige der Thermistoren jedoch ihren Widerstand verändert und somit zunehmend falsche Messwerte geliefert. ​ Während des ersten Langzeittests (bis [[arduino:​flaschenkuehler:​programmversion_0.5|Programmversion 0.5]]) wurden Thermistoren ([[http://​www.mouser.com/​ds/​2/​362/​semitec_atthermistor-371460.pdf|Datenblatt]]) verwendet, die über einen Spannungsteiler an jeweils einem analogen Eingang ausgelesen wurden. Eine sehr gute Anleitung für Einbindung von Thermistoren gibt es [[https://​learn.adafruit.com/​thermistor/​overview|hier]]. Nach etwa 400 Stunden haben einige der Thermistoren jedoch ihren Widerstand verändert und somit zunehmend falsche Messwerte geliefert. ​
  
-Daher wurden die Thermistoren durch den digitalen Temperatursensor [[arduino:ds18b29|DS18B20]] ersetzt (ab [[arduino:​flaschenkuehler:​programmversion_0.6|Programmversion 0.6]]). Weil dadurch einige komplexe Berechnungen wegfallen, konnte die Verwendung des dynamischen Speichers verringert werden. Der Temperatursensor am Kühlkörper wurde an eine der vier Heatpipes verlegt, damit der Sensor nicht von dem kalten Becherboden gekühlt wird.+Daher wurden die Thermistoren durch den digitalen Temperatursensor [[arduino:ds18b20|DS18B20]] ersetzt (ab [[arduino:​flaschenkuehler:​programmversion_0.6|Programmversion 0.6]]). Weil dadurch einige komplexe Berechnungen wegfallen, konnte die Verwendung des dynamischen Speichers verringert werden. Der Temperatursensor am Kühlkörper wurde an eine der vier Heatpipes verlegt, damit der Sensor nicht von dem kalten Becherboden gekühlt wird.
 ==== Lüfterregelung ==== ==== Lüfterregelung ====
 {{:​arduino:​flaschenkuehler:​img_3162.jpg?​100 |}} 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 [[http://​www.analog.com/​en/​analog-dialogue/​articles/​how-to-control-fan-speed.html|dieser Webseite]] dargestellt. Wie dennoch das Tachosignal ausgelesen werden könnte wird auf [[http://​www.pcbheaven.com/​circuitpages/​PWM_3_Wires_Fan_Controller_with_RPM_feedback/​|dieser Webseite]] ​ beschrieben. Mir ist das aber zum einen zu umständlich und erscheint mir zum anderen auch keine "​saubere"​ Lösung zu sein. {{:​arduino:​flaschenkuehler:​img_3162.jpg?​100 |}} 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 [[http://​www.analog.com/​en/​analog-dialogue/​articles/​how-to-control-fan-speed.html|dieser Webseite]] dargestellt. Wie dennoch das Tachosignal ausgelesen werden könnte wird auf [[http://​www.pcbheaven.com/​circuitpages/​PWM_3_Wires_Fan_Controller_with_RPM_feedback/​|dieser Webseite]] ​ beschrieben. Mir ist das aber zum einen zu umständlich und erscheint mir zum anderen auch keine "​saubere"​ Lösung zu sein.
arduino/flaschenkuehler.txt · Zuletzt geändert: 13.02.2021 07:09 von Frickelpiet