Share this

Entwurf eines mikrocontrollerbasierten Timer-Controllers für einen elektrischen Warmwasserbereiter

2026-02-21 10:51:58 · · #1
1. Einleitung: Herkömmliche elektrische Warmwasserbereiter mit großem Fassungsvermögen benötigen lange Aufheizzeiten, was bei Dauerbetrieb zu hohem Energieverbrauch führt. Zeitschaltuhren lösen dieses Problem effektiv und machen elektrische Warmwasserbereiter komfortabler und energieeffizienter. Dadurch kann der Warmwasserbereiter Leerlaufzeiten optimal nutzen, lange Wartezeiten vermeiden und unnötige Wärmespeicherung reduzieren. Dies spart Energie, insbesondere in Gebieten mit Preisunterschieden zwischen Spitzen- und Schwachlastzeiten. Durch die Nutzung von Schwachlaststrom zum Heizen in der Nacht und das Abschalten zur Wärmespeicherung während der Spitzenzeiten lassen sich erhebliche Einsparungen bei den Stromkosten erzielen. Die in diesem Beitrag vorgestellte Zeitschaltuhr verwendet als Kernkomponente den Mikrocontroller AT89C2051. Über Peripherieschaltungen steuert sie die Stromversorgung des Warmwasserbereiters und ermöglicht so zeitgesteuertes Ein- und Ausschalten. 2. Hardwareaufbau und Funktionsprinzip: Nach dem Einschalten befindet sich das System im normalen Zeitschaltmodus. Benutzer können die Zeit kalibrieren und die Ein- und Ausschaltzeiten des Warmwasserbereiters jederzeit einstellen. Die Zeitschaltuhr steuert dann zum eingestellten Zeitpunkt das Ausgangsrelais über den Ausgang des Mikrocontrollers und regelt so den Ein- und Ausschaltzustand des Warmwasserbereiters. Das Hardware-Schaltbild ist in Abbildung 1 dargestellt. [align=center]Abbildung 1: Hardware-Schaltbild des Timer-Controllers[/align] Kern des Systems ist der Mikrocontroller AT89C2051. Der AT89C2051 ist ein 20-poliger Mikrocontroller im 300MIL-Gehäuse mit 2 KB Flash-E2PROM. Bis auf das Fehlen zweier paralleler Schnittstellen ist er mit allen Funktionen der Mikrocontroller der MCS-51-Serie kompatibel. Er zeichnet sich durch seine geringe Größe, seine leistungsstarken Funktionen und seine hohe Arbeitsgeschwindigkeit aus. Über Port P3.7 ist eine Tastaturschaltung angeschlossen, die die manuelle Parametereinstellung ermöglicht. Ein 6-stelliges LED-Display ist über eine serielle Schnittstelle angeschlossen und zeigt Stunden, Minuten und Sekunden an. Der Timer des Systems wird über Port P3.0 gestartet. Zu Beginn des Programms ist der Ausgangszustand dieser drei Ports auf LOW gesetzt. Der AT89C2051 fragt über das Programm die voreingestellte Zeit für den EIN- oder AUS-Zustand des Ausgangs von Port P3.0 ab. Ist die Zeit abgelaufen, ändert sich der entsprechende Ausgangszustand, wodurch die Steuerung des externen Schaltkreises abgeschlossen wird. 2.1 Der Anzeigeschaltkreis besteht im Wesentlichen aus einem 7-Segment-Anzeigedecoder (74LS47), einem 3-zu-8-Leitungsdecoder (74HC138), sieben PNP-Transistoren und sechs LED-Anzeigen. Der BCD-Code des anzuzeigenden Zeichens wird von den Ports P1.4 bis P1.7 des 89C2051 an die vier Eingänge des 74LS47 ausgegeben. Nach der Dekodierung wird das entsprechende Segment ausgegeben, um die LED-Anzeigen (gemeinsame Anode) anzusteuern. Die LED-Anzeigen arbeiten mit einem dynamischen Scanverfahren, d. h. es leuchtet immer nur eine LED-Anzeige. Das Ziffernauswahlsignal für die LED-Anzeige wird von den Ports P3.3 bis P3.5 des 89C2051 ausgegeben, vom 74HC138 dekodiert, von den Transistoren verstärkt und steuert dann die entsprechende LED-Anzeige an. 2.2 Tastaturschaltung: Die Tastaturschaltung verwendet, wie die Anzeigeschaltung, ein Abtastverfahren. Dabei werden die Positionssignale der LED-Anzeigen während der dynamischen Anzeige genutzt, um den Zustand der entsprechenden Tasten zu bestimmen. Der BCD-Code, der von den Ports P3.3–P3.5 des Mikrocontrollers ausgegeben wird, wird dekodiert, was zu einem niedrigen Pegel am entsprechenden Y-Port führt. Der Port P3.7 des AT89C2051 ist normalerweise auf hohem Pegel (aufgrund von Pull-up-Widerständen). Beim Drücken einer Taste wird P3.7 auf niedrigen Pegel gezogen. Der Mikrocontroller prüft dann, ob P3.7 auf niedrigem Pegel ist. Ist dies der Fall, liest er die Werte von den Ports P3.3–P3.5 (aus dem Puffer), um die gedrückte Taste zu ermitteln, und ruft das entsprechende Verarbeitungsprogramm auf. 2.3 Ausgangssteuerungsschaltung: Der Mikrocontroller steuert die Ausgänge über die Ports P3.0–P3.2. Zu Beginn des Programms sind diese drei Ports auf niedrigem Pegel. Der AT89C2051 prüft, ob die voreingestellte Zeit für den EIN- oder AUS-Zustand der drei Ausgänge abgelaufen ist. Falls ja, ändert es den entsprechenden Ausgabezustand und steuert so die externe Schaltung. 3 Software-Design 3.1 Hauptprogrammablauf Zuerst durchläuft es die sechs Digitalanzeigen zum Scannen und Anzeigen (Segment „DISPLY“). Anschließend vergleicht es alle voreingestellten Zeiten (Segment „COMP“) mit der aktuellen Zeit. Stimmen diese überein, springt es zum entsprechenden Verarbeitungsprogramm. Nach Abschluss des Vergleichs (bzw. der Verarbeitung) prüft es, ob ein Tastendruck erfolgt (Segment „PP2“). Falls nicht, fährt es mit der Anzeige, dem Vergleich und der Auswertung fort; erfolgt ein Tastendruck, springt es zum entsprechenden Verarbeitungsprogramm. Die Tastendruckübertragung erfolgt mittels Offset- und Tabellensprungverfahren (Segment „KEY“), was einfach und übersichtlich ist. Der Vergleich der voreingestellten Zeiten erfolgt einzeln, d. h. jeder voreingestellte Wert wird verglichen. Stimmen diese überein, wird die entsprechende Verarbeitung durchgeführt. Konkret wird beim Vergleich (Segment „COMP1“) zuerst der TH-Wert verglichen. Sind die Werte ungleich, springt das Programm direkt und setzt das Flag „Zeit abgelaufen“ CCB auf 0. Sind TH, TM und TS gleich, wird das Flag auf 1 gesetzt. Das Software-Flussdiagramm ist in Abbildung 2 dargestellt. [align=center] Abbildung 2: Software-Programm-Flussdiagramm[/align] 3.2 Zweiter Impulsgenerator Der zweite Impulsgenerator wird durch das Zusammenwirken des Timers T0 und des Speicherbereichs TT0 realisiert. T0 arbeitet im 16-Bit-Zählermodus. Ein Interrupt wird ausgelöst, wenn T0 von 1 auf 0 hochzählt. In diesem Programm ist der Anfangswert von T0 0DC00H, und der Interrupt tritt etwa alle 0,01 Sekunden auf. Die Frequenz des verwendeten Quarzoszillators beträgt 11,0592 MHz, woraus sich ein täglicher Fehler von etwa 0,78 s berechnen lässt. Arbeitsablauf: Wie im Flussdiagramm in Abbildung 2 dargestellt, werden nach dem Auslösen eines Interrupts zunächst die Werte von ACC und PSW gespeichert. Anschließend wird der Anfangswert von T0 neu geladen. Es wird geprüft, ob die Anzahl der Interrupts unter 100 liegt. Ist dies der Fall, wird die Interrupt-Service-Routine beendet; andernfalls wird der Sekundenzähler um 1 erhöht. Ist der Sekundenzähler größer als 59, wird der Minutenzähler um 1 erhöht und der Sekundenzähler auf 0 zurückgesetzt. Ebenso wird, wenn der Minutenzähler größer als 59 ist, der Stundenzähler um 1 erhöht und der Minutenzähler auf 0 zurückgesetzt. Ist der Stundenzähler größer als 23, wird er auf 0 zurückgesetzt und die Interrupt-Service-Routine beendet. T0 benötigt genau eine Sekunde, um 100 Interrupts auszulösen. 4. Fazit: Durch die Verwendung des Mikrocontrollers AT89C2051 als Kern und ergänzende Peripherieschaltungen wurde die Anforderung niedriger Kosten erfüllt. Dieser Controller ermöglicht eine zeitgesteuerte Steuerung und zeigt relevante Parameter an. Er erfüllt die Systemanforderungen und ist gleichzeitig einfach und wirtschaftlich. Die flexible Tastatureingabe zur Parametereinstellung erhöht die Systemflexibilität. Dieser Timer-Controller wurde getestet und im Einsatz bewiesen und hat sich als zuverlässig und benutzerfreundlich erwiesen. In herkömmlichen Warmwasserbereitern ohne Timerfunktion ermöglicht er eine wirtschaftliche und praktische Steuerung und ist daher für eine breite Anwendung geeignet.
Read next

Eine kurze Diskussion über die Präzisionssteuerung von SPSen in Druckmaschinen

1. Einleitung. In den letzten Jahren hat die Fabrikautomatisierung in China dank des Fortschritts der Automatisierungste...

Articles 2026-02-20