Projekt: Temperatur-Messsystem - Anzeigemodul 2a


Status | aktiv |
Letzte Bearbeitung | 23.07.2012 |
Aktueller Softwarestand | v3.001 vom 23.07.2012 |

Schaltplan Anzeigemodul 2a, Hauptmodul | |
Schaltplan Anzeigemodul 2a, Optionen | |
Stückliste mit Empfehlungen zur Bauteilbestellung | |
Software v3.001 für ATmega128 vom 23.07.2012 (Assembler) | am2a-v3001.zip |
Bootloader für ATmega128 UART0 | Bootloader ATmega128 UART0 v2.9k |
Homepage von Chip45 (aktuelle Bootloader-Versionen) | https://www.chip45.com/categories/chip45boot2_avr_atmega_xmega_uart_bootloader_frei_kostenlos_hexfiles.php |
USB-Treiber (VCP) für FT232R | www.ftdichip.com/Drivers/VCP.htm |

Beschreibung | Allgemeine Informationen über das Anzeigemodul 2a |
Schaltung | Beschreibung der Schaltung des Anzeigemoduls 2a |
Hardware | Bilder und Hinweise zum Aufbau des Anzeigemoduls 2a |
Software | Beschreibung der Software des Anzeigemoduls 2a |
Inbetriebnahme | Inbetriebnahme des Anzeigemoduls 2a und Installation der Software |
Update | Update der Software bei einem bereits laufenden Anzeigemodul 2a |
Bedienung | Bedienungsanleitung und komplette Beschreibung aller Funktionen |
Fehlermeldungen | Mögliche Fehlermeldungen und Hinweise zur Beseitigung der Fehler |
Datenkommunikation | Hinweise zur Herstellung einer PC-Datenverbindung und Beschreibung der Kommandos |
Upgrade zum Anzeigemodul 2a | Beschreibung des Umbaus eines vorhandenen Anzeigemoduls 2 zum Anzeigemodul 2a |
Eine wichtige Info vorweg: Das bis zum Juni 2012 aktuelle Anzeigemodul 2 ist leider nicht in der Lage, alle Sensordaten in einem angemessenen Zeitraum zu speichern und musste deshalb durch das Anzeigemodul 2a ersetzt werden. Die Module unterscheiden sich durch einen unterschiedlichen Speicherausbau und einige kleinere Schaltungsoptimierungen. Ein bereits laufendes Anzeigemoduls 2 lässt sich durch den Einbau von 2 zusätzlichen EEPROM-Chips relativ einfach zum Anzeigemodul 2a erweitern. Weitere Änderungen an der Schaltung sind dabei nicht erforderlich. Das Kapitel Upgrade zum Anzeigemodul 2a enthält eine Anleitung für den Umbau zum Anzeigemodul 2a.
Das Anzeigemodul 2a stellt das komplexeste Element des Temperatur-Messsystems dar. Es ist mit einem relativ großen grafischen Display mit 240x128 Pixeln ausgestattet und ermöglicht so die übersichtliche Anzeige der Sensordaten. Dabei können die bis zu 31 Sensorwerte, die vom Sensormodul 2 oder 3 empfangen werden, beliebig auf 2 Display-Seiten verteilt werden. Von allen Sensorwerten werden ständig die Minimal- und Maximalwerte ermittelt und können in gleicher Form angezeigt werden.Alle empfangenen Sensordaten werden nicht nur angezeigt, sondern auch in bestimmten Zeitabständen aufgezeichnet. So werden die aktuellen Werte alle 15 Minuten und die über den Tag erfassten Minimal-, Maximal- und Mittelwerte in einem EEPROM mit insgesamt 256kB abgelegt. Bei den 15min-Werten reicht der Speicher für 40 Tage und bei den Tageswerten für 416 Tage, weiterhin finden noch 500 Alarm-Meldungen und ein Konfigurations-Backup Platz. Die gespeicherten Sensordaten können über eine konfigurierbare Grafikanzeige in Diagrammform dargestellt werden. Dabei ist es möglich, einzelne Temperatur-, Luftdruck- oder Luftfeuchtigkeitsverläufe darzustellen, alternativ können zwei Diagramme übereinander angezeigt werden. Für den schnellen Zugriff auf die Grafikanzeige gibt es 24 programmierbare Voreinstellungen (Presets), so dass man schnell auf die gewünschte Grafik zugreifen kann.
Die gespeicherten Sensordaten können zur weiteren Auswertung auf einen PC übertragen werden. Für diesen Zweck sind 3 optionale Schnittstellen vorgesehen: RS-232, USB und Bluetooth. RS-232 und USB bieten zusätzlich die Möglichkeit, ein Software-Update durchzuführen, ohne das Gerät öffnen zu müssen. Dazu muss einmal bei der Inbetriebnahme ein Bootloader installiert werden.Neben der Anzeige und Aufzeichnung ist auch eine Überwachung der Sensorwerte möglich. Dazu kann man bei den Temperatursensoren einen unteren und einen oberen Grenzwert festlegen, bei dessen Unter- bzw. Überschreitung ein Alarm ausgelöst wird. Ein ausgelöster Alarm wird sowohl optisch über das Display und 2 LEDs als auch akustisch über einen Lautsprecher signalisiert. Auch der Status der 4 Alarm-Eingänge des Sensormoduls 2 oder 3 wird ausgewertet und signalisiert. Alle auftretenden Alarme werden zusätzlich mit Datum und Uhrzeit in einer Meldungsliste festgehalten.
Die gesamte Konfiguration erfolgt am Gerät über 2 Bedienelemente: einem Drehimpulsgeber mit Taster und einem einzelnen Taster. Zur genauen Zeiterfassung dient eine Echtzeituhr, die ständig über einen DCF77-Empfänger mit der amtlichen Zeit synchronisiert wird. Weiterhin ist noch ein Lichtsensor vorhanden, über den die Helligkeit des Displays gesteuert werden kann.In der folgenden Tabelle sind nochmals alle Funktionen in Stichpunkten aufgelistet:
- Übersichtliche Anzeige aller Sensorwerte auf einem grafischen LCD mit einer Auflösung von 240x128 Pixeln - verteilt auf 2 Seiten
- EEPROM (256kB) zur Datenspeicherung: 15min-Sensorwerte von 40 Tagen, Tages-Min/Max/Mittel von 416 Tagen, 500 Meldungen, ein Konfigurations-Backup
- Konfigurierbare grafische Anzeige aller gespeicherten Sensordaten
- Tabellarische Anzeige aller Meldungen
- DCF77-Empfänger zur Zeitsynchronisation
- Batteriegestützte Echtzeit-Uhr zur Überbrückung von Netzausfällen und zur Speicherung einiger Systemdaten
- PC-Verbindung über RS-232, USB oder Bluetooth zur Übertragung der Log- und Meldungsdaten, je nach Medium sind Geschwindigkeiten bis 460800 Baud möglich
- Bedienung über einen Drehimpulsgeber und einen Taster, die gesamte Konfiguration erfolgt direkt am Gerät
- 3 LEDs zeigen verschiedene Systemzustände an
- Lichtsensor zur automatischen Steuerung der Hintergrundbeleuchtung
- Konfigurierbare akustische Signalisierung
- Einstellbarer Tag/Nacht-Betrieb
- Urlaubs-Modus mit abgeschalteter Signalisierung und Displaybeleuchtung
- Software-Update über RS-232 oder USB mittels Bootloader möglich
Auch bei diesem Projekt wird als zentrales Bauteil ein Mikrocontroller verwendet. Ursprünglich war hier wegen des größeren RAM ein ATmega1281 geplant, letztlich habe ich mich aber doch für den bewährten ATmega128 entschieden - nicht zuletzt wegen der bereits laufenden Anzeigemodule 2, die sich somit einfach zum Anzeigemodul 2a umbauen lassen. Der Mikrocontroller IC1 wird hier mit einer Taktfrequenz von 11,0592 MHz betrieben. Diese scheinbar krumme Frequenz wurde gewählt, um genormte Baudraten für die PC-Schnittstelle erzeugen zu können. Über den 6-poligen Pfostenstecker K2 in Atmel-Standard-Beschaltung kann die Software in den Controller geschrieben werden. Der 10-polige JTAG-Anschluss K3 ist für Debugging-Zwecke vorgesehen und wird nur benötigt, wenn man eigene Software testen möchte.
Das nächste wichtige Bauteil ist IC2: ein grafisches Display mit einer Auflösung von 240x128 Pixeln. Dieses Display verwendet den Controller T6963C, der über eine parallele Schnittstelle angesteuert wird. Dazu werden 12 Leitungen benötigt, 8 davon dienen zur Übertragung der Daten und der Rest steuert den Datenfluss. Über R9 und T2 wird das Display aktiviert und mit Strom versorgt, R10 und C8 sorgen für ein definiertes Reset des Displaycontrollers. Normalerweise ist eine Abschaltung des Displays nicht notwendig. Ich habe aber bei meinem Prototyp festgestellt, dass das Display den DCF77-Empfang stört und so lässt sich das Display bei Bedarf per Software zu einem festgelegten Zeitpunkt in der Nacht abschalten, um wenigstens einmal täglich eine sichere DCF77-Synchronisation zu ermöglichen.Das Display benötigt eine negative Hilfsspannung von bis zu -15V, die für einen optimalen Kontrast genau eingestellt werden muss. Diese Spannung erzeugt das von mir verwendete Display durch einen eingebauten Inverter selbst und mittels R11 kann der Kontrast eingestellt werden.

Es gibt allerdings auch Ausnahmen: Manche Displays benötigen sowohl die Spannung des Inverters von ca. -15V als auch die einstellbare Kontrastspannung. In diesem Fall sind R11 und R12 erforderlich, welche dann an den Ausgang dieses Inverters angeschlossen werden müssen. Klarheit schafft im Zweifelsfall nur das Datenblatt des Displays.
Ganz wichtig: Die +5V für diese Schaltung müssen unbedingt am Knotenpunkt T2/R10/C7 entnommen werden, damit beim Ausschalten des Displays auch die negative
Spannung abgeschaltet wird (der Knotenpunkt ist im Schaltplan des Hauptmoduls eingezeichnet). Außerdem sollte diese Schaltung nicht so nah am DCF77-Empfänger platziert werden, damit der
Empfang nicht gestört wird.
Viele ältere Displays haben eine Hintergrundbeleuchtung mit EL-Folie oder einer CCFL-Röhre. Hier kann die Ansteuer-Elektronik der Beleuchtung ebenfalls an T1 angeschlossen werden, allerdings ist meist keine Helligkeitssteuerung mit PWM möglich, so dass in den Einstellungen (siehe Bedienung) die Beleuchtungsautomatik abgeschaltet werden sollte.
Noch ein Hinweis zum Display: Beim Bau des ersten Anzeigemoduls 2 im Jahr 2006 waren die Displays mit T6963C recht weit verbreitet. Zum Zeitpunkt der Texterstellung im Juni 2012 sah das Angebot leider nicht mehr so gut aus. Man muss schon intensiv nach Angeboten suchen, aber es gibt sie noch. Übrigens kann man ältere mit CCFL ausgestattete Typen mit ca. 25 SMD- oder 3mm-LEDs und ebenso vielen 330Ω SMD-Widerständen auf LED-Hintergrundbeleuchtung umbauen.Neben dem LCD sind noch 3 weitere optische Anzeigen in Form von farbigen LEDs (D1-D3) vorhanden, welche verschiedene Alarmzustände sowie die aktive PC-Kommunikation signalisieren. Ich habe hier ultrahelle Typen verwendet, damit man auch aus größerer Entfernung einen Alarmzustand erkennen kann. Alle LEDs werden über jeweils einen Vorwiderstand (R3-R5) direkt vom Controller IC1 angesteuert. Zur Bedienung des Anzeigemoduls dienen der Drehimpulsgeber mit Taster S1 und der Einzeltaster S2. Beide Elemente sollten unterhalb des Display angeordnet werden (S1 rechts, S2 links), da die unterste Display-Zeile immer die Funktion von S1 und S2 vorgibt. S1 und S2 sind direkt mit IC1 verbunden, die nötigen Pull-up-Widerstände sind bereits im Controller vorhanden und auch Entprellung wird vom Controller-Programm erledigt. Mit dem weiteren Taster S3 kann man ein Reset auslösen und den Bootloader aktivieren. Dies ermöglicht die einfache Installation einer neuen Software über RS-232 (K4) oder USB (K5).
Für den Drehimpulsgeber S1 können verschiedene Typen eingesetzt werden. Damit die Software des Anzeigemoduls die Impulse richtig auswerten kann, gibt es die Möglichkeit, mit S4 die Funktion des Gebers zu konfigurieren. S4 besteht aus 2 unabhängigen DIP-Schaltern, die je nach Schalterstellung die Eingänge PE4 oder PE5 des Mikrocontrollers nach Masse schalten. Der erste Schalter (S4.1, Anschluss 1-2) legt fest, ob vom Geber 2 oder 4 Impulse bei jedem Schritt erwartet werden. Mit dem zweiten Schalter (S4.2, Anschluss 3-4) kann die Drehrichtung umgekehrt werden.Für die Speicherung der Sensordaten sind IC3-IC6 vorgesehen. Es handelt sich hier um EEPROMs mit einer Speicherkapazität von jeweils 64 kB, welche an einem gemeinsamen I²C Bus angeschlossen sind. PD0 und PD1 des Mikrocontrollers IC1 können als Interface für einen I²C Bus konfiguriert werden und so bietet es sich an, die beiden Busleitungen SCL und SDA dort anzuschließen. R13 und R14 bilden die notwendigen Pull-up Widerstände. Über die Pins 1 und 2 der EEPROMs wird die Adresse festgelegt, über die jedes IC am Bus erreichbar ist (0xA0, 0xA2, 0xA4 und 0xA6).
IC7 ist ein Doppel-OPV, welcher zur Tonerzeugung verwendet wird. Genau genommen wird der Ton selbst vom Controller IC1 erzeugt und IC7 dient zur Steuerung der Lautstärke und zur weiteren Verstärkung. Zunächst generiert IC1 ein PWM-Signal mit einer Frequenz von 1,6kHz, welches an PB6 anliegt und über das Tiefpassfilter R15 und C14 zum Eingang des linken OPV geführt wird. Am Ausgang des als Spannungsfolger beschalteten OPVs stellt sich eine zum PWM-Signal proportionale Gleichspannung ein, welche die Lautstärke des Tonsignals bestimmt. Das eigentliche Tonsignal kommt von IC1/PB4 und wird mittels R16 und D4 auf die Höhe der Ausgangsspannung des linken OPVs begrenzt. Auf diese Weise lässt sich das Tonsignal per Software auf einen Spannungspegel zwischen ca. 0,5V und 5V einstellen. Der rechte OPV ist ebenfalls als Spannungsfolger geschaltet und steuert mit dem nachgeschalteten Transistor T3 den Lautsprecher LS1 an. Hier kann ein beliebiger magnetischer Lautsprecher oder Piezo-Schallwandler angeschlossen werden. Ich habe einen Miniatur-Lautsprecher (Sound-Transducer) verwendet, der recht klein und trotzdem laut ist.IC7 benötigt eine etwas höhere Betriebsspannung, diese wird vor dem Spannungsregler IC11 am Punkt +U2 abgegriffen. R19 und C15 dienen als Filter und sollen Störsignale reduzieren.
IC8 ist ein Empfängermodul für das DCF77-Zeitzeichensignal. Die vom Empfänger kommenden Impulse werden direkt zum Anschluss PE2 des Controllers IC1 geführt und dort ausgewertet. Die DCF77-Funktion ist weitgehend konfigurierbar - so lässt sich die Polarität des Signals (invertiert oder normal) umschalten, außerdem kann ein Pull-up Widerstand am Controller für Module mit offenem Kollektor-Ausgang aktiviert werden. Somit können praktisch alle Modultypen angeschlossen werden. Zu beachten ist allerdings, dass bestimmte Empfängermodule nur mit maximal 3,3V betrieben werden dürfen (z.B. das Modul von Pollin). Hier sind 2 zusätzliche Bauteile erforderlich: Die +5V werden nicht direkt an das Modul, sondern über einen 1kΩ-Widerstand an den VCC-Anschluss geführt. Zwischen VCC und Masse wird eine 3,3V (oder 2,7V) Z-Diode geschaltet (Kathode an VCC, Anode an Masse), C17 kommt ebenfalls zwischen VCC und Masse. Weiterhin besitzen einige Module zusätzliche Anschlüsse (z.B. PON), diese müssen meist an Masse gelegt werden. Im Zweifelsfall hilft das Datenblatt weiter.
IC9 enthält eine Echtzeituhr und stellt zusätzlich noch 240 Byte RAM zur Verfügung, die hier zur Speicherung von Zeigeradressen sowie von Min-, Max- und Mittelwerten genutzt werden, mehr dazu im Abschnitt Software. Die Kommunikation mit IC1 erfolgt hier über einen weiteren I²C Bus, wobei R23 und R24 als Pull-up Widerstände dienen. Ein gemeinsamer Betrieb mit IC3-IC6 am gleichen Bus ist leider nicht möglich, weil IC9 mit einer niedrigeren Geschwindigkeit arbeitet und zudem noch den gleichen Adressraum verwendet. Aus diesem Grund werden die Anschlüsse PB2 und PB3 zu einem zusätzlichen I²C Bus umfunktioniert.Die Echtzeituhr wird mit einem 32768 Hz Uhrenquarz getaktet, mit C19 kann die Frequenz genau abgeglichen werden. Falls ein Frequenzzähler vorhanden ist, dann bietet sich dieser zum Abgleich an. Er kann direkt an IC9/Pin7 angeschlossen werden, R22 dient hier als Pull-up Widerstand für den Open-Drain Ausgang. Eingestellt wird eine Frequenz von 1Hz bzw. eine Periodendauer von 1s.
Im Normalbetrieb wird IC9 über D7 mit +5V versorgt. Bei Ausfall der Betriebsspannung erfolgt eine +3V Notversorgung mittels einer Lithium-Batterie CR2032 (Bat1) über D6. R21 und C18 führen zu IC1/PF1, hier wird die Spannung der Batterie gemessen und gemeinsam mit den anderen Sensorwerten alle 15min gespeichert. R21 wurde absichtlich so groß gewählt, damit die Batterie bei Netzausfall nicht über die internen Schutzelemente von IC1 entladen wird.
IC10 ist ein MAX232 in Standard-Beschaltung. Er dient als Pegelwandler für die RS232-Schnittstelle zum Sensormodul und die optionale RS232-Schnittstelle zum PC. Die Schnittstelle zum
Sensormodul wird hier nur in einer Richtung betrieben: Die vom Sensormodul kommenden Daten mit RS-232-Pegel gelangen vom Anschluss K1/Pin3 auf IC10/Pin8 und werden als normales
CMOS/TTL-Signal von IC10/Pin9 zum Controller-Anschluss PD2 weitergegeben. Die Rückrichtung ist zwar vollständig verdrahtet (IC1/PD3 auf IC10/Pin10 sowie IC10/Pin7 auf K1/Pin4), wird
allerdings zurzeit nicht verwendet.
Die RS232-Schnittstelle zum PC wird bidirektional genutzt: Die für den PC bestimmten Daten sind vom Controller-Anschluss PE1 an IC10/Pin11 geführt und laufen dann mit RS-232-Pegel von
IC10/Pin14 weiter an K4/Pin2. Umgekehrt kommen die vom PC an K4/Pin3 empfangenen Daten mit RS-232-Pegel an IC10/Pin13 an und gehen als CMOS/TTL-Signal von IC10/Pin12 über die Diode D10
weiter an PE0 des Controllers.
D5 sollte auch noch erwähnt werden: Diese Fotodiode ändert in Abhängigkeit von der Helligkeit ihren Widerstand und gemeinsam mit R20 entsteht eine zur Helligkeit proportionale Gleichspannung, die am Controller-Eingang PF0 gemessen wird. Mit dem ermittelten Wert steuert die Software des Anzeigemoduls die Helligkeit der Display-Beleuchtung.

Im unteren Teil des Hauptmodul-Schaltplans sind 3 umrahmte Schaltungsteile zu sehen. Es handelt sich hier um optionale Komponenten, die für den Betrieb des Anzeigemoduls nicht zwingend erforderlich sind:
Option | Bauteile | Funktion | Geschwindigkeit (Baud) |
---|---|---|---|
RS-232 | K4 | PC-Kommunikation über 9-poliges Standard RS-232-Kabel, Software-Update über Bootloader möglich | 9600, 19200, 38400, 57600, 115200 |
USB | R26-R27, C28-C31, D11, IC12, K5 | PC-Kommunikation über USB-Kabel (virtueller COM-Port), Software-Update über Bootloader möglich | 9600, 19200, 38400, 57600, 115200, 230400, 460800 |
Bluetooth | R28-R30, D12, T4, IC13 | drahtlose PC-Kommunikation über Bluetooth (virtueller COM-Port) | 115200 |
Alle Optionen dienen zur Kommunikation mit einem PC und ermöglichen die Übertragung der gespeicherten Sensordaten. Man kann sich beim Aufbau des Anzeigemoduls für eine oder mehrere Optionen entscheiden - die Schaltung ist so ausgelegt, dass die Optionen beliebig kombiniert werden können. Dazu wird der vom Mikrocontroller ausgehende serielle Datenstrom (TXD) vom Anschluss PE1 (Pin3) gleichzeitig an alle Optionen (jeweils an RXD) gesendet. Umgekehrt werden die von den Optionen eingehenden Daten von den jeweiligen TXD-Anschlüssen über eine einfache OR-Schaltung (R25, D10-D12) zusammengefasst und zum RXD des Mikrocontrollers an Anschluss PE0 (Pin2) weitergeleitet. Somit können alle Optionen ohne Umschaltung verwendet werden, allerdings darf immer nur eine aktiv sein.
RS-232: Für diese Option ist nur die 9-polige D-Sub-Buchse K4 notwendig. Es werden zwei Treiber des bereits vorhandenen MAX232 (IC10) verwendet. Die Verbindung zum PC erfolgt über ein serielles 9-poliges Kabel mit 1:1 Beschaltung. Auf diese Option kann man heute eigentlich verzichten, da zum einen immer weniger PCs eine solche Schnittstelle besitzen und zum anderen der vergleichsweise große Steckverbinder K4 das Gehäuse nicht unbedingt verschönert.USB: Diese Option erfordert etwas mehr Aufwand und außerdem ein IC, welches nur in SMD Bauform erhältlich ist (IC12). Dafür kann das Anzeigemodul praktisch mit jedem PC über ein Standard-USB-Kabel verbunden werden. Anstatt der vielleicht nicht mehr ganz zeitgemäßen USB-B-Buchse K5 kann man natürlich auch USB-Mini-B oder USB-Micro-B verwenden (andere Anschlussbelegung beachten). Wer den kniffligen Aufbau mit Einzelbauteilen scheut, kann alternativ ein fertiges USB-Modul einsetzen, z.B. ELV 091859. In diesem Fall hat man alle nötigen Anschlüsse auf einem handlichen Steckverbinder und die USB-Buchse ist auch schon montiert. Beim ELV-Modul wird zwar ein anderes USB-IC verwendet, was auch einen anderen Treiber auf dem PC erfordert, aber das spielt für die Funktion keine Rolle.
Bluetooth: Für diese Option habe ich ein fertiges Modul verwendet, welches ich eher zufällig bei ebay fand. Es hat leider keine genaue Typenbezeichnung, stammt vermutlich aus Fernost und wird als Zusatzmodul für ein Arduino-Projekt verkauft (Arduino self balancing robot). Dieses Modul verwendet den Chip BC417143B von der Firma csr und es sind Versionen mit unterschiedlicher Geschwindigkeit verfügbar: 9600 bps und 115200 bps. Mit dem Suchbegriff bluetooth module 115200 kommt man bei ebay direkt ans Ziel. Leider weiß man nie, wie lange so ein Angebot verfügbar ist. Während der Entwicklung des Anzeigemoduls 2a und dem Erstellen dieses Textes vom Februar bis Juni 2012 wurde es jedenfalls kontinuierlich für 14,90€ (inklusive Versand) angeboten.Das Bluetooth-Modul verfügt über nur 4 Anschlüsse: VCC, Masse, TXD und RXD - viel mehr wird auch nicht benötigt. Auf dem Modul befindet sich bereits ein Spannungsregler für 3,3V, so dass man sich nicht um eine Anpassung der Spannung kümmern muss. Auch die Datenleitungen TXD und RXD sollen nach Informationen des Händlers 5V-tolerant sein, trotzdem habe ich zur Sicherheit noch R29 in die RXD-Leitung eingefügt. TXD liefert nur 3,3V und damit der Ausgang nicht gegen 5V ankämpfen muss, wird mit R30 der maximale Pegel auf der TXD-Sammelleitung auf ca. 3,65V reduziert. Damit das Bluetooth-Modul nicht rund um die Uhr aktiv ist (prinzipbedingt ist es ständig sichtbar), kann es vom Controller über den MOSFET T4 in einem einstellbaren Zeitraum abgeschaltet werden. Die Modul-Abschaltung über die Masseleitung ist vielleicht etwas ungewöhnlich, muss aber sein, damit im abgeschalteten Zustand die TXD/RXD-Leitungen nicht blockiert werden, welche im Ruhezustand auf High-Potenzial liegen.

Im Schaltplan des Hauptmoduls sind bei der Bluetooth-Option 5 Schaltpunkte eingezeichnet. Diese entsprechen den auf der linken Seite der nebenstehenden Schaltung angedeuteten Schaltpunkten und müssen entsprechend verbunden werden. Die Bauteile der originalen Bluetooth-Option (R28-R30, D12, T4 und IC13) entfallen und werden durch die alternative Option ersetzt.
Das BlueNiceCom III (IC102) benötigt eine Spannung von 3,3V, die mittels IC101 bereitgestellt wird. Mit R105 und C103 wird ein Reset-Signal für das Bluetooth-Modul erzeugt. Die Bauteile R101, D102 und D103 bilden eine Schutzschaltung für den RXD-Anschluss und verhindern, dass dieser Eingang mit Spannungen unter 0V und über 3,3V belastet wird. Der Ausgang TXD besitzt mit D101 und R102 die gleiche Schutzmaßnahme wie das originale Bluetooth-Modul. Auch das BlueNiceCOM III lässt sich über T101 vom Mikrocontroller ein- oder ausschalten. Interessant ist hier die Möglichkeit, den Bluetooth-Status direkt über die LED D104 anzuzeigen. Diese LED kann als Ersatz für D3 im Hauptmodul verwendet werden.Hinweis: Leider ist das BlueNiceCOM III auch schon wieder veraltet und wurde durch das BlueNiceCOM IV ersetzt. Dieses Modul habe ich allerdings nicht getestet.
Das Anzeigemodul 2a wurde komplett auf einer Lochrasterplatine im Euro-Format (160mm x 100mm) aufgebaut. Im linken Teil befindet sich der ATmega128 (IC1), den ich in Form eines Header Boards
verwendet habe. So kommt man nicht direkt mit dem SMD-Bauteil in Berührung und die steckbaren Anschlüsse passen perfekt ins Lochraster der Platine. Das hier verwendete Board enthält nur IC1,
alle anderen zu IC1 gehörenden Bauteile wie Q1, C1-C6, R1 und R2 sind komplett unterhalb des Header Boards versteckt.
Rechts neben dem Controller ist die aus IC3-IC6 bestehende EEPROM-Bank untergebracht, direkt darüber befindet sich die Tonerzeugung mit IC7 und der Mini-Lautsprecher Ls1. Gleich daneben kommt die vergleichsweise große Batterie und der Anschluss K1. Unterhalb des Lautsprechers befinden sich alle zur Echtzeituhr gehörenden Bauteile, u.a. auch der Trimmkondensator C19, mit dem die Frequenz des Uhren-Oszillators abgeglichen wird. Darunter finden noch der RS-232-Pegelwandler IC10, der zusätzliche Spannungsinverter IC201 mit R203 zum Abgleich und der 20-polige Pfostenstecker für das Display Platz. Der mit einem Kühlkörper versehene 5V-Schaltregler und die nötige Außenbeschaltung wurde rechts am unteren Platinenrand untergebracht.
Unter dem Controller wurde das Bluetooth-Modul IC13 platziert. Es ist rechts in eine 4-polige Buchsenleiste eingesteckt und schwebt etwas erhöht über der Platine. Unterhalb des Bluetooth-Moduls ist die knifflige USB-Option zu sehen, links am Platinenrand wird später eine 4-polige Stiftleiste angesteckt, die zur USB-Buchse führt. Rechts neben der USB-Schaltung sind die restlichen Bauteile der Bluetooth-Option und T1 für die Display-Beleuchtung untergebracht. An den 14-poligen Pfostenstecker ganz unten wird später ein Kabel angesteckt, welches die Verbindung zu den Bedienelementen S1-S3, den LEDs D1-D3 und der Fotodiode D5 herstellt.
Auf diesem Bild ist noch einmal die gleiche Platine aus einer anderen Perspektive dargestellt. Hier sieht man das erhöht angebrachte Bluetooth-Modul, damit die Antenne möglichst weit von
metallischen Gegenständen entfernt ist. Das Bluetooth-Modul wird übrigens ohne irgendwelche Informationen geliefert. Glücklicherweise sind die wenigen Anschlüsse auf der Platinenunterseite
deutlich beschriftet.
Dieses Bild zeigt die Platine von unten. Wie bei fast allen Schaltungen auf Lochraster sieht das auch hier nicht besonders schön aus. Man erkennt am Drahtverhau deutlich den Mikrocontroller
auf der rechten Seite und zwei relativ dicke Bündel zu den Steckverbindern des Displays und der Bedienelemente. Stromführende Leitungen wurden mit 0,5mm Draht verlegt, alles andere mit
Kupferlackdraht.

Über das Loch oben rechts wird später das 4-adrige Anschlusskabel für die Stromversorgung und die Verbindung zum Sensormodul in das Gehäuse geführt. Links oben wurden 2 Plastik-Befestigungen
für die DCF77-Antenne eingeklebt, die leider ungenutzt bleiben. Wie schon erwähnt, wird der DCF77-Empfänger wegen starker Störungen extern betrieben. Damit kein zusätzliches Kabel für den
Empfänger verlegt werden musste, wurde für die DCF77-Datenleitung einfach der nicht genutzte Anschluss 4 von K1 umfunktioniert. Der Strom für den Empfänger wird aus den +12V gewonnen, die
auch das Anzeigemodul versorgen.

Die USB-Buchse K5 und der Reset-Taster S3 wurden direkt in entsprechend geschnittene Aussparungen auf der Unterseite des Gehäuses eingeklebt. Während S3 über ein kurzes Kabel direkt mit der Trägerplatine verbunden ist, wird das USB-Kabel separat über eine 4-adrige Leitung an die Hauptplatine geführt.
Über die links und rechts sichtbare M3-Schraube, die ebenfalls eingeklebt wurde, wird später das Display befestigt. Weiter oben (auf dem Bild nicht sichtbar) befinden sich 2 weitere Schrauben, so dass das Display an insgesamt 4 Stellen gehalten wird.
So sieht das fertig montierte Gerät aus. Wichtig ist, dass die beiden Hauptbedienelemente unterhalb des Displays angeordnet werden: der Drehimpulsgeber S1 rechts und der Taster S2 links.
Beide haben eine wechselnde Funktionalität, die in Verbindung mit der untersten Textzeile des Displays steht. Im Abschnitt Bedienung wird noch genauer darauf
eingegangen.
Übrigens, das hier verwendete Display war ursprünglich mit einer CCFL-Beleuchtung ausgestattet und wurde zur LED-Beleuchtung umgebaut. Ganz perfekt ist es noch nicht - der obere Displayteil wirkt heller als der untere.
An der unteren Gehäuseseite (hier nicht sichtbar) befindet sich links die USB-Buchse und rechts der Reset-Taster. An dieser Stelle fallen beide Elemente nicht direkt ins Auge, sind aber
trotzdem noch gut zugänglich. Einen RS-232-Anschluss gibt es an diesem Modul übrigens nicht, in der Praxis hat sich die drahtlose Verbindung über Bluetooth bewährt.
Die Software des Anzeigemoduls 2a ist relativ komplex. Der Assembler-Quelltext des vorherigen Anzeigemoduls 2 bestand bereits in seiner letzten Version aus über 21000 Zeilen und ist bei der Anpassung an das Anzeigemodul 2a noch einmal um gut 4000 Zeilen angewachsen. Hier ist jetzt auch eine Grenze erreicht: der Code ist kaum noch überschaubar und auch einige Ressourcen des ATmega128 sind weitgehend ausgeschöpft, z.B. das RAM.
Das Softwarepaket für das Anzeigemodul 2a besteht aus den folgenden 4 Dateien:
- Anzeigemodul2a.asm - enthält den kompletten Programmcode in Assembler
- Anzeigemodul2a-eng.asm - enthält alle Texte in englischer Sprache
- Anzeigemodul2a-deu.asm - enthält alle Texte in deutscher Sprache
- Anzeigemodul2a.hex - enthält das fertig assemblierte Programm für den ATmega128
Für den Nachbau des Anzeigemoduls 2a ist nur die Datei Anzeigemodul2a.hex wichtig. Diese wird nach dem Aufbau der Hardware mit einem Programmiergerät in den Mikrocontroller IC1 (ATmega128) geschrieben und anschließend kann das Modul verwendet werden.
Die Dateien 1 - 3 sind für experimentierfreudige Bastler und Programmierer interessant. Hier lässt sich die Funktionalität des Anzeigemoduls ändern und an eigene Bedürfnisse anpassen. Allerdings sind hier gute Vorkenntnisse in AVR-Assembler notwendig, denn die Software ist wirklich sehr komplex. Ich habe übrigens für die Entwicklung der Software das AVR-Studio 4.19 verwendet. Das AVR-Studio 5.1 eignet sich grundsätzlich auch sehr gut zur Entwicklung, allerdings traten bei der Assemblierung gelegentlich Hänger auf, was die Freude etwas trübte. Nach Abschluss der Software-Entwicklung im Mai 2012 habe ich noch kurz das aktuelle AVR-Studio 6.0 angetestet - funktioniert ebenfalls, lässt sich aber viel Zeit beim Assemblieren.Übrigens, der Programmcode stammt vom Anzeigemodul 2 und wurde in 3 Etappen entwickelt. Ende 2005 erschien die Version 1.0, zunächst mit einer reinen Textanzeige für maximal 16 Temperatursensoren. Mitte 2006 folgte mit der Version 2.0 ein relativ großes Update und dieses machte die grafische Anzeige alle gespeicherten Sensordaten möglich, allerdings immer noch für nur 16 Temperatursensoren. Mit der Erweiterung des gesamten Temperaturmesssystems auf insgesamt 31 Sensoren wurde nun das Anzeigemodul 2a mit der Software-Version 3.0 entwickelt, welches mit allen vom Sensormodul 2 oder 3 gelieferten Daten umgehen kann. Als Folge dieser Entwicklung findet man im Quelltext eine unterschiedliche Textformatierung vor. Ältere Programmteile verwenden meist mit Tabulatoren, die neuen fast immer Leerzeichen. Eine komplette Überarbeitung war mir zu aufwändig und wenn man in der Editor-Konfiguration des AVR-Studios die Tabulatorbreite auf 8 Zeichen stellt, ergibt sich ein einheitliches Bild.
Der Programmcode selbst besteht aus mehreren Blöcken, welche wiederum verschiedene Teilaufgaben erledigen:
- Initialisierung
- I/O-Ports, Analog-Digital-Wandler, I2C initialisieren
- Sende/Empfangspuffer der seriellen Schnittstellen initialisieren
- Display einschalten und initialisieren
- Einstellungen aus dem internen EEPROM laden (Sensor-Konfiguration, Alarm-Konfiguration, Signal-Konfiguration, Schaltzeiten und diverse andere Daten)
- Kommunikation mit der Echtzeituhr prüfen
- Kommunikation mit den 4 EEPROMs prüfen
- Pointer für 15min-Werte, Tageswerte und Meldungen prüfen und gegebenenfalls neu suchen
- Serielle Schnittstellen und Timer initialisieren
- Backup der Tagesdaten prüfen und Tagesdaten wiederherstellen
- Einige Variablen und Werte voreinstellen
- Hauptprogrammschleife
- Anzeigesteuerung
- Basisanzeige neu ausgeben (falls erforderlich)
- Infozeile neu ausgeben (obere Zeile, falls erforderlich)
- Menüzeile neu ausgeben (untere Zeile, falls erforderlich)
- Gegebenenfalls weitere Anzeigedaten ausgeben (Sensorwerte, Alarme)
- Bei Benutzereingriff: gewünschte Informationen oder Konfigurations-Menüs anzeigen
- Datenempfang vom Sensormodul steuern
- Empfangene Zeichen aus Empfangspuffer holen und prüfen
- Datensatztyp ermitteln und Plausibilität prüfen
- Temperaturdaten auf Über- oder Unterschreitung prüfen und speichern
- Minimal-, Maximal- und Mittelwert korrigieren
- Alarmmeldungen prüfen und gegebenenfalls Signal ausgeben
- Empfangs-Timeoutzähler neu setzen
- Datenkommunikation mit dem PC steuern
- Empfangene Zeichen aus Empfangspuffer holen und prüfen
- Kommandotyp ermitteln und Plausibilität prüfen
- Daten entsprechend Kommandotyp suchen und senden (ein Datensatz bei jedem Hauptschleifendurchlauf)
- DCF77-Empfang auswerten
- Minutenwechsel erkennen und empfangene Datenbits auf Plausibilität prüfen
- Kopieren der Zeitinformationen in einen 2-stufigen Zwischenspeicher
- Vergleich der Zeitinformationen mit den beiden vorherigen Minuten
- Bei korrektem Zeitempfang Controller-Uhr synchronisieren
- Verschiedene Zeitabhängige Vorgänge steuern
- Timeout-Zähler für den Empfang von Temperaturdaten und Alarmmeldungen prüfen und gegebenenfalls Alarm auslösen
- Weitere Timeout-Zähler prüfen (DCF77-Empfang, Menü-Rückkehr, Display-Abschaltung, zyklische Fehleranzeige)
- Optische und akustische Signalisierung steuern
- Schaltzeiten steuern (Lautstärke, Display, Bluetooth, Reset Min/Max-Werte)
- Zur Minute 0, 15, 30 und 45: Sensorwerte im EEPROM speichern
- Zur Minute 14, 29, 44 und 59: Backup der Tagesdaten anlegen
- Zur Minute 1, 16, 31 und 46: Daten für die grafische Luftdruckanzeige generieren
- Zum Zeitpunkt 23:59 Uhr: Tageswerte im EEPROM speichern
- Menüsteuerung
- Erkennen einer Änderung des Drehimpulsgebers S1 und Ermitteln der Schritte
- Erkennen eines Tastendrucks von S1 und S2
- Steuerung der Menüführung in Abhängigkeit von S1 und S2
- Aktionen in Abhängigkeit von S1 und S2 ausführen
- Anzeigesteuerung
- Verschiedene Unterprogramme
- Routinen für Ein/Ausgabe (Display, EEPROM, I²C), Konvertierungen, Grafik-Ausgabe
- Interrupt-Routinen
- Timer/Counter1 Compare Match A - wird alle 625µs ausgeführt (1600Hz)
- Lesen und Entprellen des Drehimpulsgebers S1 und Ermitteln der Position
- Alle 20ms: Lesen des DCF77-Eingangs, Ermitteln der Impulslänge und Speichern eines 0- oder 1-Bits
- Alle 1s: Steuern der Controller-Uhr
- Timer/Counter3 Compare Match A - wird alle 20ms ausgeführt (50Hz)
- Lesen und Entprellen der Taster S1 und S2
- Steuern der Display-Beleuchtung (weiches Ein- und Ausblenden)
- Erzeugen der LED-Blinksignale von D1 und D2
- Steuern der Tonausgabe
- Alle 1s: Lesen des AD-Wandlers (Referenzspannung, Lichtsensor, Batteriespannung)
- Alle 1s: Bearbeiten aller Timeoutzähler
- USART0 Data Register Empty - wird ausgeführt, wenn das nächste Byte zum PC gesendet werden kann
- USART0, Rx Complete - wird ausgeführt, wenn ein Byte vom PC empfangen wurde
- USART1, Rx Complete - wird ausgeführt, wenn ein Byte vom Sensormodul empfangen wurde
- Timer/Counter1 Compare Match A - wird alle 625µs ausgeführt (1600Hz)
- Datenbereich
- Standard-Zeichensatz - Proportional-Zeichensatz mit einer Höhe von 11 Pixeln; enthält Umlaute, Sonderzeichen und Fragmente für die Großziffern
- Mini-Zeichensatz - Proportional-Zeichensatz mit einer Höhe von 5 Pixeln; enthält Umlaute und Sonderzeichen (für Grafikanzeige)
- Umlaut-Konvertierungs-Tabelle - für Datenübertragung zum PC
- Sound-Tabelle - enthält 16 vordefinierte Tonsignale
- Kommando-Liste für die PC-Kommunikation
- Menü-Tabellen - besteht aus einer Index-Tabelle mit den Adressen aller Untermenüs und den Untermenü-Struktur-Definitionen
- Default-Konfiguration - enthält eine Voreinstellung für die Inbetriebnahme des Anzeigemoduls
Ich möchte hier nicht auf weitere Details eingehen. Im Quelltext sind viele Kommentare enthalten, die das Programm (hoffentlich) etwas verständlicher machen.
Interessant ist an dieser Stelle noch die Speicherverwaltung des Anzeigemoduls 2a. Insgesamt sind 3 Datenspeicher vorhanden, die für unterschiedliche Zwecke verwendet werden:
Speicherbereich | IC | Größe | Funktion | Bemerkung |
---|---|---|---|---|
Internes EEPROM (ATmega128) | IC1 | 4 kB | Konfigurationsspeicher | In diesem Speicher ist die aktuelle Konfiguration des Anzeigemoduls abgelegt und diese wird bei jedem Systemstart automatisch geladen (Sensoreinstellungen, Alarmeinstellungen, Log-Einstellungen, Signaleinstellungen, Schaltzeiten, Grafik-Presets und weitere Einstellungen). |
Externes EEPROM (4x 24C512) | IC3-IC6 | 256 kB | Log-Daten-Speicher | Dieser Speicher ist in mehrere Bereiche aufgeteilt und hier werden zyklisch alle Sensordaten gespeichert sowie Alarmmeldungen und ein Konfigurations-Backup abgelegt. |
Bereich 1: Aktuelle Werte aller Sensoren, werden immer zur Minute 0, 15, 30 und 45 gespeichert, enthält 3855 Datensätze (über 40 Tage). | ||||
Bereich 2: Tageswerte (Minimum, Maximum, Mittel) aller Sensoren, werden immer um 23:59 Uhr gespeichert, enthält 416 Datensätze (416 Tage). | ||||
Bereich 3: Meldungen - Aufgetretene Fehler, Alarme und Temperaturabweichungen, enthält 500 Datensätze. | ||||
Bereich 4: Konfigurations-Backup, kann bei Bedarf als Kopie des Konfigurationsspeichers erstellt und jederzeit zur Wiederherstellung verwendet werden. | ||||
Echtzeituhr-RAM (PCF8583) | IC9 | 240 Byte | Pointer, Tageswerte | Dieser Speicher ist in 2 Bereiche aufgeteilt und dient zur Aufbewahrung von 3 Datensatz-Pointern und zur zyklischen Sicherung der Tagesdaten. |
Bereich 1: 3 Pointer - zeigen auf den jeweils aktuellen Datensatz im Bereich 1-3 des Log-Daten-Speichers. | ||||
Bereich 2: Backup der Tageswerte aller Sensoren, werden immer zur Minute 14, 29, 44 und 59 gespeichert und nach einem Systemstart wieder geladen. |
Noch einige Informationen zur Speichernutzung: Damit alle Sensordaten in 4 ICs mit jeweils 64kB Speicherkapazität Platz finden, werden sie in komprimierter Form abgelegt. Die Temperatur- und Luftdruckwerte werden dazu in einen 12-Bit Binärwert umgewandelt und jeweils zwei dieser Werte belegen dann 3 Byte im externen EEPROM. Die Luftfeuchtigkeitswerte finden jeweils in einem Byte Platz und für die Batteriespannung sind nochmals 2 Byte vorgesehen. Insgesamt werden 47 Bytes für alle Sensordaten benötigt, hierzu kommen noch weitere 4 Bytes, die einen Zeitstempel enthalten (zweistelliges Jahr, Monat, Stunde und Minute). Die Meldungsdaten sind ebenfalls komprimiert und bestehen aus einem 7 Byte großen Datensatz: gleicher Zeitstempel wie oben, zusätzlich ein Byte für den Sekundenwert und 2 Bytes für den Meldungscode und die Sensornummer.
Jeder Log-Daten-Bereich des externen EEPROMs wird „ringförmig“ beschrieben, um eine möglichst lange Lebensdauer zu erreichen, d.h. neue Daten werden immer an die nächste Position geschrieben und wenn das Ende erreicht ist, wird wieder von vorn begonnen und der älteste Datensatz überschrieben. Die jeweils aktuelle Position (Pointer) wird zur Sicherheit im RAM-Speicher der Echtzeituhr aufbewahrt. So ist auch bei einem Netzausfall gewährleistet, dass neue Log-Daten immer an die richtige Stelle geschrieben werden.Der Speicher der Echtzeituhr ist als Batterie-gepuffertes RAM realisiert und speichert neben den bereits erwähnten Pointern zyklisch alle 15 Minuten die aktuellen Minimal-, Maximal- und Mittelwerte des Tages. Somit gehen die Tagesdaten bei einem Netzausfall oder Software-Update nicht verloren und werden bei einem Neustart automatisch wieder geladen (sofern sie tagesaktuell sind).
Noch einige Informationen zur Echtzeituhr: Diese wird im Normalbetrieb mit 5V oder bei Netzausfall von einer Batterie mit 3V versorgt. Der ATmega128 bietet zwar auch so eine Funktionalität, allerdings würde hier bei jedem Reset und bei jedem Software Update (und davon hatte ich während der Software-Entwicklung reichlich) die Zeit verloren gehen. Aus diesem Grund habe ich mich für eine externe Uhr entschieden. Unabhängig davon benutzt der Controller intern trotzdem eine eigene Software-Uhr, damit nicht jedes Mal, wenn die Zeit benötigt wird, ein I²C-Transfer erforderlich ist. Außerdem ist die DCF77-Synchronisation so etwas einfacher. Um den Gleichlauf von interner und externer Uhr zu gewährleisten, werden diese nach folgendem Prinzip stündlich synchronisiert: Wurde in der vergangenen Stunde eine verwertbare DCF77-Zeit empfangen, dann wird die RTC neu gesetzt; falls nicht, dann wird die RTC gelesen und damit die interne Uhr gesetzt.
Für die Inbetriebnahme des Anzeigemoduls 2a wird die aktuelle Software v3.001 vom 23.07.2012 für den ATmega128 benötigt. In diesem Paket befindet sich der komplette kommentierte Quelltext in Assembler (bestehend aus 3 Dateien) und das fertig assemblierte HEX-File. Im einfachsten Fall nimmt man einfach den Programmieradapter seiner Wahl und schreibt das HEX-File über den ISP-Anschluss K2 direkt in den Mikrocontroller. Diese Möglichkeit sollte man bei der ersten Inbetriebnahme des Moduls wählen, damit man sofort alle Funktionen überprüfen kann. Falls man das Anzeigemodul ohne die RS-232- oder USB-Option aufbauen möchte, dann bleibt das auch zukünftig die einzige Möglichkeit für ein Update der Software. In diesem Fall muss man allerdings das Gehäuse öffnen oder das Modul so aufbauen, dass der ISP-Anschluss K2 von außen zugänglich ist.
Die bessere Alternative ist, einen Bootloader in den Mikrocontroller zu programmieren und dann diesen für das Installieren der Software zu verwenden. Das ist natürlich nur dann sinnvoll, wenn die RS-232- und/oder die USB-Option vorhanden ist, denn der Bootloader kommuniziert nur über diese beiden Schnittstellen. Der große Vorteil des Bootloaders ist, dass man jederzeit die Software mit einem normalen RS-232- oder USB-Kabel aktualisieren kann.
Variante 1 - Direkte Installation
Bei Verwendung des AVR-Studios muss die Einstellung wie im linken Bild aussehen. Die beiden auf dem Bild nicht sichtbaren Fuse-Bits M103C und
WDTON sind ausgeschaltet (Haken raus).
EXTENDED = 0xFF
HIGH = 0x91
LOW = 0x3F

Wer mit PonyProg arbeitet, findet im nebenstehenden Bild die richtige Einstellung.

Bei dieser Variante erfolgt die Installation in 2 Schritten. Zunächst muss der Bootloader installiert werden und anschließend erfolgt die Installation der eigentlichen Anzeigemodul-Software über den Bootloader. Das ist zunächst mit einem höheren Aufwand verbunden, spätere Installationen sind dann aber wesentlich einfacher.
Der Bootloader ist eine zusätzliche Software, die einmalig in einem reservierten Bereich am Ende des Flash-Speichers installiert wird. Eine besondere Einstellung der Fuse-Bits bewirkt, dass sich der Bootloader nach einem Systemstart oder einem Reset immer zuerst aktiviert. Der Bootloader initialisiert dann die serielle Schnittstelle des Mikrocontrollers (in diesem Fall den UART0, welcher mit dem RS-232-Anschluss und dem USB-Chip verbunden ist) und wartet kurze Zeit auf eine bestimmte Zeichenfolge. Im normalen Betrieb bleibt diese Zeichenfolge aus und so wird anschließend die Anzeigemodul-Software auf Adresse 0 gestartet. Empfängt der Bootloader die erwartete Sequenz, dann bleibt er aktiv und wartet auf weitere Kommandos. Eines dieser Kommandos ist der Empfang eines HEX-Files und das Ablegen der Daten im Flash-Speicher, also die Installation einer Software. Nachdem die Übertragung erfolgreich abgeschlossen wurde, kann über ein weiteres Kommando der Bootloader beendet und die Software gestartet werden.So ein Bootloader hat zwar im Prinzip nicht viel zu tun, trotzdem steckt viel Arbeit in einem solchen Programm. Glücklicherweise haben sich bereits einige Experten damit beschäftigt, so dass ich auf ein fertiges Produkt zurückgreifen konnte. Der hier verwendete Bootloader hat sich bei der Tischuhr bereits bewährt und wurde von der Firma Chip45 entwickelt und kostenlos zur Verfügung gestellt. Auf der Homepage von Chip45 kann man ein Paket mit fertigen Bootloadern für viele AVR-Controller downloaden, die sich durch folgende Eigenschaften auszeichnen:
- Die Bootloader arbeiten weitgehend unabhängig von der verwendeten Taktfrequenz und erkennen selbstständig die richtige Geschwindigkeit beim Verbindungsaufbau.
- Die Bootloader arbeiten im reinen Textmodus und können damit Plattform-unabhängig mit einem Terminalprogramm bedient werden.
- Für Windows-Benutzer gibt es das komfortable Kommunikations-Programm chip45boot2 GUI.
Einen kleinen Nachteil möchte ich dennoch nicht verschweigen: Die Installation einer Software über den Bootloader dauert relativ lange. Damit kann man aber leben, zumal so ein Software-Update nicht all zu häufig durchgeführt werden muss.
Schritt 1 - Installation des Bootloaders: Die Installation des Bootloaders erfolgt in der gleichen Art und Weise wie die direkte Installation der Anzeigemodul-Software. Man benötigt wie bei der Variante 1 ein Programmiergerät (siehe auch AVR-Programmierung) und schließt dieses an den ISP (K2) an. Nur wird hier nicht die Software des Anzeigemoduls in den Mikrocontroller übertragen, sondern die Bootloader-Software. Der nachfolgende Link enthält die zum Zeitpunkt der Texterstellung aktuelle Version des Bootloaders: Bootloader ATmega128 UART0 v2.9k. Ich empfehle jedoch, die Homepage von Chip45 aufzusuchen und dort die aktuelle Version zu laden. Diese findet man unter chip45boot2 Bootloader (precompiled hexfiles) als ersten Eintrag in der Liste. Das Archiv enthält fertige HEX-Dateien für viele Mikrocontroller und wir benötigen die Datei chip45boot2_atmega128_uart0_vx.xx.hex (x.xx steht für die Versionsnummer). Wenn man mit Windows arbeitet, dann sollte man sich ebenfalls von der Seite unter chip45boot2 GUI PC/Windows Program noch die Kommunikations-Software laden. Diese ist nicht zwingend erforderlich, macht aber das Leben mit dem Bootloader viel leichter.Nach der Übertragung des Bootloaders in den Mikrocontroller müssen auch hier die Fuse-Bits angepasst werden. Diese unterscheiden sich von Variante 1 nur durch eine andere Einstellung der BOOT-Fuses. Diese setzen den Bootloader-Bereich auf die richtige Größe und aktivieren den Start des Bootloaders nach einem Reset.

Auch hier kann man bei der Verwendung anderer Programmier-Software die Werte der 3 Fusebit-Register direkt entnehmen:
EXTENDED = 0xFFHIGH = 0x94
LOW = 0x3F
Wer mit PonyProg arbeitet, findet im nebenstehenden Bild die richtige Einstellung.
Schritt 2 - Installation der Software über den Bootloader: Für diese Aktion muss eine Kabelverbindung zwischen dem Anzeigemodul 2a und dem PC hergestellt werden. Hier bieten sich je nach installierter Option 2 Möglichkeiten an: Bei der RS-232-Option wird an den Anschluss K4 ein Standard RS-232-Kabel angeschlossen und mit dem PC verbunden. Zeitgemäßer ist eine USB-Verbindung, hier wird ein USB-Kabel (A-Stecker auf B-Stecker) an K5 und den PC gesteckt, wobei auch ein USB-Hub zwischengeschaltet werden kann. Falls bisher noch kein USB-Gerät mit einem Chip aus der FT232-Serie angeschlossen war, installiert Windows beim Herstellen der USB-Verbindung einen Treiber oder verlangt einen solchen. Dieser kann von der FTDI Homepage geladen werden. Nach erfolgreicher Installation des Treibers findet man im Geräte-Manager von Windows einen USB Serial Port und dahinter in Klammern die zugewiesene COM-Schnittstelle, die man sich notieren sollte.
Als nächstes müssen wir eine Verbindung zum Bootloader des Anzeigemoduls herstellen. Obwohl bei dem hier verwendeten Bootloader ein Terminalprogramm auf dem PC genügen würde, empfehle ich die Nutzung des vom Hersteller angebotenen GUI-Programms. Es steht auf der bereits erwähnten Chip45 Homepage als Datei chip45boot2 GUI V1.12 (oder neuer) zum Download zur Verfügung.
Nach der Installation des Paketes und dem Start des Programms zeigt sich dieses Bild. Im Prinzip erklärt sich alles von selbst: Auf der linken Seite wird der COM-Port eingestellt, welcher
dem USB-Anschluss des Anzeigemoduls zugeordnet wurde (in meinem Fall COM7). Gleich daneben wird die Baudrate ausgewählt und hier kann man die höchste Geschwindigkeit 230400 nehmen. Weiterhin
muss das Programm noch wissen, welche Datei zum Anzeigemodul gesendet werden soll und diese lässt sich über den Button Select Flash Hexfile bequem auswählen.
Es kann durchaus passieren, dass der Verbindungsaufbau nicht beim ersten Versuch klappt. In diesem Fall kann man diese Prozedur einfach wiederholen. Falls sich hier auch nach mehreren
Versuchen kein Erfolg einstellt, dann arbeitet vermutlich die RS-232- oder USB-Option fehlerhaft und man sollte die Software auf dem direkten Weg über den ISP-Anschluss K2 installieren.

Zum Abschluss der Installation wird nun auf den Button Start Application geklickt und dann sollte nach einer kurzen Verzögerung die Software des Anzeigemoduls starten. Die Verbindung zum Bootloader wird dabei wieder getrennt und das Kabel (RS-232 oder USB) kann entfernt werden.
Der Bootloader bleibt selbstverständlich auch weiterhin im Mikrocontroller gespeichert und wird nur bei einem Reset oder Systemstart wieder aktiv. Hier wartet er ungefähr 2 Sekunden auf eine bestimmte Zeichenfolge vom GUI-Programm und baut entweder eine Verbindung zum GUI-Programm auf oder startet beim Ausbleiben der Zeichenfolge die normale Software des Anzeigemoduls 2a. Somit ist künftig bei einem Software-Update nur noch der soeben beschriebene Schritt 2 und ein RS-232- bzw. USB-Kabel erforderlich.
Nach dem kompletten Aufbau der Hardware und der Installation der Software ist das Anzeigemodul 2a grundsätzlich funktionsfähig. Die Anzeige des Moduls sollte dann ähnlich wie im
nebenstehenden Bild aussehen. Vermutlich werden in der oberen Zeile einige Fehlermeldungen angezeigt, aber das ist beim ersten Start vollkommen normal. Im Abschnitt
Fehlermeldungen sind alle Fehler beschrieben und Hinweise zur Beseitigung zu finden. Einige der Fehler werden während der Konfiguration wahrscheinlich von selbst
verschwinden.
Zunächst sind aber noch einige Einstellungen an der Hardware erforderlich:
Bauteil | Funktion | Einstellung | |
---|---|---|---|
R11 bzw. R203 | LCD-Kontrastspannung | Einstellung auf besten Display-Kontrast | |
C19 | Taktfrequenz der Echtzeituhr | Einstellung mit Frequenzzähler am Messpunkt IC9/Pin7 und R22 auf 1,0Hz oder 1,0s | |
S4.1 (1-2) | Typ des Drehimpulsgebers | offen | Der verwendete Drehimpulsgeber arbeitet mit 2 Zustandsänderungen pro Drehschritt. |
geschlossen | Der verwendete Drehimpulsgeber arbeitet mit 4 Zustandsänderungen pro Drehschritt. | ||
S4.2 (3-4) | Richtung des Drehimpulsgebers | offen | Rechtsdrehung des Drehimpulsgebers bewegt Menüs nach rechts und vergrößert Werte. |
geschlossen | Rechtsdrehung des Drehimpulsgebers bewegt Menüs nach links und verkleinert Werte. |
Hinweis zur Einstellung der Taktfrequenz: Hier wird der Taktoszillator der Echtzeituhr auf genau 32768Hz abgeglichen. Da man nicht direkt am Oszillator messen kann, gibt es einen Messausgang am Anschluss 7 von IC9, welcher mit dem Pull-up-Widerstand R22 beschaltet ist. An diesem Punkt kann man direkt einen Frequenzzähler anschließen und mittels Trimmerkondensator C19 die Frequenz auf 1,0Hz oder die Periodendauer auf 1,0s einstellen. Hat man ein solches Messgerät nicht zur Verfügung, dann muss man die Uhrzeit über das entsprechende Konfigurations-Menü manuell einstellen und die Ganggenauigkeit über einen längeren Zeitraum beobachten. Dabei muss die Uhr wirklich frei laufen, es darf also kein DCF77-Empfänger angeschlossen werden. Nun muss man täglich die Zeit kontrollieren und mit C19 feinfühlig nachkorrigieren, wobei man zunächst die richtige Drehrichtung herausfinden muss. Man muss es an dieser Stelle aber nicht übertreiben - wenn die Uhr ± 3 Sekunden pro Tag falsch läuft, dann ist das nicht kritisch, denn sie wird später über das DCF77-Signal mindestens einmal am Tag korrigiert.
Hinweis zum Drehimpulsgeber: Es gibt 2 unterschiedliche Typen von Drehimpulsgebern, die sich in der Anzahl der ausgegebenen Zustandsänderungen bei jedem Drehschritt unterscheiden. Der von mir verwendete STEC12E08 gibt beispielsweise 4 Änderungen pro Drehschritt aus. In diesem Fall muss also der Schalter S4.1 geschlossen sein. Bei dem im älteren Anzeigemodul 2 benutzten Typ EVQWTA-S20-15B sind es beispielsweise nur 2 Zustandsänderungen pro Drehschritt. Falls man einen solchen Impulsgeber verwendet, muss der Schalter S4.1 geöffnet sein.Mit dem Schalter S4.2 lässt sich bei Bedarf die Wirkrichtung des Drehimpulsgebers umkehren, d.h. eine Drehung des Gebers nach rechts bewirkt dann eine Veränderung nach links oder im Falle einer Wert-Eingabe die Verkleinerung des Wertes. Diese Funktion kann man nutzen, wenn der Drehimpulsgeber nicht rechts unterhalb des Displays angeordnet werden soll (aus welchen Gründen auch immer).
Wenn man einen unbekannten Drehimpulsgeber verwendet und man nicht sicher ist, welche Schalterstellung verwendet werden soll, dann kann man die richtige Einstellung auch durch Probieren ermitteln. Die beiden Schalter S4.1 und S4.2 kann man während des Betriebes umschalten und die geänderte Funktion wird sofort wirksam.
Ein wichtiger Hinweis vorweg: Die nachfolgende Prozedur gilt für das Update eines Anzeigemoduls 2a mit der Software-Version 3.xxx auf eine neuere Version. Bei einem Upgrade vom Anzeigemodul 2 auf das Anzeigemodul 2a kann diese Prozedur nicht angewendet werden. In diesem Fall ist immer eine Inbetriebnahme mit Neukonfiguration erforderlich.
Das Update eines bereits laufenden Anzeigemoduls 2a erfolgt ähnlich wie eine Neuinbetriebnahme, nur können hier einige Schritte weggelassen werden: Es ist sowohl ein Update über den ISP-Anschluss K2 (Variante 1) als auch ein Update über einen Bootlader möglich (Variante 2). Bei der Planung des Updates muss man bedenken, dass im Anzeigemodul zyklische Prozesse laufen, die u.a. für die Aufzeichnung der Sensordaten sorgen. Ein Update wird zwangsläufig das laufende Programm unterbrechen und kann im ungünstigsten Fall zum Verlust von Daten führen. Damit dies nicht passiert, folgt hier eine kurze Anleitung für einen Update-Vorgang ohne Datenverlust:
- Menü-Option Konfiguration - Backup - Konfiguration sichern ausführen
- Sicherheitsabfrage durch nochmaliges Drücken des Drehimpulsgebers bestätigen
- Warten bis zum nächsten Log-Intervall (Minute 0, 15, 30 oder 45)
- Neue Software programmieren (über ISP oder Bootloader)
Normalerweise sollte (sofern bei der Inbetriebnahme alles richtig gemacht wurde) nach der Installation der neuen Software das Anzeigemodul wieder normal anlaufen und die gewohnte Datenanzeige mit allen Sensor- und Alarmnamen sichtbar werden. Falls jedoch ein Konfigurations-Fehler gemeldet wird, dann sind vermutlich die Daten im EEPROM des Mikrocontrollers beschädigt oder gelöscht worden. Aber keine Panik! Dafür haben wir vorher ein Backup angelegt und mit der folgenden Handlung können die Daten wieder hergestellt werden:
- Menü-Option Konfiguration - Backup - Konfiguration laden/Neustart ausführen
- Sicherheitsabfrage durch nochmaliges Drücken des Drehimpulsgebers bestätigen
- Die gesicherte Konfiguration wird geladen und anschließend das Anzeigemodul neu gestartet
Damit ist das Update abgeschlossen.
Das Anzeigemodul 2a wird mit einem relativ großen grafischen Display betrieben, welches eine Auflösung von 240x128 Pixeln besitzt. Im Hauptbildschirm werden viele Daten in Textform angezeigt und obwohl das Display einen Textmodus mit eigenem Zeichensatz besitzt, betreibe ich es permanent im Grafikmodus. Das den Vorteil, dass man einen eigenen Zeichensatz in der benötigten Größe verwenden und die Schrift an beliebige Stellen schreiben kann. Anstatt der internen Zeichengröße von 8x8 bzw. 6x8 Pixel werden hier Zeichen mit 8x11 Pixel verwendet. Damit lassen sich sowohl saubere Umlaute als auch ordentliche Unterlängen darstellen. Ich bin sogar noch einen Schritt weiter gegangen und habe eine variable Zeichenbreite verwendet (Proportionalschrift), so dass man mehr Informationen auf eine Zeile bekommt und die Schrift insgesamt besser aussieht. Aber einen Nachteil will ich auch nicht verschweigen: die grafische Ausgabe erfordert die Übertragung recht großer Datenmengen an das Display und es wirkt dadurch etwas träge.
Da noch etwas Platz auf der Hauptanzeige übrig war, habe ich noch eine zusätzliche Großanzeige für einen Temperaturwert realisiert. Hier wird jede Ziffer aus 6 Blöcken zusammengesetzt, die jeweils aus einzelnen 8x11-Zeichen bestehen. Wegen des begrenzten Platzes erfolgt die Anzeige im Bereich von -9,9°C bis 99,9°C mit einer Auflösung von 0,1°, darüber hinaus ist die Großanzeige ganzzahlig.
Die Anzeige gliedert sich in 3 Bereiche: die Infozeile ganz oben, den eigentlichen Anzeigeteil in der Mitte und die Menüzeile ganz unten. Alle Bereiche sind gut sichtbar durch Linien
getrennt und diese Struktur ist in allen Menüs gleich.
Die Symbole oben rechts haben folgende Bedeutung:
![]() | Kein DCF-Empfang innerhalb der letzten 24 Stunden. |
![]() | Die Uhr wurde innerhalb der letzten 24 Stunden mit dem DCF-Signal synchronisiert. |
![]() | Die PC-Datenkommunikation ist aktiv. |
![]() | Das Bluetooth-Modul ist aktiviert (in Kombination mit den 3 oben stehenden Symbolen). |
![]() | Die akustische Signalisierung ist ausgeschaltet (stumm). |
![]() | Die akustische Signalisierung ist eingeschaltet. |
![]() | Status Abwesend: Lautsprecher, LEDs, Bluetooth und Display-Beleuchtung sind ausgeschaltet. |
Die Anzeige der Sensorwerte erfolgt auf 2 Seiten, zwischen denen jederzeit gewechselt werden kann. Damit man sofort sieht, welche Anzeigeseite gerade aktiv ist, fand sich mittig am rechten Rand gerade noch eine kleine Fläche für die Seitenanzeige:
![]() | Die Anzeigeseite 1 ist aktiv. |
![]() | Die Anzeigeseite 2 ist aktiv. |
Die untere Bildschirmzeile wird komplett für die Menüsteuerung verwendet. Dabei bildet die linke Hälfte zusammen mit dem Taster S2 sowie die rechte Hälfte zusammen mit dem Drehimpulsgeber/Taster S1 eine Softkey-Funktion. Das bedeutet, dass die jeweils auf der Zeilenhälfte angezeigte Option ausgeführt wird, wenn man den zugehörigen Taster drückt. Ganz rechts sind zusätzlich noch zwei Dreiecke zu sehen, diese zeigen an, ob weitere Optionen in der entsprechenden Drehrichtung des Impulsgebers auswählbar sind:
![]() | Keine weiteren Optionen verfügbar. |
![]() | Weitere Optionen durch Rechtsdrehen des Impulsgebers verfügbar. |
![]() | Weitere Optionen durch Linksdrehen des Impulsgebers verfügbar. |
![]() | Weitere Optionen in beiden Drehrichtungen verfügbar. |
Ein Druck auf den Impulsgeber wählt immer die angezeigte Option aus. In einigen Fällen wird ein kurzer Quittungston ausgegeben. Das passiert immer dann, wenn die vorgenommenen Einstellungen dauerhaft im internen EEPROM des Controllers gespeichert werden. In Abhängigkeit von der zu speichernden Datenmenge erscheint außerdem kurzzeitig der Text - Bitte warten - in der Menüzeile.
Zusätzlich zum großen Display sind noch drei LEDs (Rot, Gelb und Blau) für die Signalisierung von Fehlern, Alarmen und anderen Zuständen vorgesehen. Die Bedeutung zeigt folgende Tabelle:
Fall | LED | Zustand | Bedeutung |
---|---|---|---|
1 | ![]() | leuchtet | Mindestens einer der folgenden Fehler ist aufgetreten, der Text wird in der Infozeile (oben) angezeigt:
|
2 | ![]() | blinkt mit 3Hz | Mindestens einer der 4 Alarme ist aktiv, die aktiven Alarme werden invertiert angezeigt. |
3 | ![]() | leuchtet und blinkt mit 3Hz abwechselnd | Fall 1 und 2 tritt gleichzeitig auf. |
4 | ![]() | blitzt alle 2s auf | Mindestens einer der 4 Alarme wurde ausgelöst, hat aber wieder den Normalzustand eingenommen. Die betroffenen Alarme werden unterstrichen angezeigt. Dieser Zustand wird nur dann signalisiert, wenn nicht gleichzeitig Fall 1-3 auftritt. |
5 | ![]() | leuchtet | Mindestens ein Sensor ist ausgefallen, hinter den betroffenen Sensorwerten steht ein Ausrufezeichen. |
6 | ![]() | blinkt mit 3Hz | Mindestens eine Über- oder Unterschreitung eines Temperaturgrenzwertes ist aktiv, die betroffenen Temperaturwerte werden invertiert angezeigt, zusätzlich zeigt ein Pfeil hinter dem Wert die Richtung an (nach oben = Überschreitung, nach unten = Unterschreitung). |
7 | ![]() | leuchtet und blinkt mit 3Hz abwechselnd | Fall 5 und 6 tritt gleichzeitig auf. |
8 | ![]() | blitzt alle 2s auf | Mindestens ein Temperaturgrenzwert wurde über- oder unterschritten, hat aber wieder den Normalwert erreicht. Die betroffenen Temperaturwerte werden unterstrichen angezeigt, zusätzlich zeigt ein Pfeil hinter dem Wert die Richtung an (nach oben = Überschreitung, nach unten = Unterschreitung). Dieser Zustand wird nur dann signalisiert, wenn nicht gleichzeitig Fall 5-7 auftritt. |
9 | ![]() | leuchtet | Die PC-Datenkommunikation ist aktiv. |
Noch etwas zur Signalisierung von Fehlern, Alarmen und Temperaturüberschreitungen: Grundsätzlich werden aktive Ereignisse durch eine invertierte Textdarstellung auf dem Display hervorgehoben. Bei Systemfehlern erfolgt diese Anzeige in der Infozeile oben links, bei Alarmen von den 4 Eingängen des Sensormoduls wird der entsprechende Alarmname invertiert und bei Temperaturalarmen werden sowohl der Sensorname als auch der Temperaturwert invertiert. Kehrt das Ereignis wieder in den Normalzustand zurück, so werden die entsprechenden Texte wieder normal angezeigt und zusätzlich unterstrichen. So wird man auf das aufgetretene Ereignis hingewiesen (Erinnerung).
Da nur maximal 16 Sensorwerte auf eine Anzeigeseite passen, müssen die möglichen 31 Sensorwerte auf 2 Anzeigeseiten verteilt werden. Wenn ein Sensoralarm auftritt, dann schaltet die Software automatisch auf die Seite um, auf der sich der betroffene Sensor befindet. So ist sichergestellt, dass ein Temperaturalarm sofort sichtbar ist. Treten weitere Temperaturalarme auf, dann wiederholt sich dieser Vorgang und so kann es vorkommen, dass sich auf beiden Anzeigeseiten aktive Alarme befinden. Bei der Rückkehr eines Temperaturalarms in den Normalzustand wird übrigens die Anzeigeseite nicht gewechselt.Wichtig für die Konfiguration des Anzeigemoduls ist die genaue Kenntnis aller Sensortypen und deren Besonderheiten. Insgesamt kann das Anzeigemodul 2a bis zu 31 Sensoren verwalten, dazu kommen noch 2 „virtuelle“ Sensoren. Das ergibt eine große Menge an Parametern, die auf mehrere Konfigurations-Menüs verteilt werden mussten. Damit man nicht den Überblick verliert, soll die nachfolgende Tabelle alle wichtigen Informationen über die Sensoren aufzeigen:
Sensornummer | Sensorkennung | Sensortyp | Die Konfiguration erfolgt in den folgenden Untermenüs: | Bemerkung | |||||
---|---|---|---|---|---|---|---|---|---|
Einstellungen 1 | Einstellungen 2 | Grenzwerte 1 | Grenzwerte 2 | Log-Zuordnung 1 | Log-Zuordnung 2 | ||||
S01 | T01 | Temperatur | ![]() | ![]() | ![]() | ||||
S02 | T02 | Temperatur | ![]() | ![]() | ![]() | ||||
S03 | T03 | Temperatur | ![]() | ![]() | ![]() | ||||
S04 | T04 | Temperatur | ![]() | ![]() | ![]() | ||||
S05 | T05 | Temperatur | ![]() | ![]() | ![]() | ||||
S06 | T06 | Temperatur | ![]() | ![]() | ![]() | ||||
S07 | T07 | Temperatur | ![]() | ![]() | ![]() | ||||
S08 | T08 | Temperatur | ![]() | ![]() | ![]() | ||||
S09 | T09 | Temperatur | ![]() | ![]() | ![]() | ||||
S10 | T10 | Temperatur | ![]() | ![]() | ![]() | ||||
S11 | T11 | Temperatur | ![]() | ![]() | ![]() | ||||
S12 | T12 | Temperatur | ![]() | ![]() | ![]() | ||||
S13 | T13 | Temperatur | ![]() | ![]() | ![]() | ||||
S14 | T14 | Temperatur | ![]() | ![]() | ![]() | ||||
S15 | T15 | Temperatur | ![]() | ![]() | ![]() | ||||
S16 | T16 | Temperatur | ![]() | ![]() | ![]() | ||||
S17 | T17 | Temperatur | ![]() | ![]() | ![]() | ||||
S18 | T18 | Temperatur | ![]() | ![]() | ![]() | ||||
S19 | T19 | Temperatur | ![]() | ![]() | ![]() | ||||
S20 | T20 | Temperatur | ![]() | ![]() | ![]() | ||||
S21 | T21 | Temperatur | ![]() | ![]() | ![]() | ||||
S22 | T22 | Temperatur | ![]() | ![]() | ![]() | ||||
S23 | T23 | Temperatur | ![]() | ![]() | ![]() | ||||
S24 | T24 | Temperatur | ![]() | ![]() | ![]() | ||||
S25 | T25 | Temperatur | ![]() | ![]() | ![]() |
Temperaturwert des Luftfeuchtigkeitssensors H01 | |||
S26 | T26 | Temperatur | ![]() | ![]() | ![]() |
Temperaturwert des Luftfeuchtigkeitssensors H02 | |||
S27 | T27 | Temperatur | ![]() | ![]() | ![]() |
Temperaturwert des Luftfeuchtigkeitssensors H03 | |||
S28 | P01 | Luftdruck | ![]() | ||||||
S29 | H01 | Luftfeuchtigkeit | ![]() | ![]() | verknüpft mit T25 | ||||
S30 | H02 | Luftfeuchtigkeit | ![]() | ![]() | verknüpft mit T26 | ||||
S31 | H03 | Luftfeuchtigkeit | ![]() | ![]() | verknüpft mit T27 | ||||
(S32) | P01 | Luftdruckverlauf | keine Konfiguration erforderlich, siehe nächste Tabelle | ||||||
(S32) | B01 | Batteriespannung | keine Konfiguration erforderlich, siehe nächste Tabelle |
Weitere Informationen zur Tabelle:
- Sensornummer - Diese Nummer wird nur intern zur Kennzeichnung der Sensoren verwendet und erscheint sonst nirgendwo in den Konfigurations-Menüs. Wird in einem Menü über den Drehimpulsgeber ein Sensor ausgewählt, dann erscheinen die möglichen Sensoren in dieser Reihenfolge.
- Sensorkennung - Diese Kennung wird in den meisten Konfigurations-Menüs verwendet. Wenn es der Platz auf dem Display ermöglicht, dann wird diese Kennung durch einen einstellbaren Sensornamen ersetzt oder ergänzt. Bei der ersten Konfiguration entspricht der Sensorname zunächst dieser Kennung.
- Sensortyp - Das Anzeigemodul 2a unterscheidet zwischen den 3 Sensortypen Temperatur, Luftdruck und Luftfeuchtigkeit. Auf 2 spezielle Sensortypen wird in einer weiteren Tabelle noch genauer eingegangen.
- Untermenüs - Diese 6 Spalten zeigen, in welchen Untermenüs die Parameter des entsprechenden Sensors konfiguriert werden können. Auf die einzelnen Untermenüs wird im folgenden Abschnitt noch genauer eingegangen.
Neben den 31 Sensoren T01-T27, P01, H01-H03, deren Daten vom Sensormodul übermittelt werden, existieren noch 2 weitere Sensoren, die ihre Daten aus anderen Quellen erhalten:
Sensorkennung | Sensortyp | Beschreibung |
---|---|---|
P01 | Luftdruckverlauf | Dieser Sensor kann im Menü Konfiguration -
Sensoren - Anzeige als weiterer Sensor ausgewählt werden und stellt anstatt eines Sensorwertes den Luftdruckverlauf der vergangenen 34
Stunden in einer Mini-Grafik dar. Dabei entspricht ein Pixel in X-Richtung einer Stunde und ein Pixel in Y-Richtung einem Hektopascal (1hPa). Die Daten für diese Grafik werden aus dem
15min-Log-Daten-Speicher des Luftdrucksensors P01 entnommen, wobei (ausgehend von der aktuellen Zeit) Werte im Abstand von einer Stunde gelesen und aufbereitet
werden. Die Aktualisierung der Grafik erfolgt immer zur Minute 1, 16, 31, und 46. Zur Unterscheidung vom normalen Luftdrucksensor (welcher den gleichen Namen hat), wird dieser in den Konfigurations-Menüs unterstrichen dargestellt. |
B01 | Batteriespannung | Dieser Sensor kann im Menü Konfiguration - Grafik-Presets als weiterer Sensor ausgewählt werden und ermöglicht die grafische Darstellung der Batteriespannung der Echtzeituhr. Hier können sowohl 15min- als auch 24h-Werte zur Anzeige kommen. Bei den 24h-Werten gibt es die Besonderheit, dass die Minimal-, Maximal- und Mittelwerte identisch sind und der aktuellen Batteriespannung um 23:59 Uhr entspricht. |
Wie schon erwähnt, erfolgt die Bedienung des Anzeigemoduls über 2 Elemente (Drehimpulsgeber S1 und Taster S2) sowie die unterste Zeile im Display (Menüzeile), neudeutsch nennt man das auch Softkeys. Die einzelnen Untermenüs werden mit dem Impulsgeber auf der rechten Seite vorgewählt und durch Druck auf den Impulsgebertaster aktiviert. Der Einzeltaster auf der linken Seite hat immer die Funktion Zurück und dient zum Abbruch von Funktionen bzw. zur Rückkehr in die übergeordnete Menüebene - mit Ausnahme des Hauptmenüs. Im Folgenden werden die einzelnen Menüs beschrieben. Alle Infos und Bilder beziehen sich auf die Software-Version 3.000 vom 02.06.2012.
Noch ein wichtiger Hinweis für die erste Inbetriebnahme: Bevor mit der Konfiguration von Sensoren und Alarmen begonnen wird, müssen unbedingt die folgenden Aktionen durchgeführt werden. Diese laden definierte Anfangswerte in das Konfigurations-EEPROM und löschen alle Log- und Meldungsdaten im externen EEPROM.
- Menü-Option Konfiguration - Grundeinstellung - Basiskonfiguration laden ausführen.
- Menü-Option Konfiguration - Grundeinstellung - 15min Werte löschen ausführen.
- Menü-Option Konfiguration - Grundeinstellung - 24h Werte löschen ausführen.
- Menü-Option Konfiguration - Grundeinstellung - Meldungen löschen ausführen.
Menü Hauptmenü
Vom Hauptmenü aus kann mit dem Impulsgeber jedes Untermenü erreicht werden, wobei eine Art Baumstruktur verwendet wird. Der linke Taster hat immer die Funktion Zurück und führt in die vorherige Menü-Ebene. Im Hauptmenü hat dieser Taster keine Funktion, da die oberste Menü-Ebene erreicht ist. Er kann aber unter bestimmten Umständen 2 Sonderfunktionen haben:
Signal ausschalten | Falls Fehler oder Alarmmeldungen auftreten und diese gerade akustisch signalisiert werden, dann erscheint dieser Text und ein Druck auf den linken Taster schaltet den akustischen Alarm ab. |
Erinnerungen löschen | Falls Fehler oder Alarmmeldungen aufgetreten sind und unterstrichene Elemente auf diesen Zustand hinweisen, dann erscheint dieser Text und ein Druck auf den linken Taster entfernt alle Erinnerungen wieder. |
Die gesamte Menüstruktur sieht folgendermaßen aus:
Ebene 1 | Ebene 2 | Ebene 3 | Ebene 4 | Optionen | Beschreibung |
---|---|---|---|---|---|
Hauptmenü | Seite wechseln | 0 | Umschaltung auf die jeweils andere Anzeigeseite | ||
Minimal-Werte | 1 | Anzeige der Minimalwerte aller Sensoren dieser Seite | |||
Maximal-Werte | 1 | Anzeige der Maximalwerte aller Sensoren dieser Seite | |||
Grafik | <Preset-Name> | 6 | Aufruf eines Grafik-Presets (Voreinstellung) und Anzeige der Grafik | ||
Meldungen | 3 | Anzeige aller gespeicherten Alarme, Fehler und Temperaturüberschreitungen | |||
Status | 5 | Status-Übersicht der Hardware und Anzeige einige Systemdaten | |||
Konfiguration | Sensoren | Einstellungen 1 | 3 | Einstellungen der Sensoren T01-T16 (Sensorname, Ein/Ausschalten) | |
Einstellungen 2 | 3 | Einstellungen der Sensoren T17-T27, P01, H01-H03 (Sensorname, Ein/Ausschalten) | |||
Grenzwerte 1 | 3 | Einstellungen der Grenzwerte für die Sensoren T01-T16 (oberer/unterer Grenzwert) | |||
Grenzwerte 2 | 3 | Einstellungen der Grenzwerte für die Sensoren T17-T27 (oberer/unterer Grenzwert) | |||
Anzeige | 2 | Platzierung aller Sensoren auf der Anzeigeseite 1 und 2 | |||
Großanzeige | 2 | Auswahl des Sensors für die Großanzeige von Anzeigeseite 1 und 2 | |||
Log-Zuordnung 1 | 2 | Einstellung der Log-Positionen für Sensorgruppe 1 (T01-T24) | |||
Log-Zuordnung 2 | 2 | Einstellung der Log-Positionen für Sensorgruppe 2 (H01-H03 / T25-T27) | |||
Alarme | 5 | Einstellungen der 4 Alarme (Alarmname, Ein/Ausschalten, Invertierung, Position) | |||
Signale | Zuordnung | 4 | Einstellung der Alarmsignale für verschiedene Ereignisse (Signal, Dauer) | ||
Audio | 2 | Einstellung der Signal-Parameter (Lautstärke, Tonfrequenz) | |||
Zeiten | Schaltzeiten | 4 | Einstellung der Schaltzeiten für Signale, Beleuchtung, Bluetooth und Reset der Min/Max-Werte | ||
Uhr stellen | 2 | Manuelle Einstellung der Systemuhr | |||
Sonstiges | 2 | Einstellung von Sprache, Trennzeichen, Beleuchtungs-Funktionen, Seiten-Rückschaltung und PC-Baudrate | |||
DCF77 | 2 | Einstellungen für den DCF77-Empfänger (Invertierung, Pull-up) | |||
Grafik-Presets | 2 | Grafik-Voreinstellungen 1-24 (Preset-Name, Sensoren und Modus für Grafik 1, Sensoren und Modus für Grafik 2) | |||
Backup | Konfiguration sichern | 1 | Speichern der aktuellen Konfiguration im externen EEPROM | ||
Konfiguration laden/Neustart | 1 | Laden der Konfiguration aus dem externen EEPROM und anschließender Neustart | |||
Grundeinstellung | Basiskonfiguration laden | 1 | Laden einer einfachen Grundkonfiguration und anschließender Neustart | ||
Grafik-Presets zurücksetzen | 1 | Laden von 24 einfachen Voreinstellungen für die Grafikanzeige | |||
15min Werte löschen | 1 | Löschen aller gespeicherte 15min-Log-Daten im externen EEPROM | |||
24h Werte löschen | 1 | Löschen aller gespeicherten Tages-Log-Daten im externen EEPROM | |||
Meldungen löschen | 1 | Löschen aller gespeicherten Meldungs-Daten im externen EEPROM |
Im Folgenden werden alle Untermenüs beschrieben.

Dieses ist kein Untermenü im eigentlichen Sinne - hier wird einfach zwischen den beiden Anzeigeseiten gewechselt. Aus diesem Grund gibt es hier auch keine Funktion
Zurück.

3 Minuten nach der letzten Tasterbetätigung wird automatisch wieder auf die Seite 1 umgeschaltet. Diese Funktion lässt sich in der Konfiguration bei Bedarf
abschalten.

Dieses Untermenü zeigt den gleichen Bildaufbau wie das Hauptmenü. Anstelle der aktuellen Sensorwerte werden jetzt die ermittelten Minimalwerte angezeigt. Falls ein Temperatur-Grenzwert
unterschritten wurde, dann wird der betroffene Temperaturwert invertiert dargestellt. War vor dem Aufruf der Minimalwerte die Anzeigeseite 2 aktiv, dann werden die Minimalwerte der Seite 2
angezeigt.
Folgende Option ist hier möglich:
Zurücksetzen | Ein Druck auf den Impulsgeber setzt alle Minimalwerte ohne weitere Rückfrage auf die aktuellen Werte zurück. In der Grundeinstellung des Anzeigemoduls werden die Minimalwerte um 20:00 Uhr automatisch zurückgesetzt, damit stehen die Minimalwerte der vergangenen Nacht noch den gesamten Tag zur Verfügung. Die automatische Rücksetzung lässt sich in der Konfiguration auch auf eine andere Zeit einstellen oder ganz abschalten. |
Menü Maximal-Werte

Folgende Option ist hier möglich:
Zurücksetzen | Ein Druck auf den Impulsgeber setzt alle Maximalwerte ohne weitere Rückfrage auf die aktuellen Werte zurück. In der Grundeinstellung des Anzeigemoduls werden die Maximalwerte um 8:00 Uhr automatisch zurückgesetzt, damit stehen die Maximalwerte des Tages noch bis zum nächsten Morgen zur Verfügung. Die automatische Rücksetzung lässt sich in der Konfiguration auch auf eine andere Zeit einstellen oder ganz abschalten. |
Menü Grafik
Nach der Auswahl des Menüs Grafik bleibt die Hauptanzeige zunächst unverändert. In der Menüzeile werden jetzt die 24 Presets mit Nummer und Name angeboten und können
durch Drehen des Impulsgebers ausgewählt werden.

Alle Diagramme haben grundsätzlich den gleichen Aufbau und zeigen den Verlauf eines Sensorwertes über einen bestimmten Zeitraum an. Beim Aufruf einer Grafik werden dabei immer aktuelle Daten angezeigt, d.h. auf der rechten Seite des Kurvenverlaufs ist der zuletzt erfasste Messwert zu sehen. Für die Zeitachse stehen genau 222 Pixel zur Verfügung, das entspricht bei 15min-Werten einer Zeitspanne von 2 Tagen und 7,5 Stunden; bei 24h-Werten (Minimal-, Maximal- oder Mittelwerte) entspricht das einem Zeitraum von 222 Tagen.

Dieses Bild zeigt ein Einzeldiagramm mit 15min Werten. Die X-Skala ist hier in Stunden eingeteilt, wobei alle 4 Stunden eine Markierung mit dem entsprechenden Stundenwert zu sehen ist. Die
einzige Ausnahme ist der Zeitpunkt 0:00 Uhr, hier steht immer das Datum des Tages. Die Y-Skala befindet sich bei dieser Beispielgrafik in der höchsten Auflösung: 1 Pixel = 0,1°. Die
Auflösung orientiert sich immer am niedrigsten und höchsten darzustellenden Wert und wird nach folgendem Verfahren angepasst: Es wird zunächst geprüft, ob die Werte bei der höchsten
Auflösung in das Diagramm passen. Ist dies nicht möglich, dann wird geprüft, ob eine Darstellung mit der halben Auflösung (1 Pixel = 0,2°) möglich ist. Diese Halbierung wird so lange
wiederholt, bis die Daten ins Diagramm passen. Entsprechend ändert sich dann die Beschriftung der Y-Achse.

Bei den Doppeldiagrammen sind nahezu alle denkbaren Kombinationen möglich - bis auf eine Ausnahme: eine gemischte Darstellung von 15min- und 24h-Werten ist nicht möglich.

Ein Differenzdiagramm kann auch mit einem absoluten Diagramm kombiniert werden. So lässt sich z.B. die Heizungs-Vor/Rücklauf-Differenz mit der Außentemperatur vergleichen.
Wie schon erwähnt, können auch Luftfeuchtigkeitswerte und der Luftdruckverlauf grafisch dargestellt werden und sogar die Anzeige der Batteriespannung der Echtzeituhr ist möglich. Allerdings musste ich Kompromisse eingehen, da die hier verwendete Software vom Anzeigemodul 2 stammt und ursprünglich nur zur Darstellung von Temperaturwerten vorgesehen war. So liegt der Wertebereich auf der Y-Achse immer zwischen -99 und 125 und alle Sensorwerte müssen sich daran orientieren:
Messgröße | Wert im Speicher | Wert auf Y-Achse | Einheit | entspricht | Bemerkung |
---|---|---|---|---|---|
Temperatur | -550 ... 1250 | -55 ... 125 | °C | -55 ... 125°C | |
Temperaturdifferenz | -999 ... 1250 | -99 ... 125 | K | -99 ... 125K | |
Luftdruck | 150 ... 1150 | 15 ... 115 | kPa | 150 ... 1150hPa | |
Luftfeuchtigkeit | 0 ... 100 | 0 ... 100 | % | 0 ... 100% | Der Sensorwert wird vor der Verwendung mit 10 multipliziert |
Batteriespannung | 0 ... 350 | 0 ... 35 | 100mV | 0 ... 3,5V |
Damit man sofort erkennen kann, welche Daten gerade angezeigt werden, werden der Sensorname und die verwendete Einheit in den Diagrammbereich eingeblendet. Abhängig von den angezeigten Daten werden einige Symbole verwendet, welche folgende Bedeutung haben:
![]() |
Die Grafik zeigt die Differenz zwischen zwei Temperaturwerten (Delta). Dieses Symbol steht immer vor Sensornamen. |
![]() | Die Grafik zeigt 24h-Minimalwerte. Dieses Symbol steht immer hinter Sensornamen. |
![]() | Die Grafik zeigt 24h-Maximalwerte. Dieses Symbol steht immer hinter Sensornamen. |
![]() | Die Grafik zeigt 24h-Mittelwerte. Dieses Symbol steht immer hinter Sensornamen. |
Während der Grafikanzeige sind 6 Optionen über den Impulsgeber auswählbar:
Vorherige Seite | Bei jedem Aufruf eines Grafik-Presets werden zunächst aktuelle Daten angezeigt, man befindet sich also zeitlich betrachtet auf der letzten Seite. Mit dieser Option können weitere Daten in Richtung Vergangenheit angezeigt werden, es erscheint somit die Fortsetzung der Grafik auf der linken Seite. Bei 15min-Werten lassen sich bis zu 17 weitere Seite aufrufen, bei 24h Werten nur eine. |
Nächste Seite | Diese Option zeigt weitere Daten in Richtung Gegenwart. Das funktioniert allerdings nur, wenn man vorher in die Vergangenheit geblättert hat. |
Fadenkreuz | Diese Option bietet die Möglichkeit, einen bestimmten Wert im Kurvenverlauf anzuzeigen. Dazu wird ein Fadenkreuz über die Grafik gelegt, wobei der Schnittpunkt genau auf der Messkurve liegt. |
Bei Doppelgrafiken wie im nebenstehenden Bild werden 2 Fadenkreuze sichtbar. Durch Drehen des Impulsgebers lässt sich das Fadenkreuz verschieben, wobei in der Menüzeile über dem Impulsgeber
immer die Werte an der Fadenkreuzposition angezeigt werden. Schnelles Drehen des Impulsgebers beschleunigt die Verschiebung und ermöglicht größere Sprünge. Mit der Option
Zurück wird das Fadenkreuz wieder ausgeblendet.
Sensornamen anzeigen | Mit dieser Option lässt sich der Sensorname im Diagrammbereich ein- oder ausblenden. Normalerweise kann man diese Option immer eingeschaltet lassen, da die Software versucht, den Namen so zu platzieren, dass die Grafik möglichst nicht verdeckt wird. Leider gelingt das nicht immer und so lässt sich der Sensorname ausblenden, um die ganze Kurve betrachten zu können. Ein nochmaliger Aufruf dieser Option schaltet die Sensornamen wieder ein. Die letzte Einstellung dieser Option wird separat in jedem Grafik-Preset gespeichert. |
Skala angleichen | Diese Option ist für Doppeldiagramme bestimmt. Sie bewirkt, dass die Temperaturskalen beider Diagramme auf die gleiche Auflösung geschaltet werden. Normalerweise wird die Auflösung jedes Diagramms einzeln ermittelt. Oft wünscht man sich aber die gleiche Skala, damit man die Kurven besser vergleichen kann und dafür ist diese Option bestimmt, welche übrigens auch separat in jedem Grafik-Preset gespeichert wird. Damit man erkennt, dass diese Option eingeschaltet ist, wird folgendes Symbol eingeblendet: |
![]() |
Die Skalen der Doppelgrafik sind auf die gleiche Auflösung gesetzt. Dieses Symbol steht immer vor Sensornamen. |
Schriftgröße | Da die Sensornamen und weitere Informationen die Grafik teilweise verdecken können, lässt sich die Schriftgröße von der normalen System-Schrift in eine Mini-Schrift (5 Pixel Höhe) umschalten. Damit sind die Informationen kompakter, aber auch schlechter lesbar. Ein erneuter Aufruf dieser Option schaltet wieder auf die normale Schriftgröße zurück. Auch hier wird die letzte Einstellung separat in jedem Grafik-Preset gespeichert. |
Menü Meldungen
Eine Bildschirmseite zeigt 8 Meldungen an und über 3 Optionen kann man weitere Meldungen in der Vergangenheit anzeigen und auch wieder in die Gegenwart blättern. Damit man die Liste, die bis
zu 500 Einträge haben kann, nicht komplett nach bestimmten Ereignissen durchsuchen muss, habe ich noch eine Filter-Möglichkeit eingebaut.
![]() |
Alarm-Meldung: An einem der 4 Eingänge des Sensormoduls wurde ein Alarm ausgelöst oder ein Alarm ist wieder verschwunden. |
![]() |
Temperatur-Meldung: Ein Grenzwert wurde über- oder unterschritten oder eine Temperatur kehrt in den normalen Bereich zurück. |
![]() |
Eine der folgenden System-Meldungen ist aufgetreten: System-Neustart, Log-Tabellen-Fehler, Kein Datenempfang, Datenempfang ok, Konfigurations-Fehler, Pointer-Fehler, Sensorausfall <Name> oder Sensor ok <Name>. |
Bei diesem Menü stehen 3 Optionen zur Verfügung:
Vorherige Seite | Beim Aufruf der Meldungen werden zunächst aktuelle Daten angezeigt, man befindet sich also zeitlich betrachtet auf der letzten Seite. Über diese Option lässt sich die Anzeige um eine Seite zurückblättern - es werden die vorherigen 8 Meldungen (in Richtung Vergangenheit) angezeigt. |
Nächste Seite | Über diese Option lässt sich die Anzeige um eine Seite vorblättern - es werden die nächsten 8 Meldungen (in Richtung Gegenwart) angezeigt. Das funktioniert allerdings nur, wenn man vorher in die Vergangenheit geblättert hat oder wenn in der Zwischenzeit ein neuer Log-Eintrag geschrieben wurde. |
Filter | Mit dieser Option kann das Meldungs-Filter umgeschaltet werden. Folgende Filtermöglichkeiten stehen zur Verfügung: |
Anzeige | Filter |
---|---|
alle | Es werden alle Meldungen angezeigt (Filter ausgeschaltet). |
Alarme | Es werden nur Alarm-Meldungen angezeigt (Alarme der 4 Eingänge des Sensormoduls). |
Temperaturen | Es werden nur Temperatur-Alarme angezeigt (Unter- und Überschreitungen). |
Fehler | Es werden nur System-Fehler-Meldungen angezeigt. |
Bei jedem Druck auf den Impulsgeber wird das Filter auf die nächste Stufe laut Tabelle geschaltet, ein weiterer Druck nach der letzten Stufe schaltet das Filter wieder aus. Beim Wechsel des Filters werden zunächst die letzten 8 aktuellen Meldungen der entsprechenden Kategorie angezeigt. Mit den bereits erwähnten Optionen Vorherige Seite und Nächste Seite kann man sich durch die gefilterte Liste bewegen. Der aktuelle Zustand des Filters wird immer in der Infozeile angezeigt und außerdem dauerhaft in der Konfiguration gespeichert.

Dieses Menü gibt einen Überblick über die Hard- und Software des Anzeigemoduls 2a. Im oberen Abschnitt wird die vollständige Versionsnummer der Software angezeigt, weiterhin die letzte vom
Sensormodul empfangene Sensorbelegung und die daraus ermittelte Sensoranzahl.
Der untere Bereich zeigt schließlich noch die aktuelle Einstellung der LED-Funktion an.
Die auf dieser Seite angezeigten Symbole haben folgende Bedeutung:
![]() | Das Element arbeitet fehlerhaft oder es gibt hier eine Abweichung. |
![]() | Das Element arbeitet fehlerfrei. |
Im folgenden Abschnitt werden die einzelnen Status-Felder genauer beschrieben:
EEPROM | Hier wird der beim letzten Systemstart ermittelte Status der 4 EEPROMs IC3-IC6 angezeigt. Jedes EEPROM wird dabei kurz mit seiner Adresse angesprochen und wenn eine Antwort empfangen wird, dann gilt der Test als erfolgreich. Die 4 Symbole stellen den Status der EEPROMs in der Reihenfolge IC3 - IC4 - IC5 - IC6 dar. Tritt ein EEPROM-Fehler bei jedem Systemstart auf, dann liegt ein Hardware-Problem vor. |
Speicher | Trat beim eben genannten EEPROM-Test beim Systemstart ein Fehler auf, dann hat das automatisch einen Speicher-Fehler zur Folge. Es kann aber auch
passieren, dass alle EEPROMs ok sind und nur ein Speicher-Fehler angezeigt wird. In diesem Fall ist der Fehler im laufenden Betrieb aufgetreten. In diesem Fall kann der Fehler mit
einer der weiter unten beschriebenen Optionen gelöscht werden. Wichtig: Bei einem aktiven Speicher-Fehler sind alle Log-Funktionen des Anzeigemoduls deaktiviert. |
Echtzeituhr | Beim Systemstart wird neben den EEPROMs auch die Echtzeituhr IC9 mit ihrer Adresse angesprochen und auf eine Antwort gewartet. Das Ergebnis wird an dieser Stelle angezeigt. Tritt dieser Fehler bei jedem Systemstart auf, denn liegt ein Hardware-Problem vor. |
Pointer | An dieser Stelle werden 3 Zahlen und ein nachfolgendes Symbol angezeigt. Sieht der Pointer-Status wie im Bild weiter oben aus, dann ist alles im grünen Bereich. Liegt ein
Pointer-Problem vor, dann wird der betroffene Pointer-Wert invertiert dargestellt und das Symbol ![]() |
Pointer | Wertebereich | Funktion |
---|---|---|
1 | 0 - 3854 | Dieser Pointer enthält die Schreibposition (Datensatznummer) für den Log-Speicherbereich der 15min-Werte. |
2 | 0 - 415 | Dieser Pointer enthält die Schreibposition (Datensatznummer) für den Log-Speicherbereich der 24h-Werte (Minimal-, Maximal- und Mittelwerte). |
3 | 0 - 499 | Dieser Pointer enthält die Schreibposition (Datensatznummer) für den Log-Speicherbereich der Meldungsdaten. |
Die 3 Pointerwerte werden im RAM-Speicher der Echtzeituhr aufbewahrt und bei einem Systemstart von dort wieder gelesen. Sollte hier ein Problem auftreten, dann wird ein Pointer-Fehler ausgelöst. Daraufhin versucht die Software, den betroffenen Log-Speicher zu lesen und mithilfe des Zeitstempels der Log-Daten die Position wieder zu finden. Damit korrigiert sich das Problem normalerweise von selbst. Es ist aber nicht ausgeschlossen, dass dabei Log-Daten verloren gehen. Ein Pointer-Fehler kann mit einer der weiter unten beschriebenen Optionen gelöscht werden. | |
Batterie | Hier wird die Batteriespannung der Echtzeituhr angezeigt. Sinkt die Spannung unter 2,5V, dann erscheint neben dem Spannungswert das Symbol
![]() |
Lichtsensor | Hier kann man die Funktion des Lichtsensors kontrollieren. Der angezeigte Wert liegt zwischen 0 (Dunkel) und 255 (Hell). |
Backup | Diese Zeile zeigt das Datum und die Uhrzeit des letzten Konfigurations-Backups an. Es wird an dieser Stelle geprüft, ob die aktuelle Konfiguration mit dem
Backup übereinstimmt und wenn dies der Fall ist, wird das Symbol ![]() ![]() |
LED Rot/Gelb | Hier wird der aktuelle Modus der LEDs D1 und D2 (Rot und Gelb) angezeigt. Im Normalbetrieb zeigen diese die Alarme der 4 Eingänge des Sensormoduls bzw. Temperatur-Alarme an (Anzeige: Alarm1/Alarm2 wie im Bild oben). Über eine Option lassen sich diese beiden LEDs in einen Diagnose-Modus umschalten. |
An dieser Stelle ergeben sich vermutlich einige Fragen. Die folgende Liste der Optionen wird diese hoffentlich beantworten:
Normal/Abwesend | Auf diese Funktion des Anzeigemoduls bin ich bisher noch gar nicht eingegangen. Das Anzeigemodul wird üblicherweise im Status
Normal betrieben (Infozeile: Status - Normal). In diesem Status arbeitet das Modul genau so, wie es hier beschrieben wird. Unter
bestimmten Umständen ist es sinnvoll, einige Funktionen des Moduls abzuschalten, z.B. bei längerer Abwesenheit. Und genau dafür ist diese Option gedacht. Mit einem Druck auf den
Impulsgeber lässt sich der Status auf Abwesend umschalten (Infozeile: Status - Abwesend). Dabei bleiben alle Basisfunktionen wie
Anzeige und Aufzeichnung der Sensordaten erhalten, allerdings gibt es folgende Besonderheiten:
|
LED-Modus umschalten | Diese Option schaltet die Funktion der LEDs D1 (Rot) und D2 (Gelb) in einen Diagnose-Modus um (Anzeige: DCF77/RS-232). Die rote LED zeigt in diesem Modus die eingehenden DCF77-Impulse durch kurzes Aufblitzen an. So kann man die Funktion des DCF77-Empfängers überprüfen und gegebenenfalls die Antenne optimal ausrichten. Die gelbe LED zeigt eingehende RS-232-Daten vom Sensormodul an. Bei jedem fehlerfrei empfangenen Datenpaket leuchtet die LED kurz auf. Ein nochmaliger Aufruf dieser Option schaltet wieder in den normalen LED-Modus zurück (Anzeige: Alarm1/Alarm2). Auch diese Einstellung wird dauerhaft in der Konfiguration gespeichert. |
Speicher-Fehler löschen | Mit dieser Option kann man einen eventuell aufgetretenen Speicher-Fehler wieder löschen. Das macht allerdings nur Sinn, wenn die EEPROMs fehlerfrei arbeiten, ansonsten tritt der Fehler beim nächsten Speicherzugriff wieder auf. Im normalen Betrieb darf dieses Problem nicht auftreten. |
Echtzeituhr-Fehler löschen | Mit dieser Option kann man einen aufgetretenen Zugriffs-Fehler auf die Echtzeituhr wieder löschen. Auch dieses Problem sollte im normalen Betrieb nicht auftreten. |
Pointer-Fehler löschen | Diese Option dient zum Löschen von Pointer-Fehlern, falls solche aufgetreten sind. Dieser Fehler ist normalerweise nur bei der ersten Inbetriebnahme zu erwarten, da in diesem Fall noch keine gültigen Daten im Speicher der Echtzeituhr stehen. Dies wird zwar automatisch korrigiert, aber trotzdem hier als Fehler gemeldet. |
Menü Konfiguration
Menü Konfiguration - Sensoren - Einstellungen 1

Folgende Symbole werden verwendet:
![]() |
Der Sensor ist ausgeschaltet. Die empfangenen Sensordaten werden nicht ausgewertet und erscheinen auch nicht in der Hauptanzeige. Weiterhin erfolgt keine Überwachung auf Ausfälle und Temperaturabweichungen. |
![]() |
Der Sensor ist eingeschaltet. Die empfangenen Sensordaten werden angezeigt und alle Überwachungen sind aktiviert. |
Hinweis: In diesem Menü werden alle empfangenen Sensordaten angezeigt, auch wenn Sensoren ausgeschaltet sind. Somit kann man die Funktion aller Sensoren prüfen.
Für dieses Menü stehen folgenden Optionen zur Verfügung:
Auswählen | Über diese Option lässt sich ein Sensor zur Bearbeitung auswählen. Durch Drehen des Impulsgebers lässt sich die Markierung (invertierte Sensorkennung) verschieben und auf den gewünschten Sensor setzen. Ein nochmaliger Druck auf den Impulsgeber (oder auch auf Zurück) führt wieder zurück ins Options-Menü. Alle weiteren Optionen beziehen sich immer auf den hier ausgewählten Sensor. |
Ein/Ausschalten | Mit dieser Option kann der gewählte Sensor ein- und auch wieder ausgeschaltet werden. Im normalen Betrieb wird man alle am Sensormodul angeschlossenen Sensoren hier einschalten und auswerten. Bei Bedarf lässt sich hier ein Sensor vorübergehend abschalten, wenn er sich nicht normal verhält und durch ständige Alarme nervt. |
Name | Über diese Option kann man dem ausgewählten Sensor einen Namen geben. Zum Aktivieren der Texteingabe genügt ein Druck auf den Impulsgeber und hinter dem Namen erscheint ein Cursor, der die aktuelle Schreibposition anzeigt. Durch Drehen des Impulsgebers kann man ein Zeichen auswählen und mit einem Druck auf den Impulsgeber an den Namen anhängen. |
Auf dem nebenstehenden Bild, welches den rechten unteren Bereich des Displays in vergrößerter Darstellung zeigt, ist beim Sensor T16 die Texteingabe aktiviert und es wurde zuletzt ein
i eingegeben. Solange das Cursor-Symbol so aussieht wie im Bild, ist das Maximum von 9 Zeichen noch nicht erreicht und es können weitere Zeichen eingegeben werden. Es
kann trotzdem passieren, dass keine weiteren Zeichen akzeptiert werden. In diesem Fall wird ein weiteres Limit wirksam, welches die Pixel-Breite des Namens begrenzt. Damit wird verhindert,
dass später Teile des Namens durch den Sensorwert überschrieben werden.

Die folgende Zeile zeigt den Zeichenvorrat, der über den Impulsgeber ausgewählt werden kann:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüß+-/.Daran schließen sich zwei weitere Zeichen an, die eine Sonderfunktion haben:
![]() |
Beim Druck auf den Impulsgeber wird das Zeichen links vom Cursor gelöscht und der Cursor entsprechend nach links verschoben. |
![]() | Beim Druck auf den Impulsgeber wird der Name gespeichert und der Texteingabe-Modus wieder verlassen. |
Übrigens, Änderungen am Namen sind nur an der letzten Zeichenposition möglich. Sollen Zeichen am Anfang des Namens geändert werden, dann müssen alle nachfolgenden Zeichen gelöscht und nach der Änderung wieder neu eingegeben werden.
Hinweis: Für die Temperatursensoren sollten keine gleichen Namen vergeben werden. Grundsätzlich funktioniert das zwar, aber bei Fehlermeldungen lassen die Einträge in der Meldungs-Liste nicht mehr eindeutig identifizieren.
Menü Konfiguration - Sensoren - Einstellungen 2

Hinweis: Für die Temperatursensoren sollten keine gleichen Namen vergeben werden. Auch die 3 Luftfeuchtigkeitssensoren sollten unterschiedlich benannt werden, um bei Fehlermeldungen jeden Sensor eindeutig identifizieren zu können. Es ist aber möglich, einem Luftfeuchtigkeits- und einem Temperatursensor den gleichen Namen zu geben, was auch sinnvoll ist, wenn sie gekoppelt sind (z.B. T25 und H01) und/oder sich beide im gleichen Raum befinden.

Über dieses Menü hat man die Möglichkeit, Grenzwerte für die Temperatursensoren T01-T16 einzustellen. Das Anzeigemodul 2a vergleicht jeden empfangenen Sensorwert mit
diesen Grenzwerten und löst bei Überschreitung der oberen Grenze bzw. bei Unterschreitung der unteren Grenze einen Alarm aus.
Dieses Menü zeigt neben dem Sensornamen den eingestellten unteren Grenzwert (links) und den eingestellten oberen Grenzwert (rechts) an. Wird an einer Stelle kein Wert angezeigt, dann ist die
untere bzw. obere Grenzwert-Überwachung ausgeschaltet. Folgende Optionen sind möglich:
Auswählen | Diese Option funktioniert ebenso wie in den anderen Konfigurations-Menüs und ermöglicht die Auswahl des Sensors, der konfiguriert werden soll. |
Unterer Grenzwert | Über diese Option kann der untere Grenzwert eingestellt oder gelöscht werden. Nach dem Aufruf dieser Option lassen sich zwei weitere Unter-Optionen auswählen: |
Ändern | Nach einem Druck auf den Impulsgeber lässt sich der untere Grenzwert ändern. Dazu erscheint der bisherige Grenzwert in der Menüzeile über dem Impulsgeber und durch Drehen lässt sich der Wert im Bereich von -55°C bis 125°C einstellen. War bisher noch kein Wert eingestellt, dann beginnt die Einstellung bei 0°C. |
Löschen | Beim Druck auf den Impulsgeber wird der eingestellte Grenzwert gelöscht und die Überwachung des unteren Grenzwertes ausgeschaltet. |
Oberer Grenzwert | Über diese Option kann der obere Grenzwert eingestellt oder gelöscht werden. Nach dem Aufruf dieser Option lassen sich zwei weitere Unter-Optionen auswählen: |
Ändern | Nach einem Druck auf den Impulsgeber lässt sich der obere Grenzwert ändern. Dazu erscheint der bisherige Grenzwert in der Menüzeile über dem Impulsgeber und durch Drehen lässt sich der Wert im Bereich von -55°C bis 125°C einstellen. War bisher noch kein Wert eingestellt, dann beginnt die Einstellung bei 0°C. |
Löschen | Beim Druck auf den Impulsgeber wird der eingestellte Grenzwert gelöscht und die Überwachung des oberen Grenzwertes ausgeschaltet. |
Menü Konfiguration - Sensoren - Grenzwerte 2

Menü Konfiguration - Sensoren - Anzeige

Folgende Optionen können hier verwendet werden:
Auswählen | Mit dieser Option wird (so wie in den vorherigen Menüs auch) die Anzeigeposition ausgewählt, die bearbeitet werden soll. |
Ändern | Über diese Option kann die markierte Anzeigeposition bearbeitet werden. Nach einem Druck auf den Impulsgeber wird der gewünschte Sensor für diese Position durch Drehen des Impulsgebers ausgewählt. Folgende Sensoren sind hier im Angebot: |
- <leer> - Diese Anzeigestelle bleibt leer.
- T01-T27 (oder entsprechender Name) - Temperatursensor T01-T27
- P01 (oder entsprechender Name) - Luftdrucksensor P01
- H01-H03 (oder entsprechender Name) - Luftfeuchtigkeitssensor H01-H03
- P01 (oder entsprechender Name unterstrichen) - Luftdruckverlauf der vergangenen 34 Stunden P01
Hinweis: Jeder Sensor, der in den Einstellungen 1 und Einstellungen 2 aktiviert wurde, sollte auch auf mindestens einer Seite der Anzeige erscheinen. Anderenfalls kann man im Falle eines Alarms von einem solchen Sensor (Ausfall oder Temperaturabweichung) nicht erkennen, wer den Alarm ausgelöst hat.

Der Hauptbildschirm des Anzeigemoduls 2a bietet die Möglichkeit, einen Temperaturwert in großen Ziffern darzustellen, wobei die beiden Bildschirmseiten über dieses Menü unterschiedlich
eingestellt werden können. In der Großanzeige können derzeit nur Temperaturwerte dargestellt werden, wobei der vollständige Sensorwert wegen des begrenzten Platzes nur im Bereich von -9,9°C
bis 99,9° angezeigt werden kann. Außerhalb dieses Bereiches wird der Wert gerundet und ohne Nachkommastelle angezeigt.
Folgende Optionen stehen zur Verfügung:
Auswählen | Mit dieser Option wird die Anzeigeseite ausgewählt, die bearbeitet werden soll. |
Ändern | Über diese Option kann der Temperatursensor ausgewählt werden, der in der Großanzeige erscheinen soll. Folgendes wird hier angeboten: |
- <leer> - Die Großanzeige ist ausgeschaltet.
- T01-T27 (oder entsprechender Name) - Temperatursensor T01-T27
Menü Konfiguration - Sensoren - Log-Zuordnung 1
Interessant wird es allerdings, wenn neue Temperatursensoren installiert werden. Durch eine Eigenart des Sensormoduls kann es nämlich passieren, dass sich die Kennungen der Sensoren ändern. Das hat zur Folge, dass betroffene Sensoren in allen Untermenüs im Bereich Konfiguration - Sensoren neu konfiguriert werden müssen. Ein weiteres Problem ist, dass Daten von diesen Sensoren jetzt auf falsche Log-Speicherplätze geschrieben werden. Zur Behebung des Problems gibt es dieses Menü und hier können die Log-Speicherplätze wieder richtig zugeordnet werden.

An dieser Stelle ist es wichtig zu wissen, dass bei einer Erweiterung mit Temperatursensoren nur der Sensorbereich T01-T24 beeinflusst wird. Alle nachfolgenden Sensoren (T25-T27, P01 und H01-H03) behalten ihre Kennung. Folgende Optionen stehen in diesem Menü zur Verfügung:
Auswählen | Über diese Option wird der Temperatursensor ausgewählt, dessen Log-Zuordnung geändert werden soll. |
Ändern | Mit dieser Option kann dem ausgewählten Sensor über den Impulsgeber ein Log-Speicher im Bereich L01-L24 zugeordnet werden. |
Wichtig: Jeder Log-Speicher darf nur einmal verwendet werden. Das Menü lässt grundsätzlich auch die mehrfache Auswahl zu, allerdings wird durch eine Markierung
auf den Konflikt hingewiesen. Im Beispiel links im Bild habe ich zu Demonstrationszwecken die Zuordnung vom Sensor Schlafzim (T16) von
L13 in L10 geändert und folgerichtig wird dieser Konflikt gemeinsam mit dem Sensor Gästezimm
(T13) angezeigt.
Menü Konfiguration - Sensoren - Log-Zuordnung 2
Das nebenstehende Bild zeigt die Log-Zuordnung der 3 Luftfeuchtigkeitssensoren. Dazu steht in jeder Zeile zunächst die Kennung des Luftfeuchtigkeitssensors, daneben in Klammern die Kennung
des gekoppelten Temperatursensors, wiederum daneben der Name des Luftfeuchtigkeitssensors und in Klammern der Name des gekoppelten Temperatursensors. Die rechte Spalte enthält den
zugeordneten Log-Speicherplatz und der kann bei Bedarf (wie im Menü Log-Zuordnung 1 beschrieben) geändert werden.
An dieser Stelle ist es wichtig zu wissen, dass bei einer Erweiterung mit Luftfeuchtigkeitssensoren nur der Sensorbereich T25-T27 und H01-H03 beeinflusst wird. Alle anderen Sensoren (T01-T24 und P01) behalten ihre Kennung. Folgende Optionen stehen in diesem Menü zur Verfügung:
Auswählen | Über diese Option wird der Luftfeuchtigkeitssensor ausgewählt, dessen Log-Zuordnung geändert werden soll. |
Ändern | Mit dieser Option kann dem ausgewählten Sensor über den Impulsgeber ein Log-Speicher im Bereich L1-L3 zugeordnet werden. Auch hier darf jeder Log-Speicher nur einmal verwendet werden, anderenfalls entsteht ein Konflikt und die Log-Funktion wird vorübergehend deaktiviert. |
Menü Konfiguration - Alarme

Die hier verwendeten Symbole bedeuten folgendes:
![]() |
Der Alarm ist ausgeschaltet und wird nicht signalisiert. Es erfolgt keine Anzeige auf dem Hauptbildschirm. |
![]() | Der Alarm ist eingeschaltet und wird optisch und akustisch signalisiert. |
Für dieses Menü stehen folgende Optionen zur Verfügung:
Auswählen | Über diese Option wird der Alarm ausgewählt, der bearbeitet werden soll. |
Ein/Ausschalten | Mit dieser Option kann der Alarm ein- oder ausgeschaltet werden. |
Name | Über diese Option lässt sich der Name für den ausgewählten Alarm eingeben oder ändern. Die Eingabe erfolgt nach dem gleichen Prinzip wie im Menü Konfiguration - Sensoren - Einstellungen 1, mit dem Unterschied, dass der Name hier bis zu 11 Zeichen lang sein kann. Auch hier kann es passieren, dass die Eingabe schon vor dem 11. Zeichen abgewiesen wird, damit der Name in den vorgesehenen Bildschirmbereich passt. |
Invertieren | Diese Option legt fest, wie das Anzeigemodul 2a auf den Alarm vom Sensormodul reagieren soll. Bei der Einstellung normal wird davon ausgegangen, dass der Alarm-Kontakt überwiegend geöffnet ist und ein Schließen des Kontaktes den Alarm auslöst. Die Einstellung invertiert erwartet einen geschlossenen Kontakt, der beim Öffnen den Alarm auslöst. |
Verschieben | Über diese Option kann die Reihenfolge der Alarme auf dem Hauptbildschirm festgelegt werden. Nach einem Druck auf den Impulsgeber kann durch anschließendes Drehen der markierte Alarm an die gewünschte Position verschoben werden. Die anderen Alarme werden dabei automatisch angepasst. |
Menü Konfiguration - Signale - Zuordnung

Folgende Optionen stehen hier zur Verfügung:
Auswählen | Über diese Option wird der Alarm ausgewählt, dessen Signal bearbeitet werden soll. |
Nummer | Mit dieser Option kann dem gewählten Alarm ein Signal zugewiesen werden. Über den Impulsgeber lassen sich insgesamt 15 Signalnummern (N:01 - N:15) auswählen, wobei sich während der Einstellung nicht nur die Nummer, sondern auch die Grafik ändert. |
Dauer | Mit dieser Option wird die Dauer des akustischen Signals in Sekunden festgelegt. Über den Impulsgeber können hier Werte zwischen D:00 (0 Sekunden, akustisches Signal ausgeschaltet) und D:30 (30 Sekunden) eingestellt werden. |
Abspielen | Über diese Option kann man das soeben eingestellte Alarmsignal abspielen. Es wird dabei sowohl die Alarmnummer als auch die Alarmdauer berücksichtigt. |
Menü Konfiguration - Signale - Audio

Folgende Optionen stehen in diesem Menü zur Verfügung:
Auswählen | Mit dieser Option wird der Parameter ausgewählt, der bearbeitet werden soll. |
Ändern | Mit dieser Option kann der ausgewählte Parameter geändert werden. Die Frequenz lässt sich im Bereich von 675 bis 5959 Hz einstellen, bei den Lautstärken sind Werte im Bereich von 0 (aus) bis 15 (voll) möglich. |
Abspielen | Diese Option spielt zum Prüfen der Einstellungen für 3 Sekunden das Signal von Alarm 2 ab. Dabei wird entsprechend der Tageszeit die Tag- oder Nacht-Lautstärke benutzt. |
Noch ein Hinweis zu diesem Menü: Bei der Einstellung der Signalfrequenz kann man einen angenehmen Ton wählen oder auch die Resonanz-Frequenz des verwendeten Lautsprechers suchen um eine maximale Lautstärke zu erzielen. Bedingt durch die Verwendung eines 8-Bit Timers lässt sich die Frequenz nur relativ grob im Bereich von 675-5959 Hz festlegen. Zwar kann man mit dem Impulsgeber jeden ganzzahligen Wert in diesem Bereich einstellen, beim Bestätigen des Wertes wird dieser jedoch auf den nächsten möglichen Wert geändert. Das ist also normal und kein Fehler.

Mit diesem Menü lassen sich einige Schaltzeiten programmieren, um bestimmte Aktionen automatisch ablaufen zu lassen. Das betrifft die Tag/Nacht-Umschaltung der Signallautstärke, die
Nachtabschaltung der Display-Beleuchtung, die Nachtabschaltung des Bluetooth-Moduls und das automatische Rücksetzen der Minimal- und Maximalwerte.
Die hier verwendeten Symbole bedeuten folgendes:
![]() | Die Schaltzeit ist deaktiviert. |
![]() | Die Schaltzeit ist aktiviert. |
Für dieses Menü stehen folgende Optionen zur Verfügung:
Auswählen | Mit dieser Option wird die Schaltzeit ausgewählt, die geändert werden soll. |
Ein/Ausschalten | Diese Option aktiviert oder deaktiviert die gewählte Schaltzeit, wobei die Ein- und Ausschaltzeit immer gemeinsam beeinflusst wird. Auch das Rücksetzen der Minimal- und Maximalwerte kann nur gemeinsam ein- oder ausgeschaltet werden. |
Ändern | Mit dieser Option kann man die ausgewählte Schaltzeit einstellen. Hier bewirkt ein langsames Drehen des Impulsgebers eine schrittweise Änderung der Zeit im Minutenraster und schnelles Drehen führt zu größeren Zeitsprüngen. Außerdem gibt es hier keinen Endwert, d.h. nach 23:59 geht es wieder bei 0:00 los und umgekehrt. Änderungen an den Schaltzeiten werden immer erst zur nächsten vollen Minute wirksam. |
Übrigens, das automatische Rücksetzen der Minimal- und Maximalwerte bezieht sich nur auf die Anzeige der Werte im Menü Minimal-Werte und Maximal-Werte. Die für die Log-Funktion der 24h-Werte ermittelten Minimal- und Maximalwerte werden unabhängig von dieser Menüeinstellung täglich um 23:59 Uhr in den Log-Speicher geschrieben und dann zurückgesetzt.

Für das Anzeigemodul ist eine gültige Systemzeit wichtig, ohne diese werden keine Log-Daten aufgezeichnet. Über dieses Menü hat man die Möglichkeit, die Uhrzeit und das Datum manuell
einzustellen, falls (aus welchen Gründen auch immer) keine Synchronisation mit dem DCF77-Zeitzeichensender möglich ist.
Folgende Optionen stehen hier zur Verfügung:
Auswählen | Mit dieser Option wählt man den Parameter aus, der verändert werden soll. |
Ändern | Über diese Option stellt man die gewünschten Werte ein. |
Das Stellen der Uhr funktioniert folgendermaßen: Mit den beiden Optionen Auswählen und Ändern stellt man alle 5 Datenfelder auf einen Zeitpunkt in der nahen Zukunft. Sind alle Werte richtig eingestellt, dann wird mit der Option Auswählen der Impulsgeber auf den Parameter Zeit übernehmen gedreht und erst beim Erreichen der eingestellten Zeit gedrückt. Das Setzen der Uhrzeit wird durch einen kurzen Piep-Ton quittiert. Bitte beachten: Nach 3 Minuten Inaktivität des Bedieners wird die Aktion abgebrochen und es erscheint wieder der Hauptbildschirm.

In diesem Menü sind einige weitere Einstellungen zusammengefasst, die in der folgenden tabellarischen Übersicht genauer beschrieben werden:
Einstellung | Beschreibung | |
---|---|---|
Sprache | Deutsch | Die gesamte Menüführung erfolgt in deutscher Sprache (Voreinstellung). |
English | Die gesamte Menüführung erfolgt in englischer Sprache. | |
Trennzeichen | ![]() |
Alle Sensorwerte werden mit einem Komma als Trennzeichen dargestellt, z.B. 23,5°C (Voreinstellung) |
![]() |
Alle Sensorwerte werden mit einem Punkt als Trennzeichen dargestellt, z.B. 23.5°C | |
Temp-Alarm immer signalisieren | ![]() |
Es wird nur die jeweils erste Unter- bzw. Überschreitung eines Sensors signalisiert. Diese Einstellung ist sinnvoll, wenn eine Temperatur im Grenzbereich liegt und das ständig wiederkehrende Signal nervt. (Voreinstellung) |
![]() | Es wird jede Unter- bzw. Überschreitung eines Sensors signalisiert. | |
LCD abschalten von 3:00 bis 3:30 | ![]() |
Das Display bleibt immer eingeschaltet. |
![]() |
Das Display wird zur angegebenen Zeit abgeschaltet, um einen weitgehend störungsfreien Empfang des DCF77-Signals zu gewährleisten (Voreinstellung). Die Zeit wurde absichtlich so gewählt, damit die Umschaltung zwischen Sommer- und Winterzeit rechtzeitig erkannt wird. | |
LCD-Beleuchtungs-Automatik | ![]() |
Die Display-Beleuchtung wird nach einem einstellbaren Tag/Nacht-Zeitplan ein- und ausgeschaltet. Diese Einstellung ist für Displays vorgesehen, die mit einer EL-Folie oder CCFL-Röhre beleuchtet werden und meist nicht dimmbar sind. (Voreinstellung) |
![]() |
Die Display-Beleuchtung wird am Tag über den Lichtsensor in der Helligkeit geregelt und außerdem weich ein- und ausgeblendet. Zur Nachtzeit kann die Beleuchtung auf einen einstellbaren Wert gedimmt werden. Diese Einstellung ist für LED-Beleuchtungen vorgesehen. | |
LCD Nacht-Helligkeit | 0 - 255 | Der hier eingestellte Wert legt die Display-Helligkeit während der Nachtzeit fest (Voreinstellung 10). Diese Einstellung ist nur bei aktivierter LCD-Beleuchtungs-Automatik wirksam. |
Auf Seite 1 zurückschalten | ![]() |
Die zuletzt gewählte Hauptseite ![]() ![]() |
![]() |
3 Minuten nach der letzten Taster- oder Impulsgeber-Benutzung wird immer auf die Seite ![]() | |
Baudrate der PC-Schnittstelle | 9600 - 460800 | Diese Einstellung legt die Geschwindigkeit für die Datenübertragung zum PC fest. Folgende Werte sind möglich: 9600, 19200, 38400, 57600, 115200, 230400 und 460800 Baud (Voreinstellung 115200). Die optimale Einstellung hängt von der verwendeten Schnittstellenoption ab: Bei RS-232 muss man den besten Wert experimentell im Bereich von 9600 bis 115200 ermitteln, bei Bluetooth ist die Voreinstellung 115200 optimal und bei USB kann man den Maximalwert 460800 verwenden. |
Folgende Optionen stehen hier zur Verfügung:
Auswählen | Mit dieser Option wählt man die Einstellung aus, die verändert werden soll. |
Ändern | Über diese Option stellt man die gewünschten Werte ein. Bei den meisten Einstellungen wird hier einfach zwischen den beiden möglichen Werten umgeschaltet, bei der Änderung der Baudrate für die PC-Schnittstelle wird auf den nächsten Wert weitergeschaltet. Eine Ausnahme ist die LCD Nacht-Helligkeit, hier kann der Wert über den Impulsgeber direkt eingegeben werden. Nach Bestätigung wird die Beleuchtung kurzzeitig auf diesen Helligkeitswert gesetzt, damit man die Einstellung prüfen kann. |
Menü Konfiguration - DCF77

Die beiden Einstellungen haben folgende Funktion:
Einstellung | Beschreibung | |
---|---|---|
DCF77-Signal invertiert | ![]() |
Diese Einstellung muss gewählt werden, wenn der DCF77-Empfänger Low-Impulse ausgibt. |
![]() | Diese Einstellung muss gewählt werden, wenn der DCF77-Empfänger High-Impulse ausgibt. | |
DCF77-Eingang mit Pull-up | ![]() |
Diese Einstellung muss gewählt werden, wenn der DCF77-Empfänger einen Standard-Ausgang (Push/Pull) besitzt. |
![]() | Diese Einstellung muss gewählt werden, wenn der DCF77-Empfänger einen Open-Collector bzw. Open-Drain Ausgang besitzt. |
In diesem Menü stehen folgende Optionen zur Verfügung:
Auswählen | Mit dieser Option wählt man die Einstellung aus, die verändert werden soll. |
Ändern | Über diese Option wird die gewählte Einstellung ein- oder ausgeschaltet. |
Die folgende Übersicht listet einige zum Zeitpunkt der Texterstellung (Juni 2012) erhältliche DCF77-Empfänger auf und zeigt die richtige Einstellung in diesem Menü:
Händler | Bestellnummer | DCF77-Signal invertiert | DCF77-Eingang mit Pull-up | Bemerkung |
---|---|---|---|---|
Conrad | 641138 | ![]() ![]() | ![]() |
Das Modul hat 2 Ausgänge. Die Einstellung für die Invertierung hängt vom verwendeten Ausgang ab. |
ELV | 091610 | ![]() |
![]() | |
Pollin | 810054 | ![]() |
![]() |
Das Modul darf nur mit maximal 3,3V betrieben werden: Betriebsspannung über Widerstand 1kΩ und Z-Diode 3,3V (oder 2,7V) zuführen. Der Anschluss PON muss an Masse liegen. Nach dem Einschalten kann es bis zu 2 Minuten dauern, bis das Modul Impulse ausgibt. |
Reichelt | DCF77 MODUL | ![]() |
![]() |
Hinweis: Wenn man sich mit der Einstellung nicht sicher ist, dann sollte man zunächst in das Menü Status gehen und die Option LED-Modus umschalten wählen. Damit wird das DCF77-Signal direkt an die rote LED D1 weitergegeben und bei der richtigen Einstellung muss diese im Sekundentakt kurz aufblitzen. Zeigt die LED ein Dauerleuchten, welches in jeder Sekunde kurz unterbrochen wird, dann sollte die Einstellung DCF77-Signal invertiert geändert werden. Bleibt die LED aus oder leuchtet sie permanent, dann ist vermutlich die Einstellung DCF77-Eingang mit Pull-up falsch.

In diesem Menü können die 24 Grafik-Presets eingestellt werden. Hier wird festgelegt, ob eine Einzel- oder Doppelgrafik verwendet wird und welche Sensoren angezeigt werden sollen. Weiterhin
wird hier ausgewählt, ob man 15min oder 24h Werte betrachten möchte.
Die Funktion der möglichen Einstellungen erläutert die folgende Tabelle:
Einstellung | Beschreibung | |
---|---|---|
Preset | 01 - 24 | Über diese Einstellung wählt man das Preset aus, welches man bearbeiten möchte. Anschließend werden die gespeicherten Einstellungen dieses Presets geladen und angezeigt. Die Voreinstellung ist 1 oder das zuletzt über das Menü Grafik aufgerufene Preset. |
Name | <Preset-Name> | Hier kann man dem Preset einen Namen geben, welcher bis zu 16 Zeichen lang sein kann. Dieser Name erscheint später im Menü Grafik als Option und ermöglicht so eine bequeme Auswahl des gewünschten Presets. Die Eingabe des Namens erfolgt nach dem gleichen Prinzip wie im Menü Konfiguration - Sensoren - Einstellungen 1. |
Grafik 1 Sensor | T01 - T27, P01, H01 - H03, B01 | Über diese Einstellung wird der Sensor ausgewählt, dessen Daten im Diagramm 1 grafisch dargestellt werden sollen. |
Grafik 1 Diff-Sensor | aus, T01 - T27 | Über diese Einstellung kann man den Differenzmodus aktivieren. Im Normalfall setzt man diese Einstellung auf aus. Damit wird der Differenzmodus deaktiviert und die Daten vom Grafik 1 Sensor werden direkt angezeigt. Stellt man hier einen Sensor ein, dann wird das Diagramm 1 die Differenz zwischen Grafik 1 Sensor und dem Grafik 1 Diff-Sensor darstellen. Der Differenz-Modus funktioniert nur mit Temperatursensoren und lässt sich nur aktivieren, wenn beim Grafik 1 Sensor ebenfalls ein Temperatursensor eingestellt ist. |
Grafik 1 Modus | 15min Werte, 24h Werte | Diese Einstellung legt fest, welche Daten im Diagramm 1 angezeigt werden sollen. Zur Auswahl stehen 15min Werte, 24h Minimalwerte, 24h Maximalwerte und 24h Mittelwerte. |
Grafik 2 Sensor | aus, T01 - T27, P01, H01 - H03, B01 | Über diese Einstellung wird der Sensor ausgewählt, dessen Daten im Diagramm 2 grafisch dargestellt werden sollen. Wird nur ein Einzel-Diagramm gewünscht, dann muss hier die Einstellung aus eingestellt werden. |
Grafik 2 Diff-Sensor | aus, T01 - T27 | Über diese Einstellung kann man den Differenzmodus für das Diagramm 2 aktivieren. Auch hier deaktiviert die Einstellung aus den Differenzmodus. Stellt man hier einen Sensor ein, dann wird das Diagramm 2 die Differenz zwischen Grafik 2 Sensor und dem Grafik 2 Diff-Sensor darstellen. Auch der Differenz-Modus vom Diagramm 2 funktioniert nur mit Temperatursensoren und lässt sich nur aktivieren, wenn beim Grafik 2 Sensor ebenfalls ein Temperatursensor eingestellt ist. |
Grafik 2 Modus | 15min Werte, 24h Werte | Diese Einstellung legt fest, welche Daten im Diagramm 2 angezeigt werden sollen. Zur Auswahl stehen 15min Werte, 24h Minimalwerte, 24h Maximalwerte und 24h Mittelwerte. Hier gibt es aber eine Besonderheit: Dieser Parameter lässt sich nur einstellen, wenn vorher ein Grafik 2 Sensor definiert wurde. Außerdem sind die Einstellmöglichkeiten vom Wert des Grafik 1 Modus abhängig. Ist letzterer auf 15min Werte eingestellt, dann lassen sich für die Grafik 2 auch nur 15min Werte auswählen. Nur wenn 24h Minimal, Maximal der Mittelwerte bei Grafik 1 eingestellt sind, lassen sich hier ebenfalls 24h Werte auswählen. |
In diesem Menü stehen folgende Optionen zur Verfügung:
Auswählen | Mit dieser Option wählt man die Einstellung aus, die verändert werden soll. |
Ändern | Über diese Option kann die gewählte Einstellung geändert werden. |
Menü Konfiguration - Backup
Bei diesem Menü bleibt weiterhin der Hauptbildschirm aktiv, in der Menüzeile können aber die folgenden Optionen ausgewählt werden:
Konfiguration sichern | Nach dem Druck auf den Impulsgeber erscheint die Frage Sicher? und nach einem weiteren Druck auf den Impulsgeber wird eine Kopie der aktuellen Konfiguration in das externe EEPROM geschrieben. Der erfolgreiche Abschluss dieser Aktion wird mit einem Quittungston signalisiert. Diese Option sollte man immer vor größeren Konfigurations-Änderungen und vor einem Software-Update ausführen, damit man im Notfall auf eine funktionierende Konfiguration zurückgreifen kann. |
Konfiguration laden/Neustart | Auch hier erscheint zunächst die Sicherheitsabfrage Sicher? und nach deren Bestätigung wird die im externen EEPROM abgelegte Konfiguration in den EEPROM des Controllers geladen und anschließend das System neu gestartet. |
Menü Konfiguration -
Grundeinstellung
Auch bei diesem Menü bleibt der Hauptbildschirm weiterhin aktiv. In der Menüzeile stehen folgende Optionen zur Verfügung:
Basiskonfiguration laden | Nach der Sicherheitsabfrage Sicher? wird die aktuelle Konfiguration komplett durch eine neutrale Grundkonfiguration ersetzt. Diese Option muss bei der Inbetriebnahme eines neuen Anzeigemoduls 2a durchgeführt werden, damit einige kritische Einstellungen (z.B. die Log-Zuordnungen) einen definierten Zustand haben. Außerdem sind alle Sensoren und Alarme deaktiviert, so dass möglichst wenig Alarmsignale generiert werden. Nach dem Laden der Basiskonfiguration startet das System automatisch neu. Übrigens, die nachfolgende Option Grafik-Presets zurücksetzen wird hier mit ausgeführt und muss nicht zusätzlich aufgerufen werden. |
Grafik-Presets zurücksetzen | Nach der Sicherheitsabfrage Sicher? werden alle Grafik-Presets durch eine Grundeinstellung ersetzt. Nach erfolgreichem Abschluss der Aktion ertönt ein Quittungssignal. |
15min Werte löschen | Nach der Sicherheitsabfrage Sicher? werden im externen EEPROM alle 15min-Log-Daten gelöscht und außerdem der dazu gehörende Pointer 1 auf den ersten Platz dieses Speicherbereiches gesetzt. Nach erfolgreichem Abschluss dieser Aktion, die einige Sekunden in Anspruch nimmt, wird ein Quittungston ausgegeben. |
24h Werte löschen | Nach der Sicherheitsabfrage Sicher? werden im externen EEPROM alle 24h-Log-Daten (Minimal-, Maximal- und Mittelwerte) gelöscht sowie der dazu gehörende Pointer 2 auf den ersten Platz dieses Speicherbereiches gesetzt. Auch bei dieser Option wird der erfolgreiche Abschluss durch einen Quittungston bestätigt. |
Meldungen löschen | Nach der Sicherheitsabfrage Sicher? werden im externen EEPROM alle Meldungsdaten gelöscht und außerdem der dazu gehörende Pointer 3 auf den ersten Platz dieses Speicherbereiches gesetzt. Und auch hier ertönt ein Quittungssignal nach erfolgreichem Abschluss der Aktion. |
Vorsicht! Alle Optionen haben eine zerstörerische Wirkung und sollten auf einem laufenden System nur mit äußerster Vorsicht verwendet werden. Bei der Anzeige der Sicherheitsabfrage lässt sich der Vorgang mit Zurück noch Abbrechen, nach der Bestätigung der Abfrage wird die Option unwiderruflich ausgeführt. Übrigens, beim Löschen der Log-Daten werden alles Bytes des entsprechenden Speicherbereiches auf den Wert 0xFF gesetzt. Üblicherweise werden neue EEPROMs in diesem Zustand ausgeliefert. Trotzdem empfehle ich bei der Inbetriebnahme die Ausführung der 3 Lösch-Optionen, damit die Log-Daten-Speicher auf jeden Fall einen definierten Anfangszustand haben und die Pointer richtig initialisiert werden.

Beim Anzeigemodul 2a können eine Reihe von Systemfehlern auftreten. Diese werden meist in der oberen Zeile (Infozeile) anstatt des Datums in invertierter Schrift angezeigt und mit einem akustischen Signal gemeldet. Teilweise werden diese Fehler auch im Meldungs-Log erfasst. Die folgende Übersicht listet alle möglichen Fehlermeldungen auf und gibt Tipps für die Fehlerbeseitigung:
Fehlermeldung | Fehlerbeschreibung und Lösungsvorschläge |
---|---|
Uhr nicht eingestellt | Beschreibung: Dieser Fehler tritt nur bei der ersten Inbetriebnahme des Anzeigemoduls auf. Der Controller versucht hier die aktuelle Zeit aus dem Echtzeituhr-Chip zu laden und findet keine gültigen Daten. Es ist aber prinzipiell möglich, dass dieser Fehler nach einem Netzausfall gemeldet wird. Dazu müsste aber der Ausfall genau zur vollen Stunde während des Schreibens der aktuellen Zeit in die Echtzeituhr aufgetreten sein, was äußerst unwahrscheinlich ist. Dieser Fehler erscheint nicht im Meldungs-Log, da nur bei gültiger Uhrzeit Log-Daten aufgezeichnet werden können. |
Lösung: Entweder warten bis sich die Uhr automatisch mit dem DCF77-Signal synchronisiert hat, was im besten Fall in 2-3 Minuten erledigt ist, bei schlechtem Empfang aber auch wesentlich länger dauern kann. Alternativ kann man über das Menü Konfiguration - Zeiten - Uhr stellen die Uhr manuell setzen und damit den Fehler beseitigen. | |
Kein Datenempfang | Beschreibung: Dieser Fehler tritt auf, wenn das Anzeigemodul keine verwertbaren Daten vom Sensormodul empfängt. Im laufenden Betrieb wird dieser Fehler 20 Sekunden nach dem letzten fehlerfrei empfangenen Datensatz ausgelöst. Beim Systemstart ist die Zeit etwas länger, hier wird der Fehler nach 45 Sekunden signalisiert. Dieser Fehler wird im Meldungs-Log festgehalten und sobald wieder Daten empfangen werden, erfolgt ebenfalls ein entsprechender Eintrag. |
Lösung: Hier liegt entweder ein Fehler bei der Datenverbindung vor oder das Sensormodul sendet keine Daten mehr. Falls letzteres zutrifft, dann signalisieren alle angeschlossenen Anzeigemodule einen Datenempfangs-Fehler. | |
Konfigurations-Fehler | Beschreibung: Dieser Fehler tritt beim ersten Start des Anzeigemoduls und unter Umständen auch nach einem Software-Update auf und signalisiert damit, dass keine gültigen Konfigurationsdaten im internen EEPROM vorhanden sind. Sollte dieser Fehler nach einem Netzausfall auftreten, dann deutet dies darauf hin, dass die Konfigurationsdaten beschädigt sind. Dieser Fehler wird im Meldungs-Log gespeichert. |
Lösung: Beim ersten Start des Anzeigemoduls sollte man unbedingt im Menü Konfiguration - Grundeinstellung die Option Basiskonfiguration laden aufrufen. Wurde der Fehler im laufenden Betrieb signalisiert, dann sollte man im Menü Konfiguration - Backup über die Option Konfiguration laden/Neustart auf das Konfigurations-Backup zurückgreifen. Ist dieses nicht vorhanden, dann muss man alle Einstellungen manuell prüfen und gegebenenfalls korrigieren. Sobald man mindestens einen Wert geändert hat und eine neue Konfiguration ins interne EEPROM geschrieben wird, verschwindet die Fehlermeldung wieder. | |
Speicher-Fehler | Beschreibung: Diese Meldung zeigt an, dass beim Zugriff auf das externe EEPROM ein Fehler aufgetreten ist. Bei der Inbetriebnahme des Anzeigemoduls deutet dies auf einen Kommunikationsfehler mit IC3-IC6 hin. Im laufenden Betrieb sollte dieser Fehler nicht auftreten. Ein Eintrag ins Meldungs-Log erfolgt nicht, da bei einem Speicher-Fehler alle Zugriffe auf das externe EEPROM gesperrt werden und somit auch kein Schreiben von Log-Daten mehr möglich ist. |
Lösung: Weitere Informationen findet man im Menü Status, hier sollte man auf die 4 Symbole hinter dem Element
EEPROM achten. Befindet sich hier mindestens ein ![]() Sind alle 4 EEPROMs mit einem ![]() | |
Echtzeituhr-Fehler | Beschreibung: Hier ist ein Fehler beim Zugriff auf den Echtzeituhr-Chip IC9 aufgetreten. Dieser Fehler wird nicht ins Meldungs-Log geschrieben, da die Echtzeituhr neben der Zeit auch die Pointer für die Log-Daten aufbewahrt und diese nun nicht mehr zugänglich sind. |
Lösung: Im Menü Status wird hinter dem Element ein ![]() | |
Pointer-Fehler | Beschreibung: Dieser Fehler tritt nur während eines Systemstarts auf, insbesondere während des ersten Starts. Hier werden die Pointer für die Log-Daten aus dem Speicher der Echtzeituhr gelesen und falls hier ein Wert ungültig ist, dann wird diese Fehlermeldung ausgelöst. Gleichzeitig versucht das Programm, die Schreibposition wieder zu finden, indem nach dem ältesten Eintrag oder nach dem nächsten leeren Eintrag im entsprechenden Log-Daten-Bereich gesucht wird. Das Problem korrigiert sich also von selbst, meldet dies aber trotzdem als Fehler und schreibt dies auch ins Meldungs-Log. |
Lösung: Bei der ersten Inbetriebnahme sollte man im Menü Konfiguration - Grundeinstellung nacheinander die Optionen 15min Werte löschen, 24h Werte löschen und Meldungen löschen ausführen. Dies sorgt für eine Initialisierung der Pointer. Im laufenden Betrieb kann ein Pointer-Fehler über das Menü Status über die Option Pointer-Fehler löschen zurückgesetzt werden. Obwohl der Pointer repariert wird, kann nicht ausgeschlossen werden, dass Log-Daten verloren gehen oder überschrieben werden. | |
Log-Tabellen-Fehler | Beschreibung: Das Anzeigemodul 2a verwaltet 2 Log-Tabellen, mit denen jedem Sensor ein Log-Speicherplatz zugeordnet wird. Dabei darf jeder Log-Speicherplatz nur einmal vergeben werden. Tritt hier ein Konflikt auf, dann wird ein Log-Tabellen-Fehler generiert und die Log-Funktion deaktiviert. |
Lösung: Bei der ersten Inbetriebnahme sollte zunächst im Menü Konfiguration - Grundeinstellung die Option Basiskonfiguration laden ausgeführt werden. Im laufenden Betrieb tritt dieser Fehler nur auf, wenn im Menü Konfiguration - Sensoren - Log-Zuordnung 1 (oder Log-Zuordnung 2) ein Konflikt entstanden ist. Dieser ist an Pfeilmarkierungen zu erkennen und sollte durch eine sinnvolle Einstellung beseitigt werden. |
Hinweis: Die derzeit aktuelle Version 1.060 von AnzKom kann noch nicht mit dem Anzeigemodul 2a kommunizieren. Ein Update ist in Arbeit, ein Termin für die Fertigstellung kann leider noch nicht genannt werden.
Bevor mit der Datenkommunikation begonnen werden kann, muss eine Verbindung zwischen dem Anzeigemodul 2a und einem PC hergestellt werden. Dafür gibt es 3 Möglichkeiten:
RS-232 | Hierfür wird ein gewöhnliches RS-232 Kabel mit einer 1:1 Beschaltung benötigt, welches auf einer Seite mit einem 9-poligen Stecker auf der anderen Seite mit einer 9-poligen Buchse ausgestattet ist (Verlängerungskabel). Als Kommunikationsport wird hier COM1 verwendet. |
USB | Für diese Verbindung ist ein gewöhnliches USB-Kabel mit A-Stecker auf der einen und B-Stecker auf der anderen Seite erforderlich. Bei der ersten Verbindung wird Windows einen Treiber installieren bzw. nach einem solchen verlangen. Dieser kann von der FTDI Homepage geladen werden. Nach erfolgreicher Installation des Treibers findet man im Geräte-Manager von Windows einen USB Serial Port und dahinter in Klammern die zugewiesene COM-Schnittstelle, die man sich notieren sollte. |
Bluetooth | Für diese Verbindung ist natürlich kein Kabel erforderlich, stattdessen aber eine Gegenstelle mit Bluetooth-Funktionalität, welche das Serial Port Profile (SPP) unterstützen muss.
Das kann ein PC, ein Laptop oder auch ein Smartphone sein, wobei sich das Gerät innerhalb der Funkreichweite (max. 10m) befinden sollte.
Zum Herstellen einer seriellen Verbindung über Bluetooth ist zunächst ein Pairing erforderlich, d.h. PC und Anzeigemodul müssen über eine einmalige Prozedur gekoppelt werden. Diese
Prozedur wird komplett vom PC aus durchgeführt, am Anzeigemodul ist keine Handlung erforderlich (das Bluetooth-Modul muss natürlich aktiviert sein). Eingeleitet wird die Prozedur,
indem man am PC über die Bluetooth-Software eine Suche nach neuen Geräten startet. Das Bluetooth-Modul des Anzeigemoduls ist so eingerichtet, dass es ständig für andere Geräte sichtbar
ist und falls alles korrekt funktioniert, sollte ein neues Gerät mit dem Namen japanboxz gefunden werden. Für dieses neue Gerät startet man nun das Pairing und
es muss ein 4-stelliger Code eingegeben werden, der hier immer 1234 ist.
Nach dem Pairing sollte man im Geräte-Manager mindestens eine Seriell-über-Bluetooth-Verbindung und einen zugeordneten COM-Port finden. Falls nicht, dann muss
über die Bluetooth-Software manuell ein COM-Port zugeordnet werden. Diese COM-Port-Nummer benötigen wir zum Herstellen der seriellen Verbindung.
Übrigens, auf der Platine des Bluetooth-Moduls befindet sich eine LED, die bei eingeschaltetem Modul blinkt und nach dem Herstellen einer seriellen Verbindung in ein Dauerleuchten
übergeht. Das kann man allerdings nur sehen, wenn das Anzeigemodul noch nicht in ein Gehäuse eingebaut wurde. Das Bluetooth-Modul des Anzeigemoduls 2a kann mit 2 Geräten gleichzeitig
gekoppelt werden, allerdings kann immer nur ein Gerät eine Datenverbindung herstellen.
Wird hier die alternative Bluetooth-Option mit dem BlueNiceCOM III verwendet, dann ist der Pairing-Code 0000. Die LED D104 bleibt beim
Pairing zunächst inaktiv. Sie leuchtet erst, wenn von einem gekoppelten PC aus der virtuelle COM-Port geöffnet wird. Übrigens, dieses Bluetooth-Modul kann mit bis zu 3 Geräten
gleichzeitig gekoppelt werden. |
Nach dem Herstellen der Kabelverbindung bei RS-232 oder USB bzw. nach dem Bluetooth-Pairing startet man nun auf dem PC ein Terminalprogramm. Dazu kann entweder das bei Windows XP mitgelieferte HyperTerminal oder auch das Open-Source-Programm TeraTerm verwendet werden. Hier wird bei der Konfiguration der Schnittstelle der COM-Port ausgewählt, welcher mit dem Anzeigemodul verbunden ist. Bei der Auswahl der Parameter hilft folgende Tabelle:
Parameter | RS-232 | USB | Bluetooth |
---|---|---|---|
Bits pro Sekunde (Baudrate) | 115200 | 460800 | 115200 |
Datenbits | 8 | 8 | 8 |
Parität | keine | keine | keine |
Stoppbits | 1 | 1 | 1 |
Flusssteuerung | keine | keine | keine |
An dieser Stelle sollte die Kommunikation funktionieren, für einen ersten Test kann man das Kommando info probieren und die Eingabe mit Enter abschließen. Bitte
nicht wundern, dass das eingetippte Kommando nicht auf dem Bildschirm sichtbar ist. Das liegt daran, dass das Anzeigemodul kein so genanntes Echo sendet. Das ist beabsichtigt und verhindert
die Verfälschung der empfangenen Daten vom Anzeigemodul. Hat das Anzeigemodul das Kommando erkannt, dann wird es ausgeführt und in diesem Fall die Versionsnummer gesendet.

Hat man alle Hürden bis an diese Stelle gemeistert, dann beginnt jetzt die „richtige“ Datenübertragung. Die Kommunikation zwischen PC und Anzeigemodul läuft grundsätzlich nach dem
Master-Slave Prinzip ab. Das bedeutet, dass der PC als Master immer ein Kommando an das Anzeigemodul sendet, dieses das Kommando ausführt und die gewünschten Daten an den PC sendet. Vom
Anzeigemodul aus kann keine Kommunikation gestartet werden.
Alle Daten werden grundsätzlich im Klartext gesendet, wobei die deutschen Umlaute durch die entsprechenden Umschreibungen Ae, Oe, Ue, ae, oe, ue und ss ersetzt werden. Die Datenstruktur der
Sensor- und Meldungsdaten entspricht dem verbreiteten CSV-Format und kann relativ leicht in Datenbank- oder Tabellenkalkulations-Programme importiert werden.
Weil die Arbeit mit einem Terminal auf Dauer etwas umständlich ist, habe ich die PC-Software „AnzKom“ entwickelt, welche auf die im folgenden Text beschriebenen Kommandos zurückgreift und weitgehend automatisch alle Daten vom Anzeigemodul abholt und grafisch bzw. in Listenform darstellen kann. „AnzKom“ kann allerdings noch nicht mit dem Anzeigemodul 2a kommunizieren und wird zurzeit entsprechend erweitert (Stand Juni 2012). Aus diesem Grund muss man vorübergehend auf die folgenden Kommandos ausweichen.

Das Anzeigemodul 2a kann nicht mehrere Kommandos gleichzeitig ausführen. Empfängt das Anzeigemodul weitere Kommandos, während noch ein anderes ausgeführt wird, dann werden diese einfach ignoriert. Es gibt aber eine Ausnahme: Das Kommando end bricht ein laufendes Kommando ab und beendet die laufende Übertragung. Dieses Kommando hat keine Parameter.

Dieses Kommando fordert eine Status-Information vom Anzeigemodul an. Diese enthält den Namen des Gerätes, die Versionsnummer und das Datum der Software. Auch dieses Kommando hat keine Parameter. Hier ein Beispiel:
Anzeigemodul 2a v3.000, 02.06.2012
Kommando gett15
Mit diesem Kommando können die 15min-Werte aus dem Log-Daten-Speicher (Externes EEPROM) ausgelesen werden. Die Daten haben grundsätzlich folgendes Format:
Datum;Zeit;Wert1;Wert2;Wert3;...;Wert32
Dazu ein Beispiel aus der Praxis:
20120627;04:00:00; 23,8; 24,4; 13,6; 23,6; 18,1; 23,9; 10,2; 17,8; 38,6; 22,9; 22,4; 23,6; 19,8; 12,0; 23,1; 22,2;;;;;;;;; 23,0; 19,1;;1002; 44; 51;;3,33 20120627;04:15:00; 23,7; 24,4; 13,5; 23,6; 18,1; 23,9; 10,0; 17,8; 38,3; 22,9; 22,4; 23,6; 19,8; 11,9; 23,1; 22,1;;;;;;;;; 23,0; 19,0;;1002; 44; 52;;3,34 20120627;04:30:00; 23,7; 24,3; 13,4; 23,6; 18,1; 23,9; 9,8; 17,8; 37,8; 22,9; 22,4; 23,6; 19,6; 11,8; 23,1; 22,1;;;;;;;;; 23,0; 19,0;;1002; 44; 51;;3,33
Für das Datum und die Uhrzeit wird bei allen Datensätzen das gleiche Format: yyyymmdd und hh:mm:ss verwendet. Die Werte werden immer in der
gleichen Reihenfolge ausgegeben, wie sie im Log-Daten-Speicher abgelegt sind. Dabei gilt: Wert1-Wert27 sind immer Temperaturwerte, Wert28
ist immer ein Luftdruckwert, Wert29-Wert31 sind immer Luftfeuchtigkeitswerte und Wert32 ist immer die Batteriespannung der Echtzeituhr. An
den Positionen, wo keine Daten vorliegen, wird gar nichts ausgegeben und es folgt direkt das Trennzeichen zum nächsten Wert.
Die Reihenfolge der Werte lässt sich in gewissen Grenzen über das Menü Konfiguration - Sensoren - Log-Zuordnung 1 und
Log-Zuordnung 2 festlegen. Diese Einstellung muss allerdings vor Beginn der Aufzeichnung vorgenommen und gegebenenfalls bei Sensor-Erweiterungen geändert werden.
Weitere Hinweise dazu sind in den entsprechenden Menü-Beschreibungen zu finden. Ohne Änderung der Log-Zuordnung entspricht Wert1 dem Sensor
S01 in der Sensortabelle usw.
Da man nicht immer alle Daten benötigt, die im Anzeigemodul gespeichert sind, kann man mit einem Parameter die gewünschte Datenmenge beeinflussen. Hier sind einige Beispiele für die praktische Anwendung:
gett15 | Ohne Parameter werden alle verfügbaren Daten aus dem Anzeigemodul geholt. Das sind bis zu 3855 Datensätze, was einem Zeitraum von über 40 Tagen entspricht. Die Übertragung dauert auch bei einer USB-Verbindung mit der höchsten Geschwindigkeit einige Zeit. Falls man dieses Kommando abbrechen möchte, tippt man einfach end ein. Man sieht zwar diese Eingabe im Terminal nicht, das Anzeigemodul wird jedoch die Übertragung beenden. |
gett15 2012 | Mit diesem Parameter werden alle verfügbaren Daten des Jahres 2012 geholt. Da das Anzeigemodul den gesamten Speicherbereich durchsuchen muss, kann es bis zu 10 Sekunden dauern, bis der erste Datensatz gesendet wird. |
gett15 201205 | Mit diesem Parameter werden alle verfügbaren Daten vom Mai 2012 geholt. Da das Anzeigemodul den gesamten Speicherbereich durchsuchen muss, kann es bis zu 10 Sekunden dauern, bis der erste Datensatz gesendet wird. |
gett15 20120531 | Mit diesem Parameter werden alle verfügbaren Daten vom 31. Mai 2012 geholt. Da das Anzeigemodul auch hier den gesamten Speicherbereich durchsuchen muss, kann es bis zu 10 Sekunden dauern, bis der erste Datensatz gesendet wird. |
gett15 2012- | Mit diesem Parameter werden alle verfügbaren Daten seit dem Beginn des Jahres 2012 geholt. Hier verwendet das Anzeigemodul einen speziellen Such-Algorithmus und nach maximal einer Sekunde beginnt der Datentransfer. Diese Kombination wird man bei den 15min-Werten kaum anwenden, ist aber bei den folgenden Kommandos durchaus sinnvoll. |
gett15 201205- | Mit diesem Parameter werden alle verfügbaren Daten ab Mai 2012 geholt. Auch hier verwendet das Anzeigemodul eine speziellen Such-Algorithmus und nach maximal einer Sekunde beginnt der Datentransfer. |
gett15 20120531- | Mit diesem Parameter werden alle verfügbaren Daten ab dem 31. Mai 2012 geholt. Auch hier wird durch einen speziellen Algorithmus die Suche beschleunigt. |
Kommando getmin
Dieses Kommando holt die 24h-Minimalwerte (Tages-Minimalwerte) aus dem Log-Daten-Speicher. Das Format und auch die Reihenfolge der Werte entspricht dem Kommando gett15 und es können hier auch die gleichen Parameter verwendet werden. Ohne Parameter werden hier bis zu 416 Datensätze gelesen. Auch hier ein Beispiel aus der Praxis:
20120306;23:59:00; 23,3; 23,9; 3,3; 20,4; 11,8; 22,9; -0,3; 8,8; 35,1; 20,1; 20,6; 23,1; 18,4; 15,2; 21,3; 9,3;;;;;;;;; 22,4; 17,8;;1005; 39; 33;;3,33 20120307;23:59:00; 23,1; 21,4; -0,6; 12,3; 11,6; 22,8; -3,4; 7,4; 35,1; 19,8; 20,3; 23,1; 17,6; 14,3; 20,9; 7,5;;;;;;;;; 22,3; 17,0;; 995; 36; 27;;3,33 20120308;23:59:00; 23,3; 23,3; 3,9; 20,2; 11,8; 22,9; 1,4; 8,9; 35,0; 20,5; 20,6; 23,1; 17,4; 15,8; 21,1; 10,3;;;;;;;;; 22,5; 16,8;; 995; 42; 34;;3,33
Kommando getmax
Kommando getavg
Weitere Informationen zu den Sensor-Log-Daten (Kommandos gett15, getmin, getmax und getavg): Die 15min-Werte sind immer die gerade zu diesem Zeitpunkt aktuellen Sensorwerte. Falls zu dieser Zeit ein Sensor außer Betrieb war, dann wird kein Wert im Log gespeichert und folglich auch kein Wert beim Auslesen gesendet. Die 24h-Werte (Tagesdaten) bestehen aus 3 Werten: Minimal-, Maximal- und Mittelwert. Diese werden täglich um 23:59 Uhr aufgezeichnet und danach zurückgesetzt. Beim Minimal- und Maximalwert wird der wirklich aufgetretene Extremwert gespeichert, dieser muss nicht unbedingt in den 15min-Werten auftauchen und kann durchaus auch zwischen zwei 15min-Intervallen aufgetreten sein. Die Berechnung des Mittelwertes sieht folgendermaßen aus: Jeder eingehende Sensorwert vom Sensormodul erhöht einen Zähler und der aktuelle Wert wird zu einer Summe hinzu addiert. Um 23:59 Uhr wird dann die Summe durch den Zähler dividiert und das Ergebnis als Mittelwert gespeichert.

Dieses Kommando holt die Meldungsliste (Messages) aus dem Log-Daten-Speicher. Auch bei diesem Kommando kann mit den beschriebenen Parametern gearbeitet werden, um die gewünschten Daten gezielt abzurufen. Die Daten haben hier folgendes Format:
Datum;Zeit;Alarm;Parameter
Nicht alle Alarme haben einen Parameter, hier ein Beispiel aus der Praxis:
20120517;08:25:11;Temp zu niedrig;Hausflur 20120517;08:27:58;Temp normal;Hausflur 20120517;21:17:13;System-Neustart; 20120518;13:46:29;Alarm ein;Briefkasten 20120518;13:46:31;Alarm aus;Briefkasten
Kommando getcfg
Mit diesem Kommando lässt sich ein Teil der aktuellen Konfiguration aus dem Anzeigemodul auslesen. Dieses Kommando wird von der „AnzKom“ Software verwendet, um eine schnelle Grund-Konfiguration zu ermöglichen. Es werden dabei folgende Daten übertragen:
L01:01 L02:02 ... L24:24 L25:01 L26:02 L27:03 S01:Wohnzimm S02:Heizraum ... S28:Luftdruck S29:WohnzimmH S30:SchlafzimH S31: AL1:Garagentor ... AL4:Dachfenster
Die mit L beginnenden 27 Zeilen enthalten die Daten der beiden Log-Zuordnungs-Tabellen. Die nächsten 31 Zeilen, welche mit S beginnen, enthalten die Namen der Sensoren und die letzten mit AL beginnenden 4 Zeilen übermitteln die Namen der Alarmeingänge. Es gibt hier eine Besonderheit bei den Namen der Luftfeuchtigkeitssensoren S29-S31: Hier hängt das Anzeigemodul jeweils ein H an, damit sich der Name von einem eventuell gleich benannten Temperatursensor unterscheidet. Dieser zusätzliche Buchstabe wird auch bei Fehlermeldungen von einem Luftfeuchtigkeitssensor mitgesendet. Bei der Auswertung und Anzeige der Daten in „AnzKom“ ist dieses angehängte H jedoch nicht zu sehen und es wird immer der dort festgelegte lange Name verwendet.

Über dieses Kommando lässt sich eine Bildschirmkopie (neudeutsch: Screenshot) vom Anzeigemodul erstellen. Dabei werden alle Pixel des Displays zeilenweise ausgelesen und zum PC übertragen. Die Datenstruktur sieht dann folgendermaßen aus:
255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255;255 128;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;4;0;2;0;1 128;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;5;128;2;2;1 145;0;2;0;0;3;159;0;16;0;0;113;193;28;0;0;0;0;0;0;0;2;0;224;113;197;68;18;6;33 155;0;2;0;0;4;80;0;16;0;64;138;35;34;0;0;0;0;0;0;0;2;1;16;138;37;136;34;14;17
Jeder Zeile besteht aus 30 Werten im Bereich von 0 bis 255 und jeder Wert enthält wiederum 8 Pixel. das ergibt insgesamt 240 Pixel, also genau eine Display-Zeile. Der komplette Datenblock besteht aus 128 Zeilen, was der Display-Höhe von 128 Pixeln entspricht. Das sind natürlich nur Roh-Daten, die erst mit einem Programm zu einem Bild zusammengesetzt werden müssen. Die Software „AnzKom“ nutzt das Kommandos getscr, um eine Grafik mit dem aktuellen Display-Inhalt zu erstellen. Die Screenshots auf dieser Seite sind übrigens auch über dieses Kommando erstellt worden.
Ein bereits vorhandenes Anzeigemodul 2 kann leider nicht ohne Änderung der Hardware mit der neuen Software v3.x arbeiten. Durch die Erweiterung des Temperaturmesssystems von 16 auf 31 Sensoren muss die Speicherbank auf 4 EEPROMs erweitert werden. Dieser Abschnitt zeigt, wie das mit relativ wenig Aufwand möglich ist. Alle Bauteilbezeichnungen beziehen sich übrigens auf den Schaltplan des Anzeigemoduls 2.
Wer das Anzeigemodul 2 auf einer Lochrasterplatine aufgebaut hat, wird wahrscheinlich noch etwas Platz auf der Platine für die beiden zusätzlichen IC13 und IC14 finden. Die Beschaltung der neuen ICs kann man weiter unten dem Schaltplan der Variante 2 entnehmen. Wenn auf der Platine kein Platz mehr verfügbar ist oder das Anzeigemodul 2 auf einer geätzten Platine aufgebaut wurde, dann gibt es folgende 2 Lösungsvarianten:
Variante 1 Huckepack

Bei dieser Variante werden die beiden zusätzlichen IC13 und IC14 im Huckepack-Verfahren auf die vorhandenen IC3 und IC4 aufgelötet - bis auf den Anschluss 2. Dieser wird bei den beiden neuen ICs nach außen gebogen und mit +5V verbunden. Letzteres geht am einfachsten, indem man eine Drahtbrücke zum Anschluss 8 hergestellt. Weitere Bauteile sind bei dieser Variante nicht notwendig. Die obligatorischen 100nF-Abblockkondensatoren befinden sich bereits auf der Platine und reichen bei der kurzen Leitungsführung für alle ICs aus.

Für beide Varianten gibt es im Moment noch keine Bilder, da ich mein Anzeigemodul 2a komplett neu aufgebaut habe und kein Upgrade nötig war. Es ist aber noch ein Anzeigemodul 2 vorhanden, welches zum Anzeigemodul 2a umgebaut werden soll und zu gegebener Zeit wird es auch Bilder für eine der Varianten geben.
Weitere Hinweise: Wenn man die Schaltpläne vom Anzeigemodul 2 und 2a vergleicht, dann wird man noch weitere Unterschiede erkennen. Im Falle eines Upgrades sind aber außer der Erweiterung mit IC13 und IC14 (und gegebenenfalls C37-C40) keine weiteren Maßnahmen erforderlich. Es muss also kein DIP-Schalter für die Konfiguration des Drehimpulsgebers nachgerüstet werden, keine LED und weder Widerstände noch Kondensatoren müssen geändert werden. Auch an der USB-Option sind keine Änderungen notwendig.Nach dem Upgrade der Hardware folgt die Installation der Software. Da sich bei der Software v3.x intern viel verändert hat und auch die Datenstruktur in den EEPROMs anders ist, muss hier zwingend wie im Abschnitt Inbetriebnahme vorgegangen werden, d.h. das Anzeigemodul wird wie ein neues Gerät betrachtet und muss vollständig neu konfiguriert werden. Dabei wird man feststellen, dass sich die Menüstruktur geändert hat und insbesondere die Sensorkonfiguration komplett anders aufgebaut ist. Alle offenen Fragen wird der Abschnitt Bedienung hoffentlich beantworten.
Software „AnzKom“: Die aktuelle Version von AnzKom kann noch nicht mit dem Anzeigemodul 2a kommunizieren. Hier ist gerade ein Update in Arbeit, aber ich kann noch keinen Termin für die Fertigstellung nennen. Um die Log-Daten auf dem PC zu sichern, muss man vorübergehend mit einem Terminalprogramm arbeiten, siehe auch Datenkommunikation. Die hier erstellten Log-Dateien können später mit AnzKom importiert und in die vorhandene Datenbasis integriert werden.