Projekt: Temperatur-Messsystem - Anzeigemodul 3


PfeilKapitel 1:Überblick über das System Menübild
PfeilKapitel 2:Sensormodul 1
PfeilKapitel 3:Sensormodul 2/3
PfeilKapitel 4:Anzeigemodul 1
PfeilKapitel 5:Anzeigemodul 2
PfeilKapitel 6:Anzeigemodul 2a
PfeilKapitel 7:Anzeigemodul 3
PfeilKapitel 8:Web-Modul
PfeilKapitel 9:Datenkommunikation
PfeilKapitel 10: Software „TAnz“
PfeilKapitel 11: Software „AnzKom“

Letzte Bearbeitung: 20.01.2013

SymbolDownloads

Schaltplan Anzeigemodul 3, Variante 1am3a-sch.pdf
Schaltplan Anzeigemodul 3, Variante 2am3b-sch.pdf
Stückliste für Schaltungsvariante 1 mit Empfehlungen zur Bauteilbestellungam3a-stkl.htm
Stückliste für Schaltungsvariante 2 mit Empfehlungen zur Bauteilbestellungam3b-stkl.htm
Software v2.00 für ATmega16 vom 20.01.2013 (Assembler)am3-v200.zip
Platinen-Layout von Bernd Wallner als PDF-Dateiam3-layout1.zip
Platinen-Layout von Lothar Jasper im Sprint-Layout-Formatam3-layout2.zip

SymbolInhaltsverzeichnis

BeschreibungAllgemeine Informationen über das Anzeigemodul 3
SchaltungBeschreibung der Schaltung und der Schaltungsvarianten des Anzeigemoduls 3
HardwareBilder und Hinweise zum Aufbau des Anzeigemoduls 3
SoftwareBeschreibung der Software des Anzeigemoduls 3
InbetriebnahmeInbetriebnahme des Anzeigemoduls 3 und Installation der Software
BedienungBedienungsanleitung und komplette Beschreibung aller Funktionen

SymbolBeschreibung

Dieses Anzeigemodul ist für eine ständige und gut sichtbare Anzeige von bis zu 4 Sensorwerten gedacht und technisch gesehen relativ einfach aufgebaut. Im Gegensatz zu den Anzeigemodulen 1, 2 oder 2a ist dieses mit einer LED-Anzeige ausgestattet. Zwei Schaltungsvarianten ermöglichen die Verwendung von praktisch allen LED-Größen. Die beiden Anzeige-Zeilen können wahlweise einen einzelnen Sensorwert oder zwei Sensorwerte im Wechsel anzeigen, z.B. die Temperatur und die Luftfeuchtigkeit eines Raumes. Wahlweise lässt sich das Modul auf eine Anzeige-Zeile vereinfachen. Weiterhin kann die Anzeige von Alarmen aktiviert werden und anstehende Alarme werden dann im Wechsel mit dem ersten Sensorwert angezeigt. Eine akustische Signalisierung ist jedoch nicht vorgesehen. Die Helligkeit der Anzeige wird mithilfe eines Lichtsensors an die Umgebung angepasst. Außer einem Taster zur Konfiguration sind keine weiteren Bedienelemente vorhanden.

Alle Eigenschaften in Stichpunkten:

SymbolSchaltung

SymbolSchaltungsvariante 1

Schaltungsvariante 1

Das Anzeigemodul 3 kann in 2 Varianten aufgebaut werden: Die oben angezeigte Variante 1 ist die einfache Version für kleine LED-Anzeigeelemente. Diese ist für alle Siebensegment-Anzeigen geeignet, die intern aus Einzel-LEDs bestehen und eine gemeinsame Anode haben. Die weiter unten beschriebene Variante 2 ist mit zusätzlichen Treibern ausgestattet und ermöglicht die Ansteuerung von großen Anzeigen, die intern aus einer Reihenschaltung von mehreren LEDs bestehen. Im Kern sind beide Varianten identisch und es gibt auch nur eine Software für beide Schaltungen. Beide Varianten lassen sich sogar noch vereinfachen: Falls nur ein Sensorwert benötigt wird, dann kann die untere LED-Zeile mit den dazugehörigen Vorwiderständen bzw. Treibern einfach weggelassen werden.

Zur Schaltungsvariante 1: Als zentrales Bauteil wird ein Mikrocontroller ATmega16 (IC1) verwendet, der mit einer Taktfrequenz von 4 MHz arbeitet. Der größte Teil der Portanschlüsse wird hier für die LED-Anzeige benötigt. Die Ansteuerung der Anzeige-Elemente erfolgt im Multiplex-Modus, wobei hier eine spezielle Variante zum Einsatz kommt. Üblicherweise werden bei einer 8-stelligen Anzeige die Segmente aller Anzeigen parallel geschaltet und über die Anoden erfolgt die Auswahl einer einzelnen Anzeigestelle. In dieser Schaltung funktioniert es etwas anders: hier werden zwei Segmentgruppen gebildet (Leitungen A1-P1 und A2-P2) und die Anoden zweier Anzeigestellen gleichzeitig ausgewählt. Ich habe mich für diese Variante entschieden, damit die Anzeige ohne Änderung der Software sowohl einzeilig als auch zweizeilig betrieben werden kann. Außerdem ist es möglich, für die beiden Anzeige-Zeilen unterschiedliche LED-Farben zu verwenden, da hier meist die Vorwiderstände unterschiedlich dimensioniert sein müssen. Die Controller-Ausgänge PB4 sowie PD1-PD7 steuern über die Vorwiderstände R5-R12 direkt die Segmente der oberen Anzeigezeile an, für die untere Zeile sind die Ausgänge PC0-PC7 und die Widerstände R13-R20 zuständig. Die Ausgänge PB0-PB3 steuern jeweils eine Treiberstufe an (R1/T1, R2/T2 usw.), deren Ausgänge wiederum schalten die Anoden von jeweils 2 Anzeigeelementen.

Der Schaltungsteil mit T5, R22, R23 und C6 hat indirekt auch mit der Anzeige zu tun. Hier wird eine von der Umgebungshelligkeit abhängige Spannung zwischen 0V und +5V erzeugt und dem Controller-Eingang PA7 zugeführt (0V bei Dunkelheit, +5V bei voller Helligkeit). Der Controller ermittelt den Spannungswert und steuert damit die Helligkeit der Multiplex-Anzeige über PWM (Pulsweitenmodulation). Das funktioniert so: Die Anzeige wird zyklisch mit einer Frequenz von 200Hz angesteuert, das ergibt eine Zykluszeit von 5ms. Diese Zeit verteilt sich auf 4 Stellen, somit ist jede Stelle für 1,25ms aktiv. Die Anzeigestellen werden aber grundsätzlich nicht in der gesamten Zeit eingeschaltet, sondern je nach ermittelter Umgebungshelligkeit in einem Bereich zwischen 32µs (bei Dunkelheit) und dem Maximum von 1,25ms (bei voller Helligkeit). Durch die unterschiedlich lange Einschaltzeit ergibt sich dann für das menschliche Auge ein unterschiedlicher Helligkeitseindruck. Mit R23 lässt sich die Empfindlichkeit in gewissen Grenzen einstellen.

Der untere Teil der Schaltung besteht aus einem einfachen Pegelwandler für die empfangenen RS-232 Signale (R24, D9, T6) und einem Schaltregler für eine stabile Versorgung der Schaltung mit +5V (IC2, D10, D11, L1, C7-C9). Der Schaltregler wurde in einer Standard-Applikation aufgebaut und hat sich bereits im Anzeigemodul 2 bzw. 2a bewährt. Grundsätzlich kann auch ein klassischer Spannungsregler 7805 verwendet werden, allerdings benötigt dieser einen recht großen Kühlkörper. Der hier verwendete LM2575 kommt ohne Kühlung aus, auch bei der maximalen Eingangspannung von 20V und voller Helligkeit. Die Stromaufnahme der Schaltung beträgt übrigens auf der 5V-Leitung 175mA, wenn alle Segmente mit voller Helligkeit leuchten. Bei einer Versorgung mit 12V beträgt die Stromaufnahme ca. 100mA.

Der Taster S1 wird für die Konfiguration benötigt. Im normalen Betrieb hat er keine Funktion, somit kann er irgendwo auf der Platine untergebracht werden und muss nicht unbedingt von außen zugänglich sein. Die Funktion des Tasters wird später im Abschnitt Bedienung beschrieben. Mit dem Jumper J1 kann man die LED-Ausgänge invertieren. Bleibt J1 offen (so wie in der Schaltung dargestellt), dann sind die Segment- und Stellenausgänge Low-aktiv, sie haben also im Ruhezustand High-Pegel und werden bei Aktivierung einer LED auf Low geschaltet. Wenn J1 gesteckt wird, dann werden die Ausgänge High-aktiv, schalten also bei LED-Aktivierung auf High-Pegel.

Schaltungsvariante 1 gemeinsame Kathode Die Möglichkeit der Invertierung kann man nutzen, um z.B. Anzeigen mit gemeinsamer Kathode anzuschließen. In diesem Fall müssen die Stellentreiber wie im nebenstehenden Bild aufgebaut werden. Die restliche Schaltung bleibt unverändert - allerdings muss J1 jetzt gesteckt werden.

J1 wurde übrigens nur deshalb in die Schaltung eingezeichnet, um die Invertierungsmöglichkeit gut sichtbar zu machen. In der Praxis wird man sich vorher für die geeignete Schaltungsvariante entscheiden und abhängig davon den Controller-Eingang PA1 offen lassen oder fest mit der Masse verbinden.

Die erforderlichen Bauelemente für die Schaltungsvariante 1 sind in dieser Stückliste zu finden.

Noch ein grundsätzlicher Hinweis zur Dimensionierung der Vorwiderstände R5-R20: Diese müssen wegen des Multiplexbetriebes der Anzeige für den 4-fachen Strom bemessen werden. In der vorliegenden Schaltung benötigen die LEDs 3mA Dauerstrom, somit wurden die Widerstände für 12mA dimensioniert. Der Controller kann maximal 40mA treiben, so dass LEDs mit einem Dauerstrom von bis zu 10mA verwendet werden können. Der Controller arbeitet dann allerdings arg am Limit und man sollte in so einem Fall lieber die Schaltungsvariante 2 wählen.

Noch ein Hinweis: Man kann die reine Zahlenanzeige mit zusätzlichen LEDs verfeinern, z.B. mit vorangestelltem In und Out bzw. einem angehängten Einheitensymbol (°C). Beispiele dafür sind in der Galerie zu finden. Damit die Helligkeitsteuerung auch bei den zusätzlichen Anzeigen greift, schließt man diese einfach parallel zu den Anoden von D1/D5, D2/D6, D3/D7 oder D4/D8 und schaltet die Kathoden über passende Widerstände an Masse. Da die PWM-Steuerung über die Anodentreiber erfolgt, wirkt die Helligkeitssteuerung somit auf die komplette Anzeige.

SymbolSchaltungsvariante 2

Schaltungsvariante 2

Diese Schaltungsvariante unterscheidet sich von der Variante 1 durch zusätzliche Treiber-ICs und eine veränderte Stromversorgung. Hier können Anzeigen verwendet werden, die intern aus mehreren in Reihe geschalteten LEDs bestehen, was auf viele Großanzeigen wie z.B. SA23 oder SA40 zutrifft. Diese benötigen eine höhere Spannung und meist auch mehr Strom, somit können die Anzeigen nicht direkt an den Mikrocontroller angeschlossen werden und erfordern zusätzliche Treiberstufen. Diese Funktion übernimmt hier IC3 für die Segmente der oberen Zeile und IC4 für die untere Zeile. Beide ICs haben jeweils 8 Treiberstufen und schalten bei einem High-Signal am Eingang den jeweiligen Ausgang nach Masse durch. Für die Anoden ist IC5 zuständig, dieses enthält ebenfalls 8 Treiberstufen und wird auch bei einem High-Signal am Eingang aktiv, schaltet aber den Ausgang zur Betriebsspannung durch. Damit die Treiber mit den richtigen Signalen angesteuert werden, ist J1 zu schließen bzw. der Controller-Anschluss PA1 an Masse zu legen.

Grundsätzlich sollte es auch möglich sein, Anzeigen mit gemeinsamer Kathode anzusteuern. Hier sind dann UDN2981A für IC3 und IC4 sowie ein ULN2803 für IC5 erforderlich, wobei die unterschiedliche Anschlussbelegung für VCC und GND beachtet werden muss. Auch hier muss J1 geschlossen sein bzw. PA1 an Masse liegen. Diese Option habe ich allerdings nicht getestet.

Die +5V werden in dieser Schaltungsvariante nur noch für den Controller benötigt, deshalb reicht hier ein 7805 aus, der auch nicht gekühlt werden muss. Dafür muss aber am Eingang eine stabilisierte Spannung von +12V zugeführt werden. Hier eignet sich am besten ein Stecker-Schaltnetzteil mit 12V/1A.

Alle für das Anzeigemodul benötigten Bauelemente sind in dieser Stückliste zu finden.

Auch hier muss bei der Dimensionierung der Vorwiderstände R5-R20 beachtet werden, dass für den Multiplexbetrieb der 4-fache Strom benötigt wird. In der abgebildeten Schaltungsvariante 2 wurde von 8mA Dauerstrom ausgegangen und die Widerstände somit für ungefähr 32mA dimensioniert. Bei den hier verwendeten SA40 muss noch beachtet werden, dass der Dezimalpunkt im Gegensatz zu den Segmenten nur aus zwei LEDs besteht. Somit ergibt sich ein abweichender Wert für R12 und R20.

Auch bei dieser Schaltungsvariante lassen sich zusätzliche Anzeigen vor und hinter die Zahlenanzeige setzen. Hier kann man die zusätzlichen Anoden einfach parallel an Pin 15, 16, 17 oder 18 von IC5 anschließen, während die Kathoden über passende Widerstände an Masse gelegt werden.

SymbolHardware

Vom freundlichen Bastler-Kollegen Bernd Wallner wurde ein Platinenlayout für ein Kombi-Modul entwickelt, welches aus einem Sensormodul und einem Anzeigemodul 3 besteht. Das Paket enthält den Schaltplan, das Layout, den Bestückungsplan und eine Stückliste in Form einer PDF-Datei. Ein weiteres Platinenlayout wurde von Lothar Jasper entwickelt und enthält ebenfalls eine Kombination eines Anzeigemoduls 3 mit einem Sensormodul. Hier sind Layouts im Sprint-Layout-Format für beide Schaltungsvarianten und auch eine Version mit zusätzlicher IN/OUT- und °C-Anzeige enthalten.

Platine Oberseite Ich habe das Anzeigemodul 3 nur in der Schaltungsvariante 1 komplett realisiert. So zeigen die folgenden Bilder auch nur die kleine Variante, welche auf einer Lochrasterplatine aufgebaut wurde.

Den größten Teil der Platinenfläche nehmen hier die Anzeigen ein. Rechts davon wurden Controller, Treiber-Transistoren und einige der Widerstände und Kondensatoren platziert. Oberhalb des Controllers ist der Programmieranschluss (ISP) K2 zu sehen, unterhalb der Jumper J1, welcher weggelassen werden kann und hier nur zu Testzwecken dient. Mittig zwischen Anzeige und Controller befindet sich der Fototransistor T5. Dieser wurde etwas erhöht eingelötet, damit er später über ein Loch in der Gehäusefront das Umgebungslicht messen kann.

Auf der linken Seite sind einige Bauteile des Spannungsreglers zu sehen. Ganz unten hat der Taster S1 noch einen Platz gefunden. Dieser Taster wird, wie bereits erwähnt, nur für die Konfiguration benötigt und muss deshalb nicht von außen zugänglich sein.

Platine Unterseite Dieses Bild zeigt die Platine von unten. Auf Grund der begrenzten Platinenfläche mussten einige Bauteile auf die Leiterseite verlegt werden. Das betrifft hier den Kondensator C9 auf der linken Seite, die LED-Vorwiderstände R5-R20 im mittleren Bereich sowie den Steckverbinder K1 und das Poti R23 am oberen Rand. Diese Anordnung erschwert natürlich die Verdrahtung und auch den Abgleich der Helligkeitssteuerung, das Gehäuse ließ hier aber keine andere Möglichkeit zu.

Kurze Verbindungen sowie alle Masse- und Stromversorgungsleitungen wurden hier mit 0,5mm Draht hergestellt. Für alle anderen Verbindungen kam 0,3mm Kupferlackdraht zum Einsatz.

Gehäuse Unterschale Ich habe hier wieder ein Halbschalen-Gehäuse mit den Maßen 123mm x 70mm x 30mm verwendet, welches sich bereits beim Anzeigemodul 1 und den Sensormodulen bewährt hat. Damit die Platine später in der richtigen Höhe sitzt, habe ich in die Unterschale 3 Distanzhülsen mit einer Länge von 15mm eingeklebt. Diese sollten so positioniert werden, dass die Platine flach aufliegt und keine Lötstellen oder Drähte im Weg sind.

Weiterhin sind hier schon jede Menge Bohrungen für die Wandbefestigung und auch Kabeldurchführungen vorhanden - das Gehäuse stammt von einem ausgemusterten Gerät und wurde hier wieder verwendet.

Gehäuse Oberschale Die Oberschale enthält 2 große Ausschnitte für die beiden Displayzeilen und ein Loch für den Fototransistor.

Anzeigemodul 3 fertig Hier ist das fertig montierte Modul zu sehen. Die Platine klemmt jetzt praktisch zwischen den Distanzhülsen der Unterschale und der Oberschale und benötigt keine weitere Befestigung. Vor der Anzeige befindet sich eine rote Folie, die den Kontrast verbessert, aber leider auch etwas spiegelt. Besser geeignet wäre hier ein Stück rotes Plexiglas.

SymbolSoftware

Die Software des Anzeigemoduls 3 wurde in AVR-Assembler geschrieben und besteht im Kern aus 3 Teilen: der Initialisierung, der Hauptprogrammschleife und mehreren Interrupt-Routinen.

Initialisierung: Diese wird bei jedem Systemstart oder Reset ausgeführt und stellt zunächst alle I/O-Ports ein, aktiviert den Empfänger der RS-232-Schnittstelle (RX), konfiguriert den A/D-Konverter für den Lichtsensor und startet 2 Timer. Anschließend werden die gespeicherten Einstellungen aus dem EEPROM gelesen oder Default-Einstellungen gesetzt, wenn keine Daten im EEPROM gefunden wurden. Falls während des Starts der Taster gedrückt ist, wird ein Testprogramm für die Anzeige gestartet und anschließend das System neu gestartet. Ohne Tastendruck wird für 4 Sekunden die Versionsnummer angezeigt und die Hauptprogrammschleife gestartet.

Hauptprogrammschleife: Dieser Programmteil erledigt alle wichtigen Aufgaben des Anzeigemoduls und läuft in einer endlosen Schleife. Die Schleife beginnt mit der Prüfung des Alarm-Status, bildet dann den Mittelwert aus den letzten 4 Lichtsensorwerten und errechnet daraus den PWM-Wert für die Helligkeitssteuerung. Dann werden verschiedene Timeout-Zähler geprüft und schließlich die aktuellen Sensorwerte aufbereitet und in den Display-Speicher gelegt. Im weiteren Verlauf wird der Empfangspuffer der RS-232-Schnittstelle gelesen und wenn ein komplettes Datenpaket zur Verfügung steht, wird eine Plausibilitätsprüfung gestartet. Handelt es sich um das Datenpaket von einem der 4 programmierten Sensoren, dann kommen die Daten in den entsprechenden Speicher. Im Falle einer Alarmmeldung wird der Status des betroffenen Alarms geändert. Beim Empfang einer Sensorbelegung erfolgt ebenfalls die Speicherung. Anschließend wird geprüft, ob der Taster kurz oder lang gedrückt wurde und gegebenenfalls zur entsprechenden Funktion verzweigt. Nach Bearbeiten der Funktion beginnt die Schleife wieder von vorn.

Der weitere Quelltext besteht aus einigen Unterprogrammen, die ebenfalls zur Hauptprogrammschleife gehören. Hier finden diverse Konvertierungen statt, z.B. vom ASCII- ins Hexadezimal-Format oder in den Siebensegmentcode für die Anzeige. Außerdem gibt es hier noch eine 50ms-Warteschleife und eine Routine zum Lesen aus dem EEPROM und zum Schreiben ins EEPROM.

Interrupt-Routinen: Insgesamt laufen 3 Interrupt-Routinen im Anzeigemodul, die folgende Funktionen ausführen:

Timer 1 A Compare Match: Dieser wird zyklisch alle 1,25ms ausgelöst und bedient zunächst die Multiplex-Anzeige, indem alle LEDs ausgeschaltet und anschließend die Daten für die nächste Anzeigestelle ausgegeben werden. Weiterhin wird der aktuelle PWM-Wert für die Helligkeitssteuerung in den Zähler des Timers 2 geladen. Nach jeweils 16 Interrupts (also alle 20ms) wird der aktuelle Wert des Lichtsensors vom A/D-Konverter gelesen, der Taster geprüft und ein Timeout-Zähler für die Anzeige bearbeitet. Nach wiederum 50 20ms-Zyklen (also jede Sekunde) schließt sich die Bearbeitung weiterer Timeout-Zähler an (zur Erkennung von Sensorausfällen und zur Alarmauswertung). Zum Schluss wird entsprechend der eingestellten Zeit die Wechselanzeige gesteuert und falls Alarme anstehen, dann wird der nächste anzuzeigende Alarm ermittelt.

Timer 2 Overflow: Timer 2 wird für die PWM-Helligkeitssteuerung verwendet. Bei jedem Aufruf des Timer-1-Interrupt wird die nächste Anzeigestelle eingeschaltet und anschließend der Zähler des Timers 2 mit dem aktuellen PWM-Wert geladen. Der Timer 2 zählt dann alle 8µs aufwärts und beim Überschreiten des Endwertes 255 wird dessen Overflow-Interrupt ausgelöst. Die Interrupt-Routine schaltet dann die Anzeige wieder aus.

USART RX Complete: Dieser Interrupt wird immer dann ausgelöst, wenn ein Zeichen an der RS-232-Schnittstelle empfangen wurde. Die Routine nimmt dieses Zeichen, legt es in einem 128 Byte großen Ringpuffer ab und setzt einen Zeiger auf die neue Pufferposition.

Hinter den Interrupt-Routinen befinden sich noch einige Datenblöcke: eine Tabelle mit den Siebensegmentcodes für die Anzeige und diverse Texte für Fehler, Alarme und die Konfiguration.

SymbolInbetriebnahme

Die Software v2.00 vom 20.01.2013 für den ATmega16 ist für alle Schaltungsvarianten gedacht und enthält den kommentierten Assembler-Quelltext sowie das fertig compilierte HEX-File. Bei der Programmierung sind unbedingt die Fuse-Bits zu beachten, diese sollten wie in den folgenden Bildern gesetzt sein:

Fuse-Bits 1 So sieht die Einstellung im AVR-Studio für den ATmega16 des Anzeigemoduls 3 aus. Wird eine Programmiersoftware verwendet, die die Angabe der Fuse-Bits in hexadezimaler Form benötigt, dann gilt:

High = 0xD1
Low = 0x3F

Fuse-Bits 2 So sieht die Einstellung in PonyProg für den ATmega16 des Anzeigemoduls 3 aus.

Nach der Programmierung der Software ist das Anzeigemodul 3 bereits voll funktionstüchtig. Es liest beim Start die gespeicherte Sensor- und Alarmkonfiguration aus dem EEPROM-Bereich und zeigt auf der ersten Zeile für 4 Sekunden die Software-Version an. Auf der zweiten Zeile erscheint eine Reihe aus Minuszeichen und auch die erste Zeile zeigt nach Ablauf der 4 Sekunden Minuszeichen an. In diesem Zustand wartet das Modul auf Daten vom Sensormodul. Beim ersten Start des Anzeigemoduls 3 sind beide Zeilen auf die Sensornummer 1 eingestellt und sobald ein Datenpaket vom Sensor 1 empfangen wird, erscheint dessen Wert auf beiden Zeilen der Anzeige. Im folgenden Abschnitt wird die weitere Einstellung des Moduls beschrieben.

SymbolBedienung

Bevor es mit der Konfiguration losgeht, möchte ich auf eine Testfunktion hinweisen, die bei der Inbetriebnahme des Moduls hilfreich sein kann. Hält man während des Einschaltens der Betriebsspannung den Taster gedrückt, dann wird ein LED-Test durchgeführt. Dabei werden bei voller Helligkeit auf jeder Anzeigestelle die Ziffern von 1 bis 8 hochgezählt und danach zusätzlich noch der Dezimalpunkt eingeschaltet. Begonnen wird bei der Anzeigestelle D1 und die anderen Stellen kommen nacheinander hinzu, bis schließlich alle Segmente leuchten. Dieser Zustand hält für 5 Sekunden an, danach wird das Modul neu gestartet und beginnt mit seiner normalen Arbeit. Mit diesem Test kann man feststellen, ob alle Segmente und Stellen richtig funktionieren und man sieht dabei auch, ob die Stromversorgung ausreichend dimensioniert ist.

SymbolAnzeige

Bei einem normalen Start ohne gedrückten Taster erscheint auf der oberen Display-Zeile zunächst für 4 Sekunden die Versionsnummer. Anschließend beginnt der normale Betrieb des Sensormoduls. In diesem Zustand wird auf der oberen und der unteren Displayzeile jeweils ein Sensorwert angezeigt. Dieser kann für jede Zeile frei gewählt werden und es lassen sich alle vom Sensormodul 2 oder 3 gesendeten Daten angezeigten (Temperatur, Luftdruck und Luftfeuchtigkeit). Wahlweise lassen sich auch 2 Sensorwerte auf jeder Zeile im Wechsel anzeigen und auch hier können beliebige Sensornummern eingestellt werden. Die Wechselzeit lässt sich dabei im Bereich von 1-8s einstellen. Die Wechselanzeige ist allerdings nur sinnvoll, wenn zwischen verschiedenen Sensortypen gewechselt wird, also z.B. zwischen einer Temperatur und einem Luftfeuchtigkeitswert.

Das Anzeigemodul 3 ist auch in der Lage, die 4 Alarme des Sensormoduls anzuzeigen. Diese Funktion lässt sich bei Bedarf einschalten und anstehende Alarme werden immer im Wechsel zum ersten Sensorwert auf der oberen Display-Zeile angezeigt. Die laufende Wechselanzeige wird dabei nicht unterbrochen und eine Alarmmeldung erst signalisiert, wenn der nächste planmäßige Wechsel zum zweiten Sensorwert ansteht. Alarme erscheinen also meist verzögert, werden dann aber nach der Rückkehr in den Normalzustand noch eine Minute lang angezeigt. Ein Anzeigebeispiel folgt weiter unten.

Weiterhin kann das Anzeigemodul 3 die Sensorbelegung anzeigen. Diese wird beim Einschalten des Messsystems vom Sensormodul gesendet und gibt Auskunft über die Anzahl der angeschlossenen Sensoren an den 8 Busleitungen des Sensormoduls. Die Sensorbelegung besteht aus einer Folge von 8 Zeichen (Ziffern oder Buchstaben) und wird im Kapitel Datenkommunikation genauer beschrieben. Wird vom Anzeigemodul 3 eine Sensorbelegung empfangen, dann wird die laufende Anzeige auf der oberen Display-Zeile unterbrochen und die Sensorbelegung in 2 Teilen jeweils 4 Sekunden lang angezeigt. Aus technischen Gründen können nur die Zeichen 0 - 9 und A - H dargestellt werden, andere Zeichen werden durch ein - (Minus) ersetzt. Dieser Fall tritt allerdings nur auf, wenn mehr als 17 Sensoren an einem Bus angeschlossen sind und das dürfte in der Praxis kaum vorkommen.

Die folgende Tabelle gibt einen Überblick über die möglichen Anzeigen, die im laufenden Betrieb auftreten können:

AnzeigeBemerkung
Display 01Temperaturwert mit einer Nachkommastelle im Bereich von -55.0°C bis 125.0°C (Sensornummer 1-27)
Display 02Luftdruckwert ganzzahlig im Bereich von 200hPa bis 1150hPa (Sensornummer 28)
Display 03Luftfeuchtigkeitswert ganzzahlig im Bereich von 0% bis 100% (Sensornummer 29-31)
Display 04Ein Alarm ist aktiv (hier Alarm 4), wird auf der oberen Zeile im Wechsel mit dem Sensorwert 1 angezeigt
Display 05Versionsnummer der Software, wird beim Einschalten des Anzeigemoduls für 4 Sekunden auf der oberen Zeile angezeigt
Display 06Erster Teil der Sensorbelegung (Bus 1-4), wird sofort nach dem Empfang für 4 Sekunden auf der oberen Zeile angezeigt
Display 07Zweiter Teil der Sensorbelegung (Bus 5-8), wird sofort nach der Anzeige des ersten Teils für 4 Sekunden auf der oberen Zeile angezeigt
Display 08Erscheint anstatt eines Sensorwertes, wenn nach dem Einschalten des Anzeigemoduls noch keine Daten vorliegen oder wenn vom eingestellten Sensor über eine Minute lang keine Daten mehr empfangen wurden (Sensorausfall)
Display 09Erscheint auf der oberen Zeile, wenn keine Daten vom Sensormodul empfangen werden. Beim Einschalten des Anzeigemoduls kommt dieser Fehler nach einer Minute ohne Datenempfang, bei Ausfall im laufenden Betrieb erscheint diese Meldung bereits nach 20 Sekunden

Die nächste Tabelle zeigt zwei typische Beispiele aus der Praxis und demonstriert die Wechselanzeige:

AnzeigeBemerkung
Display 10Hier werden auf oberen Zeile die Außentemperatur und der Luftdruck und auf der unteren Zeile die Innentemperatur und die Luftfeuchtigkeit angezeigt. Die Wechselzeit wurde in diesem Beispiel auf 2 Sekunden gesetzt.
Display 11Hier sind die gleichen Daten wie im vorherigen Beispiel zu sehen, allerdings sind gerade die Alarme 1 und 3 aktiv. In diesem Fall wird auf der oberen Zeile der zweite Sensorwert ausgeblendet (in diesem Fall der Luftdruck) und durch den aktiven Alarm ersetzt. Sind mehrere Alarme aktiv, denn erscheinen diese nacheinander. Auch hier beträgt die eingestellte Wechselzeit 2 Sekunden.

SymbolKonfiguration

Damit die gewünschten Daten angezeigt werden können, ist eine einmalige Konfiguration erforderlich, welche allerdings jederzeit wiederholt werden kann. Diese erfolgt über den Taster und die obere Anzeigezeile (LEDs D1-D4). Somit ist gewährleistet, dass auch ein einzeiliges Anzeigemodul problemlos konfiguriert werden kann. Während der Konfiguration arbeitet die Anzeige auf der unteren Zeile unabhängig weiter, deshalb wird in der folgenden Beschreibung nur die obere Zeile dargestellt.

Ein beliebig langer Tastendruck führt in die Konfigurationsmenüs. Innerhalb dieser Menüs werden zwei verschiedene Taster-Betätigungen unterschieden:

Langer Tastendruck (> 1 Sekunde)Die aktuelle Einstellung wird auf den nächsten Wert gesetzt oder nach dem letzten Wert wieder auf den ersten zurückgesetzt. Die neue Einstellung wird sofort wirksam und dauerhaft im EEPROM gespeichert.
Kurzer Tastendruck (< 1 Sekunde)Es wird zum nächsten Konfigurationsmenü gesprungen bzw. nach dem letzten Menü die Konfiguration wieder verlassen.

Insgesamt gibt es 6 Konfigurationsmenüs, die in der folgenden Tabelle beschrieben werden:

AnzeigeBemerkungVoreinstellungWertebereich
Display 12Sensor 1: Hier wird der Hauptsensor für die obere Anzeige eingestellt. Im Beispiel ist gerade die Sensornummer 8 ausgewählt. Durch einen Langen Tastendruck kann die Sensornummer geändert werden. Ein Kurzer Tastendruck beendet diese Einstellung führt zur nächsten.11 - 31
Display 13Sensor 2: Hier wird der Hauptsensor für die untere Anzeige eingestellt. Im Beispiel ist gerade die Sensornummer 16 ausgewählt. Durch einen Langen Tastendruck kann die Sensornummer geändert werden. Ein Kurzer Tastendruck beendet diese Einstellung führt zur nächsten.11 - 31
Display 14Sensor 3: Hier wird der Zweitsensor für die obere Anzeige eingestellt. Im Beispiel ist gerade die Sensornummer 0 ausgewählt. Diese Einstellung ist erforderlich, wenn die obere Zeile nur einen einzelnen Sensorwert anzeigen soll. Sollen 2 Werte im Wechsel angezeigt werden, dann muss hier eine Sensornummer im Bereich 1 - 31 ausgewählt werden. Auch hier erfolgt die Änderung der Sensornummer durch einen Langen Tastendruck, während ein Kurzer Tastendruck die Einstellung beendet und zur nächsten führt. 00 - 31
Display 15Sensor 4: Hier wird der Zweitsensor für die untere Anzeige eingestellt. Im Beispiel ist gerade die Sensornummer 29 ausgewählt, welche dann im Wechsel mit dem Hauptsensor angezeigt wird. Soll auf der unteren Zeile nur ein einzelner Sensorwert erscheinen, dann muss 0 ausgewählt werden. Die Änderung der Sensornummer erfolgt auch in dieser Einstellung durch einen Langen Tastendruck, während ein Kurzer Tastendruck die Einstellung beendet und zur nächsten führt.0 0 - 31
Display 16Alarme: Hier wird eingestellt, ob die Alarm-Eingänge vom Sensormodul ausgewertet werden sollen oder nicht. Im Beispiel ist die Alarmsignalisierung eingeschaltet. Soll sie ausgeschaltet werden, dann ist die Einstellung 0 zu wählen. Beim Wechsel von der Einstellung 0 zur Einstellung 1 wird der aktuelle Status der 4 Alarme als Normalzustand gespeichert und die Signalisierung aktiviert. Jeder Alarm, der vom Normalzustand abweicht, wird dann in der Anzeige erscheinen. Die Umschaltung der Alarmsignalisierung erfolgt durch einen Langen Tastendruck, ein Kurzer Tastendruck beendet diese Einstellung und führt zur nächsten.0 0 - 1
Display 17Wechselzeit: Hier wird die Anzeigezeit eingestellt - im Beispiel sind es 2 Sekunden. Nach Ablauf dieser Zeit wird zum anderen Sensorwert oder zur Alarmanzeige gewechselt, sofern die Alarmsignalisierung eingeschaltet ist und aktive Alarme anstehen. Die Änderung der Zeit erfolgt durch einen Langen Tastendruck, ein Kurzer Tastendruck beendet diese Einstellung und führt in die normale Anzeige zurück. 21 - 8

Übrigens, erfolgt über eine Minute lang keine Taster-Betätigung, dann wird die Konfiguration wieder verlassen und zur normalen Anzeige zurückgeschaltet.

Noch einige Hinweise zu den Einstellungen: Eine Möglichkeit zum Quittieren von Alarmen oder Fehlermeldungen ist übrigens nicht vorgesehen. Ausfälle und Alarme werden solange signalisiert, bis die Fehlerquelle beseitigt ist bzw. der Alarm wieder verschwindet. Dabei werden Alarme grundsätzlich nach der Rückkehr in den Normalzustand noch 1 Minute lang weiter signalisiert. Weiterhin haben einige Anzeigen eine höhere Priorität. So drängelt sich eine empfangene Sensorbelegung immer vor und wird sofort auf der oberen Zeile angezeigt. Gleiches gilt für den Ausfall der Datenverbindung - dies wird 20 Sekunden nach dem letzten empfangenen Datenpaket sofort auf der oberen Zeile signalisiert. Die höchste Priorität haben jedoch die Konfigurations-Menüs, diese werden auch bei Fehlern immer auf der oberen Zeile angezeigt und ermöglichen so eine ungestörte Eingabe.

An dieser Stelle möchte ich mal einen Dank an die Wikipedia-Community loswerden. Insbesondere bei der Dokumentation des Anzeigemoduls 3 war die Wikipedia sehr hilfreich und hat gute Vorlagen für die Siebensegment-Anzeigen geliefert. Also vielen Dank und weiter so!


Startseite - Seitenanfang

Allgemeines - Projekt-Überblick - Links, Software - Neuigkeiten - „Klassiker“ - Galerie - Impressum

AVR-Programmierung - Multifunktionsuhr - Matrixuhr - Tischuhr - Wohnraumuhr - Wohnraumuhr 2 - Wecker - LCD-Wecker - Zahnputzuhr - BigBen-Türgong - Fahrtregler - EPROM-Programmiergerät - Temperaturmesssystem - USB-RS232 Interface - Weihnachtsstern - Kleine Projekte