Beschreibung: Einfacher Solarregler Einfacher Solarregler, der Kesseltemperatur und Kollektortemperatur misst, auswertet und eine Umwälzpumpe ein- bzw ausschaltet. Frei einstellbar sind Werte für Anschalttemperatur und Abschalttemperatur der Pumpe sowie Pumpe immer ein. Eingabe über Rotary-Switch. Ablauf: Es werden laufend die Temperaturen von Kessel und Kollektor gemessen, angezeigt und ausgewertet. Steigt die Temperatur am Kollektor über die des Kessels (um die eingestellte Temperaturdifferenz für Anschalttemperatur), dann schaltet die Pumpe ein. Ist die Temperatur am Kollektor unterhalb des eingestellten Wertes für Abschalttemperatur, dann schaltet die Pumpe wieder ab. Ist "Pumpe immer eingeschaltet" programmiert, so wird nur die Temperatur gemessen und angezeigt jedoch nicht ausgewertet. D.H. die Pumpe läuft ständig. Fühler1 (PT 1000) an PortC.0 - Heizkessel Fühler2 (PT 1000) an PortC.1 - Kollektor Rotary-Switch zur Dateneingabe schaltet immer GND Taster leitet Dateneingabe ein und beendet diese Rotary-Switch rechts drehen Parameter erhöhen bzw. ja Rotary-Switch links drehen Parameter verkleinern bzw. nein Rotary-Switch Taster an PD2 = Int.0 Rotary-Switch Kanal A an PD3 Rotary-Switch Kanal B an PD4 Eingabedaten werden im EEprom permanent gespeichert Temperaturdifferenz Anschalten Adresse &H10 Temperaturdifferenz Abschalten Adresse &H20 Pumpe immer an Adresse &H30 Anzeige über LCD Display 2 x 24 erste Zeile Kesseltemperatur und Kollektortemperatur zweite Zeile Delta Abschalttemp. Delta Anschalttemperatur und Pumpenzustand Im Eingabemenue-Zustand erste Zeile - Klartext zur Eingabe Im Eingabemenue-Zustand zweite Zeile - Parameter, die über R-Switchdrehung eingegeben werden Programmablauf: Auslesen der Parameter aus dem EEprom und anzeigen. DO LOOP Schleife zum Temperaturen messen, anzeigen und schalten. Drücken des Rotary-Switch löst einen Interrupt aus, der lediglich einen Merker setzt, der dann in der DO LOOP Schleife erkannt wird und eine SUB-Routine zur Dateneingabe einbindet. Danach wird der Merker wieder gelöscht. In der Routine werden nacheinander alle drei Parameter entweder geändert oder bestätigt und dann im EEprom gespeichert. Drehen links oder rechts ändert und zeigt Parameter im LCD (2. Zeile) an. Taster vom R-Switch bestätigt, speichert den Wert und geht zur nächsten der drei Eingabeschleifen. Die drei Routinen sind einfach gehalten. Zuerst wird im LCD (erste Zeile) angezeigt was man einstellt. In einer Schleife werden nacheinander über debounce zuerst der Drehschalter und dann der R-Switches abgefragt. Wird der Drehschalter erkannt, wird über eine SUBroutine des debounce Befehls die Drehrichtung erkannt und der Wert incrementiert oder decrementiert. Der Wert des Parameters wird in der 2. Zeile des LCD angezeigt. Wird der Taster über debounce erkannt, dann wird die Schleife verlassen und der Parameter im EEprom gespeichert. Dann wird die nächste Schleife abgearbeitet. Die dritte Schleife zeigt bei Rechtsdrehung "JA" an und bei Linksdrehung "NEIN". Der Parameter eine BYTE-Variable wird entweder auf 11111111 oder 00000000 gesetzt und im EEprom gespeichert. Die DO LOOP Schleife zweigt bei gesetztem Interruptmerker in die Eingabe Routine und löscht den Merker dann wieder. Dann kommt die Messung der Kesseltemperatur. Hier wird der ADC für der ersten Kanal gestartet. Eine ADC Interrupt Routine holt zeitverzögert den Wert des Kanals in Variablen, rechnet die Temperatur aus und zeigt diese im LCD an. Dann wird der ADC für den zweite Kanal genauso abgearbeitet. Dann wird geprüft, ob die Pumpe immer an ist und wenn ja Im LCD "PUMP PER" angezeigt; oder die Temperaturdifferenz beider Kanäle ausgewertet und entsprechend die Pumpe an oder abgeschaltet. Kalibrierung der Kostantstromquelle: Amperemeter in die Leitung des Fühlers schalten. Am Wendelpoti 1,2 MA einstellen. Durch den 680 Ohm Widerstand wird die Zenerdiode (3,3 Volt) in Sättigung gefahren und bleibt stabil. Dateiname: solarregler.bas ZIP-Archiv: solarregler.bas, solarregler.hex, beschreibung_solarregler.txt, Dateien für Eagle Layoutprogramm, Rotary-Switch Datenblatt Autor: Gerhard Günzel http://www.emagu.de