Abend,
ich möchte in diesem Thread einen Teilbereich meines Projektes vorstellen auch mit der Hoffnung dabei von euch zu lernen und hilfreiche Tipps zu bekommen, mein Ziel zu erreichen.
Gesamtprojekt: Speiseeismaschine
Teilprojekt: Steuerung der Kältemaschine und anderen wichtigen Komponenten über Arduino mit Anzeige und Einstellmöglichkeiten.
Vorwort und kurzer einblick in die Grundlagen:
Der wichtigste Bestandteil des elektrischen Teiles ist folgender:
Normalerweise wird bei einer Kleinkälteanlage über ein TEV (Thermostatisches-Einspritz-Ventil) die Einspritzung und vor allem die Überhitzung am ende des Verdampfers geregelt. Dieses Bauteil benötigt in der Regel minimum ein Kapillarrohrfühler an der Saugseite um die Austrittstemperatur zu erfassen und damit die eingespritzte Kältemittelmenge zu regulieren. (Effizienz des Verdampfers und Schutz vor Flüssigkeitsschlägen im Verdichter). Der Druck spielt dabei auch eine essentielle Rolle, wird aber bei einem TEV - da es fest im Kältemittelkreislauf eingebaut wird - nicht seperat benötigt (außer bei TEV mit äußerem Druckausgleich)
Es gibt aber auch EEV´s (Elektronische Einspritz Ventile) die entweder wie ein simples Magnetventil (AKV) arbeiten (schnell gepulstes auf - zu) oder Ventile mit Schrittmotor welcher einer Nadel langsam auf oder zu dreht (zb. Carel E2V)
Vorteil ist zb. eine effizientere Ausnutzung der Verdampfers, da die Überhitzung nicht mehr so groß sein muss. (TEV´s sind recht Träge)
Nachteil ist halt, dass man bei solch einer Einspritzung eine elektronische Regelung braucht. Natürlich bietet jeder Hersteller solcher EEV´s entsprechende Steuerungen an.. Aber wer wären wir, wenn wir sowas nutzen würden XD
In einem Kälteforum bekam ich von einem User eine Dampftabelle und ein paar anfängliche Tipps, wie das zu realisieren ist.
Wichtig zu wissen ist, dass der Druck (in bar absolut) auf der Saugseite immer einer Verdamfpungstemperatur (in °C) entspricht, solange noch flüssiges Kältemittel vorhanden ist.
Die Überhitzung heißt nichts anderes, als dass das vollständig verdampfte Kältemittel um so und so viel °C noch weiter überhitzt wird.
(Analogie zu Wasser:
Wasser hat eine Verdampfungstemperatur von 100°C bei 1,013bar. Ist alles Wasser verdampft und wird der Dampf noch weiter erhitzt, spricht man von Überhitzung - also über 100°C hinaus)
Für mein Projekt heißt das:
-Ein Druckaufnehmer nimmt mir den aktuell vorherrschenden Verdampfungsdruck auf.
-Dieser Druck muss jetzt im Arduino einer Verdampfungstemperatur zugewiesen werden.
-Ein Temperaturfühler nimmt die aktuelle Temperatur an der Saugleitung, direkt nach dem Verdampfer auf.
-Im Arduino wird die gemessene Temperatur mit der erreichneten verglichen und daraus die Differenz errechnet.
-Ergebnis ist die Überhitzung.
Nächster schritt wäre diesen Wert her zu nehmen und über einen Regler ein EEV anzusteuern und die Einspritzung entprechend zu regulieren.
Erster Schritt:
Druck auslesen und über ein Array einer Temperatur zuweisen:
/* Überhitzungsregler by Fr33man
Schritt 1: (22.12.2013)
Dampftabelle mit IST-Druck vergleichen und
Verdampfungstemperatur ausgeben.
*/
// PIN-zuweisungen
#define p0 a0
// Dampftafel R134a
// Werte / 100 entsprechen p abs.
// Arrayposition - 301 / 10 entpricht t0.
//
// Beispiel:
//
// analogRead(p0) wäre zb. = 101
// In Bar wäre es: 101 / 100 = 1,01 bara
// 101 ist die 39. Position im Array (Zähler in einer For schleife)
// 39 - 301 / 10 = -26,2°C
int p0h_table [] = {84, 85, 85, 86, 86, 86, 87, 87, 88, 88,
88, 89, 89, 90, 90, 91, 91, 91, 92, 92,
93, 93, 94, 94, 94, 95, 95, 96, 96, 97,
97, 98, 98, 98, 99, 99, 100, 100, 101, 101,
102, 102, 103, 103, 104, 104, 104, 105, 105, 106,
106, 107, 107, 108, 108, 109, 109, 110, 110, 111,
111, 112, 112, 113, 113, 114, 114, 115, 115, 116,
116, 117, 117, 118, 118, 119, 120, 120, 121, 121,
122, 122, 123, 123, 124, 124, 125, 125, 126, 127,
127, 128, 128, 129, 129, 130, 130, 131, 132, 132,
133, 133, 134, 134, 135, 136, 136, 137, 137, 138,
139, 139, 140, 140, 141, 142, 142, 143, 143, 144,
145, 145, 146, 146, 147, 148, 148, 149, 150, 150,
151, 151, 152, 153, 153, 154, 155, 155, 156, 157,
157, 158, 159, 159, 160, 161, 161, 162, 163, 163,
164, 165, 165, 166, 167, 167, 168, 169, 169, 170,
171, 172, 172, 173, 174, 174, 175, 176, 176, 177,
178, 179, 179, 180, 181, 182, 182, 183, 184, 185,
185, 186, 187, 187, 188, 189, 190, 191, 192, 193,
193, 194, 194, 195, 196, 197, 197, 198, 199, 200,
201, 201, 202, 203, 204, 205, 205, 206, 207, 208,
209, 209, 210, 211, 212, 213, 214, 214, 215, 216,
217, 218, 219, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, 232, 232, 233, 234,
234, 235, 236, 237, 238, 239, 240, 241, 242, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
253, 254, 255, 256, 256, 257, 258, 259, 260, 261,
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
304, 305, 306, 307, 308, 309, 310, 311, 312, 314,
315, 316, 317, 318, 319, 320, 321, 323, 324, 325,
326, 327, 328, 329, 331, 332, 333, 334, 335, 336,
338, 339, 340, 341, 342, 344, 345, 346, 347, 348,
350, 351, 352, 353, 355, 356, 357, 358, 359, 361,
362, 363, 364, 366, 367, 368, 370, 371, 372, 373,
375, 376, 377, 378, 380, 381, 382, 384, 385, 386,
388, 389, 390, 392, 393, 394, 396, 397, 398, 400,
401, 402, 404, 405, 406, 408, 409, 410, 412, 413};
// Variablen
int p0;
int t0;
int bara;
void setup()
{
Serial.begin(9600);
pinMode(p0, INPUT);
}
void loop()
{
// Druck einlesen (evtl den Rohwert noch mappen oder sowas)
p0 = analogRead(p0);
// Eingelesenen Wert mit der Tabelle vergleichen
int i = 0;
while (p0h_table[i] = p0)
{
i++;
}
// da der Zähler i zur berechnung der Verdampfungstemperatur verwendet wird, wird er
// hier umgerechnet. Zur Anzeige wird auch gleich noch der Wert in der Variable p0
// in Bara umgerechnet.
t0 = i - 301 / 10;
bara = p0 / 100;
// Werte werden ausgegeben
Serial.println( t0);
Serial.println(bara);
}
Das ist mein aktueller, ungetesteter Stand.
Kann das funktionieren? Verbesserungsvorschläge?
Bis später