Kapitel 1: Überblick über das System
Kapitel 2: Sensormodul 1
Kapitel 3: Sensormodul 2/3
Kapitel 4: Anzeigemodul 1
Kapitel 5: Anzeigemodul 2
Kapitel 6: Anzeigemodul 3
Kapitel 7: Datenkommunikation
Kapitel 8: Software "TAnz"
Kapitel 9: Software "AnzKom"
Das Anzeigemodul 3 wurde entwickelt, um zwei Temperaturwerte übersichtlich anzuzeigen. Es arbeitet im Gegensatz zu den anderen Anzeigemodulen mit LED-Anzeigen und ist relativ einfach aufgebaut. Auf Bedienelemente
wurde (bis auf einen versteckten Taster zur Konfiguration) verzichtet und es ist auch keine Überwachung der Temperaturwerte und Alarme vorgesehen. Es lässt sich aber so konfigurieren, dass anstehende Alarme
angezeigt werden. 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 einzelnen 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 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 Temperaturwert benötigt wird, dann kann die untere LED-Zeile mit den dazugehörigen Vorwiderständen und eventuellen Treibern einfach weggelassen werden.
Zur Schaltung: 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. 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. 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 aktiviert, sondern je nach ermittelter Umgebungshelligkeit in einem Bereich zwischen 32µs (bei Dunkelheit) und dem Maximum von 1,25ms (bei voller Helligkeit). Somit gleicht sich die LED-Helligkeit
ungefähr an die Umgebung an. 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 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. 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 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.
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.
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.
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.
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.
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.
Die Oberschale enthält 2 große Ausschnitte für die beiden Displayzeilen und ein Loch für den Fototransistor.
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.
So sieht die Einstellung im AVR-Studio für den ATmega16 des Anzeigemoduls 3 aus.
So sieht die Einstellung in PonyProg für den ATmega16 des Anzeigemoduls 3 aus.
| Langer Tastendruck (> 1 Sekunde) | Ändern der aktuellen Einstellung. |
| Kurzer Tastendruck (< 1 Sekunde) | Weiter zum nächsten Konfigurationsmenü bzw. Ende der Konfiguration. |
| Anzeige | Einstellung |
|---|---|
| S1.16 (die rechten beiden Stellen blinken) | Einstellung der Sensornummer (1-16) für die obere Zeile. |
| S2.16 (die rechten beiden Stellen blinken) | Einstellung der Sensornummer (1-16) für die untere Zeile. |
| AL. 1 (die rechte Stelle blinkt) | Alarmanzeige aus- oder einschalten (0/1). |
| Anzeige | Beschreibung |
|---|---|
| FEHL | Fehler - kein Datenempfang. Diese Anzeige erscheint eine Minute nach dem Einschalten des Moduls, wenn keine Daten empfangen wurden. Im laufenden Betrieb wird diese Meldung 20 Sekunden nach Empfang des letzten Datenpaketes angezeigt. |
| - - - - | Es wurde noch kein Temperaturwert empfangen. Im laufenden Betrieb erscheint diese Anzeige, wenn der gewählte Sensor länger als eine Minute keine Daten mehr sendet (Sensorausfall). Diese Anzeige kann auch auf der unteren Zeile erscheinen. |
| 3300. | Es wurde eine Sensorbelegung empfangen. Die 8-stellige Sensorbelegung wird hier in 2 Teilen ausgegeben, damit sie auch auf einzeiligen Anzeigemodulen abgelesen werden kann. Der Dezimalpunkt signalisiert, dass es sich hier um den ersten (linken) Teil der Sensorbelegung handelt. Die Anzeige erscheint für 4 Sekunden, danach wird der Rest der Sensorbelegung angezeigt. |
| 0200 | Es wurde eine Sensorbelegung empfangen und hier erscheint der zweite Teil. In diesem Beispiel ergibt sich zusammen mit den 4 Stellen weiter oben die Sensorbelegung 33000200. Auch diese Anzeige erscheint für 4 Sekunden, danach wird wieder zur normalen Temperaturanzeige zurückgekehrt. |
| AL-1 | Alarm 1 ist aktiv. Diese Anzeige wechselt alle 2 Sekunden zwischen dieser Alarmanzeige und der Temperaturanzeige. Falls mehrere Alarme aktiv sind, dann erscheint nacheinander jeder Alarm für 2 Sekunden und anschließend ebenfalls für 2 Sekunden die Temperaturanzeige. Diese Meldung wird nur dann ausgegeben, wenn die Alarmanzeige im Konfigurationsmenü eingeschaltet wurde. |
| AL-2 | Alarm 2 ist aktiv. Hier gilt das gleiche wie bei Alarm 1. |
| AL-3 | Alarm 3 ist aktiv. Hier gilt das gleiche wie bei Alarm 1. |
| AL-4 | Alarm 4 ist aktiv. Hier gilt das gleiche wie bei Alarm 1. |
Kapitel 1: Überblick über das System
Kapitel 2: Sensormodul 1
Kapitel 3: Sensormodul 2/3
Kapitel 4: Anzeigemodul 1
Kapitel 5: Anzeigemodul 2
Kapitel 6: Anzeigemodul 3
Kapitel 7: Datenkommunikation
Kapitel 8: Software "TAnz"
Kapitel 9: Software "AnzKom"