Peltierelemente und MicroPython - Teil 3: Der Flaschenkühler oder Minustemperaturen aus dem PC-Netzteil - AZ-Delivery

In der ersten Folge dieser Reihe hatten wir uns ein einstellbares Netzteil für 8A Stromlast gebaut. Manche Leser werden sich gefragt haben, wofür man im Zusammenhang mit Mikrocontrollerschaltungen solche Stromstärken benötigt. Die Stromfresser sind auch nicht die Controller, sondern die Teile, die wir heute für unseren Flaschenkühler einsetzen werden, die Peltierelemente. Bei 12V Versorgungsspannung fließt durch ein einziges Element bereits ein Strom von 4A. Unser Netzteil kann also zwei davon parallel versorgen. Der größere Bruder des DC-DC-Buckconverters kann mit 12A Belastbarkeit sogar drei Einheiten versorgen. Wie das im Einzelnen funktioniert und was man dabei beachten muss, das verrate ich Ihnen im heutigen Beitrag. Damit willkommen zum Teil 3 der Peltierreihe.

Abbildung 1: Thermobox

Abbildung 1: Thermobox

Wir beschäftigen uns heute mit folgenden wichtigen Punkten zum Thema Kühlung:

  1. Wie arbeitet ein thermoelektrischer Wandler als Wärmeschaufler?
  2. Wie baut man eine effiziente Wärmeschleuse?
  3. Wie kann man eine preiswerte und stabile Kühlbox bauen?
  4. Wie kann der ESP32 Spannungen und Stromstärken bis 12A steuern und regeln?

Die Materialliste enthält nur wenige größere Teile, das Thermoelement, den DC-DC-Converter, sowie einen ESP32 und darüber hinaus einiges an Kleinteilen.

1

Thermoelektrischer Wandler 40 x 40 mm

1

DC-DC-Buck-Converter 8A oder
DC-DC-Buck-Converter 12A

1

ESP32

1

LED weiß 5mm

1

LDR 5mm

1

20-25mm Messingrohr 6mmØ und 0,5mm Wandstärke

 

Dichtmasse

 

Schrumpfschlauch Stücke

1

Widerstand 1kΩ

1

Widerstand 10kΩ

1

NPN Standard Transistor zum Beispiel BC550

2

Zweipolige Stiftleiste

1

LED rot

1

Widerstand 560Ω

1

zweipolige Buchsenleiste

1

Breadboard

 

diverse Jumperkabel

 

Für den Thermokopf

2

Rippen-Kühlkörper

2

dazu passende PC-Lüfter

4

Kunststoffwinkel 10 x 10 x 30mm

 

Wärmeleitpaste

evtl.

einige Aluplatten Abschnitte (siehe Text)

 

wasserfest verleimte Mehrschichtplatte

1

Stück Styroporplatte 126 x 126 x 10

 

diverse Schrauben, Muttern,

 

Zuleitungskabel für das Peltier-Element mit 1mm²

 

Für den Kühlbehälter

1

Styroporplatte 30mm

 

Paketklebeband


Am besten wird es sein, wenn Sie sich die Kapitel 2 und 3 dieser Anleitung erst einmal durchlesen, bevor Sie das Material für die Box und den Thermokopf besorgen. Die Möglichkeiten für die Umsetzung sind so vielfältig, dass ich unmöglich alle ansprechen kann. Da sind Ihre Phantasie und der Fundus Ihres Bastelkellers gefragt. Verstehen Sie daher die folgende Beschreibung nur als Anregung für eigene Ansätze.

1. Etwas Theorie zum Aufwärmen

In der Folge 2 hatten wir für den Wärmestrommesser den thermoelektrischen Effekt (aka Seebeck-Effekt) genutzt. Der besteht darin, dass an den Kontaktstellen zweier unterschiedlicher Metalle eine Wanderung von Elektronen stattfindet. Wenn man die Kontaktstellen erhitzt oder abkühlt, führt das wegen der unterschiedlichen Geschwindigkeit der Elektronen an den Kontaktstellen zu einer elektrischen Spannung an der Stelle, wo einer der beiden Leiter aufgetrennt wird. Weil das Element selbst als Spannungsquelle wirkt, ist die technische Stromrichtung innerhalb des Elements vom Minus- zum Pluspol.

Abbildung 2: Seebeck-Effekt

Abbildung 2: Seebeck-Effekt

Vertauscht man Ursache und Wirkung, dann ergibt sich daraus der Peltier-Effekt. Das heißt, dass ein Stromfluss durch das Element eine Temperaturdifferenz an den Kontaktstellen zur Folge hat. Bei gleicher Stromrichtung kühlt diejenige Kontaktstelle ab, die beim Seebeck-Effekt erhitzt werden müsste.

Abbildung 3: Peltier-Effekt

Abbildung 3: Peltier-Effekt

Das funktioniert im Prinzip auch mit Eisen und Kupfer. Jedoch wird der Effekt, ähnlich wie beim Seebeck-Effekt, erheblich gesteigert, wenn man anstelle der Metalle Halbleitermaterial verwendet. Bei unseren Peltierelementen ist das positiv und negativ dotiertes Wismut-Tellurid. 127 kleine Quaderchen aus diesem Material sind in Serie geschaltet und zwischen zwei Keramikplatten angereiht. Die PN-Übergänge liegen damit parallel an der einen Platte (oben), die NP-Kontakte an der anderen. Dadurch addieren sich die Auswirkungen des Peltier-Effekts, die eine Seite kühlt ab, während die andere erhitzt wird. Das führt uns auch gleich zu Punkt 2 der Vorüberlegungen.

Abbildung 4: Peltier-Element schematisch

Abbildung 4: Peltier-Element schematisch

2. Wie baut man eine effektive Wärmeschleuse?

Der Zweck unserer Anwendung soll die Kühlung sein. Kühlen heißt einfach, dass einem Körper innere Energie entzogen werden muss. Diese Energie, zusammen mit der nicht unerheblichen Menge an aufzubringender elektrischer Arbeit, wird an der heißen Seite des Elements angeliefert. Damit unser Wandler nicht zu hohe Temperaturen erreicht, das Lot der Kontaktstellen schmilzt bei 125°C, brauchen wir eine effektive Wärmeabfuhr, die wir durch den Einsatz eines PC-Kühlkörpers mit Lüfter sicherstellen. Denn es gilt ferner ein einfaches Prinzip. Je niedriger die Temperatur des Abwärmetauschers ist, desto tiefere Temperaturen erreichen wir im Kühlraum oder anders ausgedrückt, desto weniger elektrische Energie müssen wir für die gleiche Kühlraumtemperatur aufwenden. Abbildung 5 zeigt einen möglichen Aufbau, bei dem der warmseitige Lüfter noch fehlt. Das Thermoelement liegt zwischen zwei 4 und 6 mm dicken Aluplatten. Achten Sie bitte auf möglichst plane Flächen, damit, besonders auf der Warmseite, ein guter thermischer Kontakt zwischen Peltier-Element und Metall hergestellt werden kann. Auch der Einsatz von Wärmeleitpaste ist in diesem Zusammenhang eine sehr gute Idee.

Abbildung 5: Anordnung der Teile

Abbildung 5: Anordnung der Teile

Wie und woraus Sie die Einheit aufbauen, hängt im Wesentlichen davon ab, was Sie in Ihrer Bastelkiste oder beim Schrotthändler finden. Eines ist aber wichtig. Die Keramikplatten des Peltier-Elements müssen von den Metallkörpern mindestens abgedeckt, besser leicht überdeckt werden. Das war bei meinem Aufbau der Grund, weshalb ich auf den Kühlkörper noch eine Aluplatte geschraubt habe. Die Fläche des Kühlkörpers war nämlich um gut 3mm zu schmal.

Damit das Peltier-Element beim Zusammenbau nicht verrutschen kann, wird es durch die vier Kunststoffwinkel in Position gehalten. Aluwinkel sind ungeeignet, weil sie Wärmebrücken darstellen. Genau hier haben wir ja die größten Temperaturunterschiede bei unserem Aufbau. Ach ja, und der Unterschied zwischen Warm- und Kaltseite darf, ungeachtet der Höchsttemperatur von 125 °C, maximal 65°C betragen, das sagt das Datenblatt des Elements.

Was für die Warmseite gilt, ist auch für die Kaltseite von Bedeutung. Damit die Wärmeenergie im Kühlbehälter möglichst effektiv eingesammelt werden kann, ist auch hier ein Kühlkörper mit einem Lüfter vorgesehen.

Abbildung 6: Thermokopf komplett (ohne Lüfter)

Abbildung 6: Thermokopf komplett (ohne Lüfter)

Den gesamten Wärmetauscherkopf, noch ohne Lüfter, zeigt Abbildung 6. Die einzelnen Schichten sind in Abbildung 7 schematisch dargestellt. Wegen der Vielzahl von Kühlkörpern und Lüftern wird Ihr Ergebnis sehr wahrscheinlich anders aussehen. Wichtig sind in allen Fällen nur drei Dinge:

  • Gut wärmeleitende Übergänge zwischen den Schichten im Wärmestrom
  • Wenigstens 1cm dicke Isolierung zwischen den Wärmetauschern der Warm- und Kaltseite
  • Ausreichend dimensionierte Kühlung auf der Warmseite

Abbildung 7: Lüfter Kaltseite

Abbildung 7: Lüfter Kaltseite

Hier können Sie sich das Archiv aller Werkzeichnungen des Thermokopfs herunterladen. Darin enthalten sind 6 Seiten DIN A4, die den Werdegang im Maßstab 1:1 darstellen.

Für den Einbau des Peltier-Elements ist die Richtung des Wärmetransports wichtig. Wenn Sie das rote Kabel für ein paar Sekunden an den Pluspol und das schwarze an den Minuspol einer 5V-Quelle legen, die mindestens 2 A liefern kann, werden Sie feststellen, dass die bedruckte Seite kalt wird. Die andere Keramikfläche wird zunehmend wärmer. Dehnen Sie das Experiment nicht zu lange aus, Sie wissen ja, zu hohe Temperaturen schaden dem Element. Welche Fläche die Warmseite ist, hat Ihnen das Experiment verraten. Diese Seite gehört an den großen Kühlkörper.

3. Wie kann man eine preiswerte und stabile Kühlbox bauen?

Damit die Box außerdem leicht ist, sowie erschwinglich und einfach zu bauen… nehmen wir eine 30-er Styroporplatte und schneiden oder sägen diese in vier 17 cm breite Streifen. Jeden der Streifen versehen wir mit Aussparungen, wie es in der Abbildung 8 zu ersehen ist. Am oberen Ende wird eine Stufe herausgetrennt, damit der Thermokopf bis zur Trägerplatte im fertigen Behälter versenkt werden kann. Aus dem Rest der Styroporplatte schneiden wir ein Quadrat von 11 cm Kantenlänge. Es passt genau zwischen die Seitenteile und fixiert diese, wenn wir sie mit dem Paketklebestreifen fest zusammenzurren. Es sollten möglichst nirgends Lücken zwischen den Platten bleiben. Die äußere Bodenplatte mit 17 x 17 cm wird mehrfach mit Klebestreifen an den Seitenflächen fixiert, und dann sind wir auch schon fertig. Der Innenraum mit 11 x 11 x 47 cm kann somit 2L-Kunststoffflaschen bis 11 cm Durchmesser aufnehmen.

Abbildung 8: Thermobox Schnittmuster

Abbildung 8: Thermobox Schnittmuster

4. Wie kann der ESP32 Spannungen und Stromstärken bis 12A steuern und regeln?

Die Kühlleistung hängt wesentlich von zwei Faktoren ab. Der eine ist die Temperatur des Wärmetauschers auf der Warmseite und der zweite die Stromstärke durch das Peltier-Element. Letztere hängt wiederum von der anliegenden Spannung ab, denn der Innenwiderstand des Peltier-Elements ist, grob gesehen, eine Konstante. Somit gilt nach der Widerstandsformel I = U / R.

Wenn wir die Temperatur im Kühlraum auf einem bestimmten Level halten wollen, müssen wir nur genau die Wärmemenge heraussaugen, die durch die Wandung eindringt. Wenn wir in einem anderen Fall auch noch die Wärmemenge entfernen wollen, die im Getränk und in der Flasche steckt, braucht es natürlich einen bedeutend höheren Einsatz an elektrischer Energie.

Eine Regelung kann nun einfach darin bestehen, den Strom durch das Peltier-Element in gewissen zeitlichen Abständen ein- und auszuschalten. Man kann aber auch die Stromstärke so einstellen (lassen), dass sich eine konstante Temperatur ergibt, oder im zweiten Fall zunächst auf volle Power stellen und nach Erreichen der Soll-Temperatur zurückfahren. Ich habe die interessantere zweite Lösung gewählt.

Aber wie kann ein ESP32 Spannungen bis 16 V und Stromstärken bis 12 A beherrschen? Das eine Hilfsmittel ist ein DC-DC-Step-Down-Converter (aka Buck-Converter), der kann sehr gut Spannungen regeln, die man über ein Trimmpoti vorgeben kann. - Ach ja, freilich - und der ESP32 dreht dann am Poti oder wie? Nein, muss er ja gar nicht. Er kann aber die Helligkeit einer LED über PWM-Impulse steuern, … die ihrerseits einen lichtempfindlichen Widerstand (LDR Light Dependent Resistor) anstrahlt, … der parallel zum Trimmpoti auf der Reglerplatine geschaltet wird.

Abbildung 9: Buck-Converter Schaltplan

Abbildung 9: Buck-Converter Schaltplan

Wir stellen das Poti an den rechten Anschlag und drehen dann so weit zurück, dass die Spannung bei voll abgedunkeltem LDR gerade eben zu sinken beginnt (Umax), beziehungsweise den maximal zulässigen Wert von 16V erreicht. Dann können wir über das Verhältnis von Impulslänge zu Periodendauer des PWM-Signals (aka Duty-Cycle oder Tastverhältnis) die Spannung am Ausgang des Reglers zwischen ca. 3V und Umax steuern – leider nicht linear. In der nächsten Folge werden wir dem ESP32 auch noch beibringen, Stromstärken zu messen und dann sind wir in der Lage, über die Spannungssteuerung auch Stromstärken zu regeln. Der Controller wird dadurch ein richtiger Allrounder. Wie man das Problem mit der Linearität in den Griff bekommt, verrate ich auch in der nächsten Folge.

LDR und die weiße LED bilden zusammen einen Optokoppler der Marke Eigenbau. Um Fremdlicht abzuschirmen, kommen die beiden Bauteile in ein Stück 6mm-Messingrohr. Durch die Wandstärke von 0,5mm ergibt sich eine lichte Weite von 5mm. Von der LED feilen wir den dickeren Rand ab, damit sie ganz in das Röhrchen passt, der LDR lässt sich von vornherein ohne Probleme versenken. An die Anschlüsse beider Bauteile löten wir kurze Kabelstücke und schieben zur Isolierung Schrumpfschlauchstücke darüber. Dann verschließen wir die Öffnungen mit Knetmasse und bestücken die Kabelenden mit je einer zweipoligen Stiftleiste.

Abbildung 10: Spezieller Optokoppler

Abbildung 10: Spezieller Optokoppler

Der LDR weist einige Eigenschaften auf, die sehr nützlich für uns sind. Die Ansprechzeit liegt bei 1 bis 3 ms. Das "verschmiert" die Impulse des PWM-Signals zu einem glatten Widerstandswert, wenn die Frequenz größer als 1000Hz ist. Der Hellwiderstand liegt bei 200 Ohm, der Dunkelwiderstand über 2 MΩ. Leider kann der Bereich dazwischen aber aus folgenden Gründen nicht ganz genutzt werden.

Abbildung 11: LDR-Widerstand gegen PWM-Duty-Cycle

Abbildung 11: LDR-Widerstand gegen PWM-Duty-Cycle

Der Widerstand des LDR nimmt zwar linear mit der Beleuchtungsstärke ab, aber Letztere hängt nicht linear mit dem Dutycycle des PWM-Signals zusammen. Das bestätigt eine Versuchsreihe, deren Ergebnis in Abbildung 11 zu sehen ist. Um den rasanten Abfall der Kennlinie bei niedrigen Tastverhältnissen zu bremsen, habe ich den Vorwiderstand der LED von 560 Ohm auf 10 kΩ erhöht. Dadurch nimmt die Beleuchtungsstärke bei niedrigen Prozentwerten nicht so schnell zu, die Kurve wird flacher. Weniger Beleuchtungsstärke führt aber am Ende der Skala auch zu einem höheren Restwiderstand beim LDR, weil jetzt weniger Licht ankommt.

Die Berechnung des Widerstands der Parallelschaltung aus R2 und dem LDR macht die Sache nicht weniger komplex. Somit geht die Gleichung der Potenzfunktion, welcher der Trendlinie folgt, auch in den Zusammenhang zwischen Ausgangsspannung und Dutycycle ein. Und bei 100% Dutycycle ergibt sich durch den höheren LDR-Wert eine Minimalspannung von ca. 3V. Für diese Anwendung können wir damit jedoch gut leben.

Abbildung 12: Ausgangsspannung gegen Dutycycle

Abbildung 12: Ausgangsspannung gegen Dutycycle

Die Gleichung der Trendlinie für die Ausgangsspannung ist eine gebrochen rationale Potenzfunktion. Wir werden diese Erkenntnis in der nächsten Folge in das Steuerprogramm für den ESP32 mit einbauen.

Abbildung 13: Gleichung der Trendlinie

Abbildung 13: Gleichung der Trendlinie

Natürlich hängen die Parameter, Faktor und Exponent in der Gleichung, von den individuellen Gegebenheiten des Aufbaus des Optokopplers ab. Deshalb werden wir uns gleich noch ein Programm entwickeln, mit dessen Hilfe wir die entsprechende Kennlinie aufnehmen können. Vorher muss aber die Schaltung auf dem Breadboard entstehen, sonst gibt es nichts zu messen. Die Stellen, an denen Drahtstücke zum LDR an die Platine angelötet werden müssen, sind in der Abbildung gelb gekennzeichnet.

Abbildung 14: Regler 8A - Schaltung

Abbildung 14: Regler 8A - Schaltung

Jetzt sind wir bereit, die Daten für die Kennlinie zu erfassen. Das machen wir im Leerlauf, das heißt, dass wir das Peltier-Element im Thermokopf noch nicht anschließen.

Das Programm reglertest.py, das wir dazu brauchen, ist sehr einfach gestrickt. Wir importieren ein paar Klassen, erzeugen ein Pin-Objekt für die Flash-Taste und einen Ausgangspin für eine LED. Die weiter unten definierte Funktion blink() erlaubt uns auf einfache Weise, Blinksignale für Statusmeldungen zu programmieren. Wenn die LED an der Plusschiene liegt und vom Pin gegen Masse gezogen wird, um zu leuchten, muss der Parameter inverted auf True gesetzt werden. Der Defaultwert False setzt voraus, dass die LED auf GND-Pegel liegt und durch einen HIGH-Pegel am Pin eingeschaltet wird.

 # thermobox.py
 # Author: J. Grzesina
 # Rev: 1.0
 # Stand: 2021-08-01
 # *********************************************************
 from machine import Pin, I2C, ADC, Timer,PWM
 from time import sleep
 import os,sys
 
 taste=Pin(0,Pin.IN,Pin.PULL_UP)
 blinkLed=Pin(2,Pin.OUT)
 
 # Pintranslator fuer ESP8266-Boards
 # LUA-Pins     D0 D1 D2 D3 D4 D5 D6 D7 D8
 # ESP8266 Pins 16 5 4 0 2 14 12 13 15
 #                 SC SD
 
 pwmPin=15              # PWM-Pin zur Spannungssteuerung
 pwm=PWM(Pin(pwmPin))
 pwm.freq(10000)        # PWM-Frequenz
 pwm.duty(1023)         # volles Rohr für minimale Spannung
 
 # ********************************************************
 # Funktionen
 # ********************************************************
 
 
 def setDuty(d):
     pwm.duty(d)
 
 
 def blink(pulse,wait,inverted=False):
     if inverted:
         blinkLed.off()
         sleep(pulse)
         blinkLed.on()
         sleep(wait)
     else:
         blinkLed.on()
         sleep(pulse)
         blinkLed.off()
         sleep(wait)
         
 
 while True:
     r=input("Dutycycle %:")
     r=int(float(r)/100*1023)
     setDuty(r)
     print(r)
     if taste.value()==0:
         print("Mit Flashtaste abgebrochen")
         sys.exit()
     blink(0.1,0.9, inverted=True)
     #sleep(1)

Einer der Kernpunkte dieses Beispielprogramms ist die Definition und Einrichtung des PWM-Pins. Beim ESP32 sind alle Ausgangspins auch PWM-tauglich. Die PWM-Frequenz kann bis 40MHz betragen. Das Tastverhältnis wird durch einen Wert zwischen 0 und 1023 angegeben, also nicht in Prozent.

 

 pwmPin=15 # PWM-Pin zur Spannungssteuerung
 pwm=PWM(Pin(pwmPin))
 pwm.freq(10000) # PWM-Frequenz
 pwm.duty(1023) # volles Rohr für minimale Spannung

 

Der XL4016 auf dem Reglerboard stellt die Ausgangsspannung Ua stets so ein, dass die Spannung vom Spannungsteiler aus R2 und R1 am Feedback-Eingang FB 1,25 V beträgt. Die minimale Spannung ergibt sich dann, wenn die Parallelschaltung von LDR und R2 den niedrigsten Wert erreicht. Weil R2 nicht mehr verändert wird, ist das bei maximaler Helligkeit der LED der Fall und somit bei 100% Tastverhältnis. Weil der Parameterwert aber aus dem Bereich 0 bis 1023 zu wählen ist, müssen die Prozentwerte nach der Eingabe umgerechnet werden. Das geschieht in der Endlosschleife, die bei gedrückter Flash-Taste nach einer Eingabe verlassen werden kann.

 

 r=input("Dutycycle %:")
 r=int(float(r)/100*1023)
 setDuty(r)

 

Jetzt können wir nach Eingabe verschiedener Prozentwerte die jeweils resultierende Ausgangsspannung mit einem Digitalmultimeter messen und zusammen in eine Tabelle eintragen. Die grafische Auswertung mit LibreOffice Calc liefert uns schließlich die gewünschte Formel mit den Parametern.

Mit dem gleichen Programm können wir natürlich auch unseren Thermokopf testen. Damit das Peltier-Element nicht überhitzt, nehmen wir auch gleichzeitig den Lüfter auf der Warmseite in Betrieb. Er wird direkt an 12V angeschlossen, damit er auch stets richtig durchstarten kann, egal welche Spannung am Peltier-Element liegt.

Abbildung 15: Regler 8A - Schaltung mit Lüfter

Abbildung 15: Regler 8A - Schaltung mit Lüfter

Mit meinem Aufbau konnte ich in ca. 5 bis 6 Minuten am Kühlkörper der Kaltseite eine Temperatur von -6°C feststellen, während der warmseitige Kühlkörper etwa Handwärme erreichte und hielt.

In der nächsten Folge werden wir ein MicroPython-Programm für den ESP32 entwickeln, wodurch er die Versorgung von bis zu drei der heute vorgestellten Kühleinheiten übernehmen kann. Für drei Einheiten brauchen wir dann allerdings einen leistungsfähigeren Buck-Converter, der bis zu 12 A liefern kann.

Bis dahin wünsche ich viel Freude beim Aufbau und Test der Kühlbox.

Abbildung 16: Thermokopf komplett

Abbildung 16: Thermokopf komplett

Esp-32Projekte für fortgeschrittene

1 comment

Ulrich Kafka

Ulrich Kafka

Beschreibung SEEEHHR GUT
Sehr geehrter Herr Grzesina,
hiermit möchte ich Ihnen mein grosses Lob und Glückwunsch für die Beschreibung aussprechen!!!
Ich finde sie sehr gut!!
Allerdings hätte ich das mit einem OP und KTY10-62 gelöst. Maximal mit einem ATMEGA (und BASCOM)
Bitte weiter so.
73 DC8SE

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery