Thermocontrol für Absorberkühlschränke
Autoren: Nicolas-Pascal Kosellek & Hendrik Schlemmer
Betreuer: Prof. Dr.-Ing. Mirek Göbel & Prof. Dr.-Ing. Ulrich Schneider
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)
Einleitung
Da die Kühlleistung von Absorberkühlschränken stark von der Umgebungstemperatur an den Kühlrippen abhängt, ist es von Vorteil, diese über Temperatursensoren zu überwachen und aktiv in einem Temperaturfenster zuhalten.
Gerade im Wohnmobilbereich sind diese Kühlschränke häufig serienmäßig verbaut, sodass hier oft das Problem eines Hitzestaus im Abluftbereich entsteht. Dies wirkt sich negativ auf die Kühlleistung des Absorberkühlschrankes aus. Erhöhte Außentemperaturen, wie sie in südlichen Urlaubsregionen auftreten, verschärfen die Problematik.
Außentemperaturen im Bereich der Frostgrenze erschweren wiederum das Erreichen des optimalen Temperaturfensters.
Anforderungen
MUSS-Anforderungen
• Messung der Außentemperatur
• Messung der Kühlrippentemperatur
• Ansteuerung der Lüftungsklappen mittels eines Servomotors
• Regelung der Lüfterdrehzahl
• Ausgabe der Sensorwerte auf einem Display
• Stromversorgung über 12V-Boardspannung
• Notstellung der Lüftungsgitter
KANN-Anforderungen:
• USV-Versorgung zur Notsteuerung bei Ausfall der 12V-Boardspannung
Funktionaler Systementwurf/Technischer Systementwurf
Die Regelung des Temperaturfensters wird realisiert über eine zusammenhängende Steuerung der Luftauslassklappe in Verbindung mit zwei parallel laufenden Lüftern zur Erzeugung eines optimierten Abluftstroms.
Für die Steuerung des Lüftungsgitters wird ein Servomotor benötigt, welcher die Luftzufuhr regelt. Die zwei vorhandenen Temperatursensoren messen die Temperatur oberhalb der Kühlrippen und die Außentemperatur. Die Erzeugung des Abluftstroms erfolgt über zwei, in der Drehzahl regelbare Lüfter. Die Regelung der Lüfterdrehzahl wird durch den Arduino zum Erhalt der Temperatur, im optimalen Arbeitsbereich, gesteuert.
Die aktuellen Temperaturen, Lüfterdrehzahl und der Öffnungsgrad des Lüftungsgitters werden für den Benutzer sichtbar auf einem LCD-Display ausgegeben. Sollten Fehler in der Regelung oder beim Verstellen des Lüftungsgitters auftreten, wird der Benutzer durch einen Signalton gewarnt und eine Notstellung angefahren.
Die Thermocontrol wird durch ein geschaltetes Plus-Signal vom Kühlschrank mit Spannung versorgt und beginnt die Regelung automatisiert.
Komponentenspezifikation
Komponente | Beschreibung | Abbildung |
---|---|---|
Arduino UNO | Microcontroller 14 digitale I/O Pins 6 analoge Eingänge |
|
LCD-Display | I2C-Verbindung 16x2 Pixel Auflösung Hintergrundbeleuchtung |
|
2x PWM-Lüfter | be Quiet! Gehäuse Lüfter Pure Wings 2 120mm Durchmesser 12V / 2,4W Dienen zur Erzeugung eines Abluftstromes zur Abführung der Wärme |
|
2x Ein/Aus Schalter | Zwei Schaltzustände Dient zum Umschalten zwischen verschiedenen Modis |
|
Potentiometer | 10kOhm Potentiometer Dient zur Simulation der Lamellentemperatur |
|
Ultraschallsensor | Misst den Abstand zu einem beliebigen Objekt Dient zur Erkennung der Abdeckung |
|
RGB-LED | 4-Pin RGB LED (ROT/GRÜN/BLAU) Dient zur Darstellung des Systemzustandes |
|
1-Kanal Relais Modul | Max. 10A / 30VDC Dient zur Spannungsfreigabe der Lüfter |
|
Piezo-Speaker | Lautsprecher nach dem Piezo-Prinzip Dient zur Ausgabe eines Signaltons |
Umsetzung (HW/SW)
Für die Umsetzung des Projektes in die Realität, wurde es in drei verschiedene Teilprojekte eingeteilt.
=== Hardware - Demo-Ständer: ===
Um unser Projekt auf der Messe gut zu präsentieren, ohne ein Wohnmobil mitzubringen, bauten wir einen entsprechenden Präsentierständer, auf der alle Features zu sehen und auszuprobieren sind. Wir entschlossen uns für eine Edelstahlplatte, in der wir für den Einbaurahmen und der Kontrolleinheit passende Aussparungen schnitten. Um die Sicht auf den Ständer zu erleichtern, bauten wir zwei Holzfüße, welche einen 25 Grad winkeligen Einschnitt erhielten, welche wiederum die Edelstahlplatte halten.
Die Lüfter werden im Einbaurahmen über drei Längsverstrebungen aus Edelstahl gehalten. Dies ermöglicht weiterhin die Demontage der Lüftungsgitter, für ein Erreichen der Kühllamellen. Auch der Ultraschallsensor wurde an dem Einbaurahmen befestigt.
=== Hardware - Schaltung: ===
Wir fingen an die Schaltung, welche für die Drehzahl der Lüfter zuständig ist, aufzubauen.
Zu Beginn ließen wir lediglich einen Lüfter über unsere Steuerung laufen. Dafür war es notwendig die Temperatur der Kühllamellen eines Absorberkühlschranks über ein Drehpotentiometer zu simulieren, um schnell Änderungen in der Drehzahl der Lüfter erkennen zu können. Die in der Software hinterlegten Kennlinie des PWM-Signals über die Lamellentemperatur ist in der Abbildung X dargestellt. Die Lüfter und der Arduino wurden dabei direkt über ein 230 V Netzstecker, welcher die Spannung auf 12 V DC regelte, versorgt, um die anfallende Boardspannung eines Wohnmobils zu emittieren.
In der ersten Version verwendeten wir 12V Lüfter, welche keine PWM-Ansteuerung integriert hatten. So mussten wir unsere Schaltung mit einem MOSFET erweitern um somit die Versorgungsspannung der Lüfter zu regeln. Die Ansteuerung des MOSFETs erforderte eine PWM-Modulation.
Nach Rechersche im Internet, fanden wir regelbare 12V Lüfter mit PWM-Ansteurung. Die Beschaffung und Einbindung dieser Lüfter in die Schaltung vereinfachte den Aufbau.
Nach diesem Schritt versuchten wir auf dem LCD die Temperatur und die Lüfterdrehzahl ausgeben zu lassen. Dies gelang uns jedoch erst nach dem Gebrauch der Arduino Software IDE.
Nun musste der Winterbetrieb der Thermocontrol realisiert werden. Nach mehreren Anläufen wurde uns bewusst, dass eine vollelektrische Lösung, bei der die Lüftungsgitter beim Unterschreiten einer Schwelltemperatur zu fahren, zu aufwendig zu konstruieren war. Wir beschlossen die mitgelieferte Winterabdeckung smart zu verwenden. Der Arduino soll nun bei Temperaturen um den Gefrierpunkt eine Fehlermeldung, ein akustisches Warnsignal und ein visuelles Warnsignal ausgeben, falls keine Winterabdeckung montiert wurde. Um dies elektronisch zu kontrollieren, montierten wir einen Ultraschallsensor in den Einbaurahmen, welcher durch eine Distanzmessung, die Abdeckung erkennt. Um auch den Außentemperaturbereich zu simulieren verwendeten wir einen Kippschalter, welcher den Sommer- oder Wintermodus einstellt.
Nach erfolgreicher Einbindung der Winterabdeckung sowohl in der Hard- als auch in der Software, mussten noch eine RGB-LED zur visuellen Unterstützung des Betriebszustandes und ein Piezo-Lautsprecher für akustische Warnsignale implementiert werden. Als Zusatz haben wir noch die Drehzahl aus dem Lüfter Ausgang ausgelesen und auf dem LCD-Display ausgegeben.
In der Abbildung X ist das finale Aufbau der Schaltung auf der Rückseite des Demo-Ständers aufgezeigt.
=== Software: ===
Für die Softwareentwicklung für die Steuerung wurde die gesamte Software in kleinere Unterprogramme zerlegt und einzeln entwickelt. Für die finale Einbindung wurden die einzelnen Unterprogramme mittels der loop-Schleife in der Arduino IDE verbunden.
Eine besondere Herausforderung innerhalb der Programmierung war die Erzeugung der notwendigen PWM-Frequenz für die Steuerung der Lüfter von 25000kHz. Diese PWM-Frequenz ist ein Intel-Standart im Bereich der PV-Gehäuse Lüfter. Der Arduino kann eine so hohe PWM-Frequenz nicht darstellen, somit musste eine spezielle Arduino-Bibliothek hinzugefügt werden welche diese zur Verfügung stellt.
Ebenfalls musste für das Einlesen der Drehzahl aus dem Lüfter die PWM-Frequenz ausgewertet werden. Dies ist im Kapitel X dargestellt.
Für die erfolgreiche Programmierung war die Einbindung von folgenden Bibliotheken notwendig:
- TimerOne.h (Erzeugung von beliebigen PWM-Frequenzen)
- LiquidCrystal_I2C.h (Einbindung des LCD-Display)
Im nachfolgenden sind die einzelnen Unterprogramme einzeln dargestellt:
Variablen definieren
/**************// // Konstanten // //**************// // Drehzahlabgriff Lüfter const int Drehzahl_Pin = 6; // Pin des Tachosignals des Lüfters //Poti-Einstellungen const int Poti_TempLamellen_Pin = A0; // Poti zur Temperatursimulation auf A0 //Lüfter-Einstellungen const int Luefter_Pin = 10; // BeQuiet 120mm 2,4W (12V) auf Pin 10 const int PWM_Frequenz = 25000; // Notwendige Frequenz für den Lüfter //Lautsprecher-Einstellungen const int Lautsprecher_PIN = 8; // Lautsprecher an Pin 8 angeschlossen const int TonFreq1 = 100; // Tonfrequenz 1 für Lautsprecherausgabe const int DauerTon = 500; // Tondauer für Lautsprecherausgabe // Ultraschallsensor-Einstellungen const int US_Trigger_PIN = 12; // Trigger vom Ultraschallsensor an Pin 12 angeschlossen const int US_Echo_PIN = 13; // Echo vom Ultraschallsensor an Pin 12 angeschlossen const int Abdeckung_Zu = 3; // Abstandswert bei geschlossener Abdeckung // RGB-LED-Einstellungen const int RGB_G_Pin = 3; // NPN-Transistor an Pin 9 angeschlossen const int RGB_R_Pin = 2; // Maximaler Wert der PWM-Modulation // StromRelais const int StromRelais_Pin = 7; // //Schalter für Sommer-Winter-Modus const int SommerWinter_PIN = 5; // Schalter an Pin 5 angeschlossen int SommerWinter = 0; // int SommerWinterPin = 0; // //Schalter für System const int System_PIN = 4; // int System = 0; // int SystemPin = 0; // // Variablen int Luefter_Drehzahl = 0; // int fanSpeed = 0; // Variable für die Lüftergeschwindigkeit int potiVar = 0 ; // Variable zum speichern des Potentiometereingangs int PotiLamellen = 0; // Variable zum int TempLamellen = 0; // Variable zum int PWM_Luefter = 0; // int LuefterDrehzahlPro = 0; //Lüfterauslastung in % //int LuefterDrehzahl = 0; //Lüfterdrehzahl aus Rückgabewert vom Lüfter // Drehzahl int AbfrZeit = 1000; // Zeitabstand für die Abfragen des Tachosignals long DrehzahlMillis = AbfrZeit; // Zeitabstand für Pulse Stretching Funktion float DrehzahlSek = 0; // Variable mit Kommastelle zur Berechnung der Umdrehungen pro Sekunde int Drehzahl = 0; // Variable für die gemittelte Drehzahl float UmdrehungMilli = 0; // Variable mit Kommastelle für die Zeit pro Umdrehung des Lüfters float FlankenZeit = 0; // Variable mit Kommastelle für die Zeit pro Puls des Lüfters // Ultraschallsensor int US_t = 0; // int Abstand = 0; // int AbstandGrenze = 4; // in cm int AbdeckungStatus = 0; //
Komponententest
Die verwendeten Komponenten wie zum Beispiel die Lüfter oder das Drehpotenziometer wurden vor der Integration in das System getestet. Dies erfolgte über das Schreiben kleiner Testprogramme, indem die fehlerfreie Funktion erkannt werden konnte.
Folgende Testprogramme wurden angelegt und erfolgreich getestet:
- LCD_Display.ino
- Potentiometer.ino
- PWM_Auswertung.ino
- Ultraschall.ino
Unter folgendem Link [SVN-Link SVN] sind die Beispielprogramme vorhanden.
Ergebnis
Das Ergebnis des Fachpraktikums ist eine smarte Ablufttemperatursteuerung für den Einsatz mit Absorberkühlschränken.
Bei steigenden Temperaturen erhöht sich die Drehzahl der Lüfter,gemäß Abbildung X, sodass eine optimale Arbeitstemperatur des Absorberkühlschrankes gewährleistet werden kann. Ebenfalls wurde eine optische Kontrolle mittels einer RGB-LED umgesetzt, sowie eine akustische Ausgabe über einen Piezo-Speaker.
Durch das Display, welcher im realen Verbau im Innenraum vorzufinden wäre, ermöglicht die Thermocontrol dem Anwender, durch die Ausgabe der Temperaturen und der Lüfter Drehzahlen, ein sicheres Gefühl zu haben, dass der Kühlschrank optimale Kühlleistungen erbringen kann.
Das Problem gerade in warmen Urlaubsregionen von einem kühlen Getränk zu Träumen fällt von nun an weg und der Traum wird zur Realität!
Zusammenfassung
Lessons Learned
Durch die Arbeit an dem Projekt Thermocontrol für Absorberkühlschränke konnten wir das gemeinsame Arbeiten an einem realen Projekt erlernen. Es mussten alle Teilaufgaben für das erfolgreiche Abschließen der Arbeit geplant und durchgeführt werden.
Die Disziplinen waren unter anderen Aufgeteilt in:
- Programmierung
- Dort wurden die bisherigen Kenntnisse aus dem Fach Informatik und den dazugehörigen Praktika gefordert und weiter in Eigeninitiative ausgebaut, gerade die Programmierung in der Sprache C kam zum Einsatz.
- Projektplanung
- Die Durchführung eines eigenen Projekts wurde bislang nur theoretisch oder im Praxissemester vertieft, sodass das Projekt uns die Möglichkeit bat unser theoretisches Wissen mit praktischen Erfahrungen zu füllen.
- Elektrotechnik
- Sicherlich mussten auch die erlernten Grundlagen des Faches Elektrotechnik eingesetzt werden, um die Schaltungen richtig umsetzen zu können und auch die Widerstände zu bestimmen.
- Handwerkliches Geschick
- Während der gesamten Bauphase standen wir immer wieder vor kleinen oder auch großen Hürden, welche wir jedoch gut durch den richtigen Einsatz von Werkzeugen und der Bearbeitung von Werkstücken bewältigen konnten.
Es ist auf jeden Fall festzuhalten, dass dieses Projekt dem Lernerfolg in vielen Aspekten des Studiums weiterhilft und einem einen kleinen, aber doch sehr hilfreichen, Einblick in die praktische Arbeit bietet.
Projektunterlagen
Projektplan
Zu Beginn des Projektes wurde folgender Projektplan festgelegt. Die jeweiligen Aufgaben innerhalb des Projektes wurde gemäß dem Projektplan ausgeführt und abgearbeitet.
Projektdurchführung
Zu Beginn des Projektes zur Erstellung einer Thermocontrol, wurde Überlegungen angestellt, wie der Systemaufbau zu gestalten ist. Ebenfalls wurde in diesem Arbeitsschritt auch die notwendigen Bauteile definiert.
Durch den zuvor getätigten Kauf der Funduino-Arduino Box, war nur die Beschaffung der Lüfter und eines Potentiometer notwendig. Im ersten Versuchsaufbau, wurden Lüfter ohne interne PWM-Steuerung verwendet, sodass ebenfalls eine Transistorschaltung notwendig war. Aufgrund der Möglichkeit zur Verwendung von PWM gesteuerten Lüftern wurde die Schaltung im Laufe des Projektes ersetzt. Dieser Austausch hatte aber keine weiteren Auswirkungen auf den Projektaufbau. Weiter ausgeführt ist dieser Punkt in "Lessons Learned".
Zeitgleich wurde mit dem Hardware-Aufbau und des Fertigung des Demo-Ständers begonnen.
Abschließend konnte das Gesamtsystem aufgebaut werden und erfolgreich getestet werden.
YouTube Video
Im nachfolgenden Video ist das Projektergebnis darstellt:
Weblinks
Literatur
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)