Wie heißt diese Art von Nur-Ziffern-LCD?

8

Ich habe diese Art von LCD oft in Waagen, Taschenrechnern, Messgeräten, Mikrometern usw. gesehen. Ich weiß, dass es sich um ein ziemlich traditionelles Display handelt, aber ich mag seine Kompaktheit, Einfachheit und vielleicht sogar weniger Kosten im Vergleich zu TFTs oder Smartphones. Geben Sie Touch-Displays ein.

Nur-Ziffern-LCD


[ Wie heißt es? Beantwortet von @ kevlar1818 und @stevenvh: "Sieben-Segment-Anzeige"]

Ich möchte mit dieser Art von LCD arbeiten, zum Beispiel habe ich gerade diese 8-stellige mit dem Namen VIM-878 aus dem Digikey-Katalog gefunden. Hier ist das Datenblatt .

Wie kann ich damit kommunizieren? Ich würde gerne wissen, was eine gute / übliche Art der Verbindung mit einem einfachen AVR-Mikrocontroller wie einem Atmega8 wäre - vorzugsweise mit Schnittstellenschaltungen / Teilen, die nicht zu groß sind.

  • Ich nehme an, dass eine Art Treiber oder Multiplexer notwendig wäre? Ich schätze, ich suche nach einer Anfangsperspektive von anderen, die möglicherweise bessere Erfahrungen mit der Verbindung mit dieser Art von LCD haben.
Brettbiss
quelle
Vielen Dank, dass Sie die angeforderten Informationen hinzugefügt haben. Bitte achten Sie jedoch darauf, dass Sie frühere Änderungen nicht rückgängig machen.
Chris Laplante
Genau das habe ich getan, oder? Könnten Sie oder jemand helfen, das Bild zurückzusetzen?
Boardbite
Sie können versuchen, ein Rollback durchzuführen, um 2 zu bearbeiten, und dann Ihre Informationen hinzufügen. Ich habe nicht den Repräsentanten, um Rollbacks zu machen, also werde ich es markieren.
Chris Laplante

Antworten:

12

Es ist eine 7-Segment-Anzeige . Im Gegensatz zu den Punktmatrix-Zeichenanzeigen bezieht sich Kevlar auf diese meist nicht intelligenten Module. Die meisten Punktmatrix-Displays verfügen über einen HD44780-kompatiblen Controller, auf den Sie einfach ASCII-Codes schreiben können. Ein 7-Segment-LCD ist jedoch häufig nur das Glas mit Anschlüssen für Segmente und einer Reihe von Rückwandplatinen (häufig bis zu 4).

Geben Sie hier die Bildbeschreibung ein

Das Fahren von LCDs kann umständlich sein, da sie nicht nur zwei Ebenen verwenden, sodass Sie sie nicht mit gängiger digitaler Logik fahren können.

Geben Sie hier die Bildbeschreibung ein

Am besten wählen Sie einen Mikrocontroller mit integriertem LCD-Controller aus, an den Sie das Display direkt anschließen können, z. B. den TI MSP430x4xx . Wie die meisten Controller kennt auch dieser nur Segmente; es sind keine Ziffern oder irgendetwas bekannt. (Großartig, zuerst hatten wir ein dummes Display, jetzt haben wir auch einen dummen Fahrer!) Dafür gibt es einen Grund. Diese LCD-Treiber werden häufig zum Ansteuern von benutzerdefinierten LCDs verwendet, die eine Mischung aus einem numerischen Teil, Balkendiagrammen und benutzerdefinierten Symbolen sein können. Ein solches Symbol ist auch ein einzelnes Segment, daher macht es keinen Sinn, über Ziffern zu sprechen.

Geben Sie hier die Bildbeschreibung ein

Diese Anzeige enthält Symbole wie "Batterie" und "Wecker", aber auch alle Textfelder wie "AM", "PM" und "SNOOZE" sind Symbole, die aus einem einzelnen Segment bestehen (dh von einem einzelnen Bit gesteuert werden).

Lesen Sie weiter
MSP430x4xx Family Benutzerhandbuch . Der LCD-Controller wird auf S. 709 ff. Beschrieben.

stevenvh
quelle
Angenommen, Segmente bedeuten die Anzahl der Teile, die zum Erstellen eines Zeichens / einer Ziffer auf meinem LCD verwendet werden. Ich denke, dass der Mikrocontroller großartig wäre - er kann 96 unterstützen und hat nur eine Stromaufnahme von 200 uA. Schlagen Sie vor, meinen AVR durch den TI-Mikrocontroller zu ersetzen oder nur über ihn mit dem LCD zu kommunizieren? Letzteres würde ich aufgrund meiner AVR-basierten Erfahrung (auch begrenzt!) Bevorzugen. Kannst du das kommentieren?
Boardbite
@Inga - Mir ist kein AVR mit einem LCD-Treiber an Bord bekannt. Die Verwendung des MSP430 als Anzeigetreiber kann eine gute Idee sein: Ihr AVR kann an seiner Hauptaufgabe festhalten, und das Programm für den MSP430 kann einfach (wenn Sie nicht viel Erfahrung damit haben) oder erweitert (wenn Sie möchten) gehalten werden Machen Sie es zu einem intelligenten Treiber, den Sie mit Befehlen wie "Inkrement" versehen können.
Stevenvh
Das klingt sehr machbar; Ich werde gleich einen der TI-Chips bestellen! Kann ich für den Fall, dass meine Programmierversuche mit diesem Mikrocontroller fehlschlagen, einen einfachen Multiplexer oder LED-Treiber verwenden, z. B. einen IC wie diesen, den ich gerade von Maxim gefunden habe ? Ich sehe Ärger aufgrund dessen, was Sie über die verschiedenen Ebenen gesagt haben.
Boardbite
@Inga - Nein, Sie können den MAX7219 nicht verwenden, das ist ein LED-Treiber. Zum einen multiplexen sie viel zu schnell für LCDs. Die mehreren Ebenen sollten kein Problem sein. Dafür hast du einen Fahrer. Das kümmert sich um alles. Was halten Sie von dem intelligenten Treiber, der die anzuzeigende Nummer zählt? Sie könnten Befehle wie "
Ladewert
Haha, es hat wirklich solche Befehle?! Ich muss sicherlich Code schreiben, um diese Funktionen selbst zu implementieren, nicht wahr?
Boardbite
2

Was Sie denken, wird als 7-Segment-LCD bezeichnet. Wenn Sie wissen, wie man eine normale LED aufleuchtet, sind Sie 1/8 des Weges dorthin.

Hier ist das Wiki dazu. Es gibt eine Theorie darüber, wie Sie Zahlen erstellen würden, indem Sie verschiedene Arrays der LEDs beleuchten: http://en.wikipedia.org/wiki/Seven-segment_display

(de) Multiplexing ist eine gute Methode zum Beleuchten eines großen 7-Segment-Panels, obwohl dies nicht erforderlich ist. Wenn Ihre E / A-Ports begrenzt sind, ist dies der richtige Weg. Die Grundlagen des Demuxing funktionieren wie folgt (vorausgesetzt, Sie kennen hier Binär). Schau dir dieses Bild an:

Mit einer 3-Bit-Binärzahl wie 000 können wir bis zur Zahl 7 darstellen (IE, um Port 5 auszuwählen, hätte ABC 101). Was in Ihrer Situation im Demux passieren würde, ist, dass ein Eingang so etwas wie ein hohes Signal ist und AB & C E / A-Ports sind. Die 0 bis 7 sind mit jedem Segment des LCD verbunden. Wenn Sie von Ihrem Controller aus auf ABC schreiben, können Sie ein Segment beleuchten. Sie sagen vielleicht warten, aber wenn ich eine Zahl aufleuchten lassen möchte, müssen viele Segmente beleuchtet werden, nicht nur das 5. Segment. Danach können Sie in zwei Straßen schauen, um auf dem LCD eine Nummer anzuzeigen. Das erste ist das Hinzufügen weiterer Demux für zusätzliche benötigte Segmente. Der zweite ist ein Software-Ansatz, bei dem jedes Segment sehr schnell geflasht wird, um die Illusion zu erzeugen, dass das Panel vollständig beleuchtet ist.

Nimjox
quelle
Ich mag den ersten Ansatz, den Sie vorgeschlagen haben: mehr Demux. Aber wenn ich diesen Weg gehen würde, wie könnte man die physische Größe von Komponenten reduzieren? In meinem Fall würde ich 8 Ziffern = 56 Segmente benötigen, wissen Sie?
Boardbite
Ähm, Sie werden nicht genug E / A haben, um 8 Stellen mit einem nichts als Hardware-Ansatz zu fahren. Hier ist ein Link, es ist beängstigend, ich weiß, aber ich glaube nicht, dass ich eine einfachere Aufschlüsselung zeichnen / erklären kann. doctronics.co.uk/4511.htm . Das ist aber die Theorie. In der Praxis würde ich die Scanmethode in Betracht ziehen. Ich weiß, dass sie möglicherweise kein schönes Bild liefert oder kompliziert ist, aber in der Industrie sehr verbreitet ist. Viel Glück.
Nimjox
@Inga - sogar 64, wenn Sie auch Dezimalstellen zählen! Es gibt zwei Gründe, warum Sie diese nicht gemultiplexten nicht finden. Eine davon ist nur die Anzahl der Pins, sowohl auf dem Display als auch auf dem Mikrocontroller. Der Mikrocontroller würde mindestens 80 Pins und mehr Pins = mehr Kosten benötigen. Es gibt aber auch Routing. Wenn Sie eine Multiplex-Anzeige haben, wird das Routing eines Segments über ein benachbartes Segment ausgeführt, aber wenn alle getrennt sind, können Sie so etwas nicht tun. Das ist auch ein Aufpreis.
Stevenvh
2

Ich glaube, Sie beziehen sich auf eine Sieben-Segment-Anzeige oder eine Punktmatrix-Anzeige .

Hier ist ein Beispiel für Sparkfun mit dem entsprechenden Datenblatt . Dieses AVR-Beispiel / Tutorial finden Sie im Abschnitt "Dokumente" der Produktseite. Ist Sparkfun nicht großartig?


Lassen Sie uns anhand dieser 14-Segment-Anzeige und ihres Datenblatts herausfinden, wie sie verwendet wird.

Nehmen wir das Beispiel eines 7im ersten (ganz linken) Segmentcluster gezeigten.

So schreiben Sie ein 7, müssen wir assert Segmente 1A, 1Bund 1C, wie im Datenblatt gesehen. Diese Segmente sind alle Pin 35 des Geräts zugeordnet, jedoch in unterschiedlichen COMZeilen. Bei einem solchen kryptischen Datenblatt würde ich davon ausgehen, dass diese COMLinien den Pins 17 bis 20 zugeordnet sind, wenn man die Tabelle im Datenblatt berücksichtigt.

Somit wird jedes Segment über geltend zu machen, man Stift 35 hoch halten würde , während schnell zwischen behauptet cycling COM1, COM2und COM3über die Stifte 18, 19, bzw. 20. Die drei Segmente werden alle gleichzeitig beleuchtet angezeigt, wodurch ein 7.

Abgesehen davon verwendet gut geschriebener Code einfach eine Art Karte für ein bestimmtes Zeichen, das angezeigt werden soll. Die Herausforderung besteht darin, diese Karte für JEDEN Segmentcluster funktionsfähig zu machen.


Ich empfehle immer noch ein Punktmatrix-Display wie das erste, mit dem ich verbunden bin. Es gibt sicherlich leichtere Designs da draußen. Der Vorteil der Verwendung einer Punktmatrix-Anzeige besteht darin, dass in den meisten ein Datenregister integriert ist, sodass Sie nur 8-Bit-ASCII-Zeichen übergeben können, ohne dass es zu Problemen bei der Implementierung kommt, wie im obigen 14-Segment-Beispiel.

kevlar1818
quelle
Ich habe übrigens ein LCD, das dem von Ihnen geposteten Beispiel sehr ähnlich ist! Aber es ist ein sehr dickes Modul und ohne eingeschaltete Hintergrundbeleuchtung nicht sehr gut lesbar. Während die, die ich gepostet habe, trotz fehlender Hintergrundbeleuchtung viel besser sichtbar ist und irgendwie sauberer erscheint (keine Art von Schattenresten der nicht angezeigten Ziffern). Irgendwelche Gedanken? Gibt es Unterkategorien in diesen Anzeigen?
Boardbite
Unter Verwendung von "Sieben-Segment-Anzeige" als Suchbegriff habe ich Folgendes gefunden: Digikey-Seite, mit der ich beispielsweise arbeiten möchte. Und das ist das Datenblatt .
Boardbite
Ich wollte eigentlich sagen (basierend auf Ihrer Erklärung), dass das 14-Segment einfacher erscheint, nein? Nun, OK, nicht einfacher als nur ASCII-Zeichen zu übergeben, aber ziemlich einfach in Bezug auf Logik und Steuerungsaufwand (z. B. nur ein Segment beleuchten). Übrigens, wie geht es in dem oben empfohlenen Ansatz mit dem um, was Stevenvh in seiner Antwort gesagt hat, dass es für diese Anzeigen keine zwei Logikebenen gibt?
Boardbite
@Inga Es scheint mir nicht, dass es in dieser speziellen 14-Segment-Anzeige mehr als zwei Logikpegel geben müsste, da sie eine so ausführliche Pinbelegung hat. Ich bin jedoch immer noch nicht positiv, da das Datenblatt und die Digikey-Seite nichts über Spannungs- / Logikpegel aussagen. Ehrlich gesagt ist es normalerweise keine gute Praxis, ein so schlecht dokumentiertes Gerät zu kaufen.
kevlar1818
1
Warum nicht einige der LCD-Treiber verwenden, die über I2C angeschlossen sind, wie z. B. Holtek 1632 oder ähnliches? (Ich hoffe, ich habe das Teil richtig!)
Vaibhav Garg