Gast
#3094776
Für stromsparende Anwendungen mit numerischer Anzeige, sind LC-Anzeigen nach wie vor besonders geeignet. Hier wird eine statische Ansteuerung mit Schieberegistern gezeigt, die mit kostengünstigen, leicht verfügbaren Bauteilen auskommt. Die Stellenanzahl läßt sich problemlos erweitern, sodass auch mehrere Anzeigen von einem µC angesteuert werden können. Im Gegensatz zu 7-Segment-Anzeigen mit LEDs, die statisch oder im Multiplex angesteuert werden können, muß bei LCDs jedes aktive Segment mit einer Wechselspannung (typ. 30-100Hz) bezogen auf die 'backplane' (BP) betrieben werden. Jede angezeigte Stelle besteht aus acht Segmenten 'A' – 'G' und '.'. Da die Stromaufnahme sehr gering ist, reicht pro Stelle ein CMOS-4094 Schieberegister. Für eine 4-stellige Anzeige braucht man somit vier Schieberegister. Ferner braucht man ein Steuersignal für die gemeinsame BP. Da der Dezimalpunkt ganz rechts keinen Sinn ergibt – in der Regel ist er auf der Anzeige auch garnicht ausgeführt – kann man den 8. Ausgang eines Schieberegisters hierfür verwenden. Wie gesagt müssen die Segmente mit Wechselspannung bezogen auf BP betrieben werden. In der gezeigten Schaltung/Programm wird dies dadurch erreicht, dass die zugehörigen Bits im Speicher für die BP immer auf '0' und ein aktives Segment auf '1' gesetzt werden. Bei der Ausgabe auf die Schieberegister, die per Interrrupt mit 100Hz erfolgt, werden die auszugebenden Bytes (Digits) einmal wie abgespeichert und anschließend invertiert ausgebenen (EXOR mit 0xff). Dadurch wird an den aktiven Segmenten eine 50Hz Wechselspannung in Bezug auf BP erzeugt, die ein Tastverhältnis von typ. 50% aufweist. Dies ist wichtig, damit sich an den Segmenten kein Gleichspannungsanteil bildet, der unter 1% bleiben muß. Um die Signale zur Ansteuerung gering zu halten, werden nur LCD_DATA, LCD_CLK und LCD_STR für die 4094 ausgegeben. Der '1' Pegel für OE wird aus dem zyklischen LCD_STR-Signal gewonnen und zwischengespeichert. Siehe Schaltplan: R1, C1, R2, D1 Auf der Platine zur Ansteuerung ist noch Platz für einen Attiny45/85, mit dem sich einfache Anwendungen umsetzen lassen. Mit den 'Innereien' des Tiny45 lassen sich zum Beispiel eine Temperaturanzeige/Überwachung oder – wie im angehängten Programm 'LCD_4_45.c' – ein Spannungs-Messmodul aufbauen. Es geht dabei nicht um Präzisionsmessungen, sondern um Beispiele für eigene Programme. Es wird gezeigt, wie die LCD-Ansteuerung per Interrupt erfolgt, wie 'int'- oder 'float'-Zahlen (int32_t x1000 skaliert auf drei Nachkommastellen) ausgeben werden, wie sich die Schaltung per 3V-Kopfzelle sparsam ein/ausschalten und betreiben läßt sowie ein paar kleine programmtechnische Spielereien. Eine nähere Beschreibung der EIN-AUS-Funktion findet sich hier: Beitrag "EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä." Im ausgeschaltenten Zustand liegt die Stromaufnahme bei <0,3µA und im Betrieb bei <0,5mA. Eine CR2032 Knopfzelle reicht für >400h Betriebsstunden. Die LC-Anzeige verblasst bei Vcc <= 2V; Vcc kann aber auch bis 5V betragen. Der Musteraufbau (Bilder) weicht noch etwas von der endgültigen Schaltung ab. Falls mehr IO-Pins notwendig sind, fände ein ATtiny44 noch genug Platz auf der Platine. Bei Gelegenheit werde ich ggf. noch ein Programm für einen einfachen 4-stell. Drehzahlmesser hinzufügen.



