Ich habe eine 4-stellige 7-Segment-Anzeige mit gemeinsamer Anode. Ich habe jede Segmentkathode mit einem 330-Ohm-Widerstand verbunden, und der Widerstand ist mit einem Schieberegister verbunden. Jede Segmentkathode ist mit demselben Schieberegister verbunden. Jede gemeinsame Anode ist mit einem zweiten Schieberegister verbunden. Im Moment verwende ich ein Arduino, um die Anzeige zu multiplexen, um eine Zahl anzuzeigen.
Das funktioniert super, aber es gibt ein Problem. Das Display ist nicht hell genug! Ich gehe davon aus, dass dies eine gemeinsame Anodenkonfiguration ist und dass das Schieberegister nur etwa 40 mA Strom für 8 Segmente (AG und Dezimalpunkt) liefern kann.
Ich habe entschieden, dass ich mehr Kraft brauche. Mein erster Gedanke war, zu versuchen, 4 PNP-Transistoren zu verwenden . Ich schließe sie richtig an und die Segmente werden heller. Großartig! Es gibt jedoch ein Problem. Es scheint, als würde der Transistor etwas verlangsamen! Es gibt ein böses Leuchten von Segmenten, die von anderen Ziffern verwendet werden! Ich habe den Mikroprozessor so eingestellt, dass er jedes Segment 4 Millisekunden lang anzeigt. Das Datenblatt behauptet, dass der Transistor schneller ein- und ausschalten sollte. Warum tritt dieses schwache Leuchten auf?
So sieht es aus, wenn 1111 angezeigt wird:
So sieht es aus, wenn 1112 angezeigt wird:
Hier ist ein möglicher Mechanismus für den Fehler. Sie sagen, es funktioniert (schwammig) ohne die Transistoren, aber nicht mit ihnen. Also scheint der Fehler bei den Transistoren zu liegen. Gibt es einen Grund, warum die Transistoren möglicherweise etwas Strom durchlassen, wenn sie dies nicht sollten?
Ja. Du verwendest einen PNP-Transistor. Wie Sie wissen, sind diese Transistoren eingeschaltet, wenn die Basisspannung niedriger als die Emitterspannung ist. Sie sind ausgeschaltet, wenn die Basisspannung größer oder gleich der Emitterspannung ist.
Das Problem mit dem Schieberegisterchip ist, dass die Ausgänge immer kleiner als die Emitterspannung sind. Ich konnte die Teilenummer des von Ihnen verwendeten Chips nicht ganz erkennen, aber laut Datenblatt für den 74HC595 (Seite 6) erreichen die Ausgänge nicht ganz Vcc. Wenn es eine winzige Spannungsdifferenz gibt, könnten Sie feststellen, dass eine kleine Menge Strom aus der Basis des PNP-Transistors austritt. Bei einer Verstärkung von etwa 100 könnten Sie feststellen, dass genügend CE-Strom vorhanden ist, um eine merkliche Lichtleistung auf den LEDs zu erzielen.
Etwas zu versuchen: Fügen Sie eine Schottky-Diode zwischen Vcc und dem Emitter hinzu. Dies sollte die Kollektorspannung um einen Bruchteil eines Volts senken, gerade genug, damit das Schieberegister den Transistor vollständig ausschalten kann.
Stimmen Sie dieser Antwort nicht zu! Blake hat die Lösung selbst gefunden, scheint sie aber nicht als Antwort zu posten. Ich poste nur als weise Lektion für zukünftige Generationen.
Indem er die gemeinsamen Anoden direkt ansteuerte, machte er jeweils einen Ausgang hoch und die Ausgänge für die nicht ausgewählten Anzeigen niedrig. Aber das Hinzufügen der PNP-Transistoren kehrt die Logik um, und dann möchten Sie, dass der ausgewählte Anzeigeausgang niedrig und die anderen hoch sind.
Was passiert also, wenn Sie vergessen, die Anodentreiber zu invertieren? Angenommen, Sie möchten "1234" anzeigen. Sie machen die Anode der ersten Ziffer hoch, die anderen niedrig und geben das Bitmuster für eine "1" aus. Anstatt dass die erste Ziffer die „1“ zeigt, bleibt sie leer, und die anderen zeigen die „1“. Gehen Sie zur nächsten Ziffer. Auch hier bleibt diese Ziffer leer und die anderen drei zeigen die "2" an. Usw. Aufgrund des Multiplexing zeigt jede Ziffer eine Mischung aus den anderen drei Ziffern, aber nicht den tatsächlichen Wert für diese Ziffer.
Blake sagt, das sollte "1112" sein. Die ersten drei Ziffern zeigen die Mischung aus "1" und "2", während die letzte nur die "1" zeigt, weil alle anderen Ziffern so sind.
Rocketmagnet ist möglicherweise auf dem richtigen Weg: Die PNPs können aufgrund von Leckagen durch ihre Treiber einen gewissen Basisstrom haben. Wenn die Stromversorgung von PNP (die Emitterspannung der Transistoren) mit der der HCMOS-Treiber (HC595?) identisch ist, sollte dies kein Problem darstellen, da die HCMOS-Ausgänge normalerweise innerhalb von etwa 100 mV von den Schienen bleiben.
Wenn die Versorgung der PNPs höher ist, sollten Sie sie nicht mit einem Gegentaktausgang, sondern mit Open Drain/Open Collector ansteuern. In diesem Fall wird der Leckstrom des Transistors im ausgeschalteten Zustand durch die Basis des PNP fließen und somit verstärkt. Ein 2N2907 hat keinen sehr hohen hFE, kann jedoch dazu führen, dass genügend Kollektorstrom als leicht nach oben leuchtende LEDs angezeigt wird.
Die Abhilfe ist einfach: Fügen Sie einen Widerstand zwischen Basis und Emitter der PNPs hinzu. Solange der Leckstrom einen Spannungsabfall von weniger als 0,6 V über dem Widerstand verursacht, fließt alles durch den Widerstand und nichts durch die Basis. Wählen Sie zum Beispiel einen 4,7-kΩ-Widerstand. Dann benötigen Sie mindestens 130 µA, um den ersten Strom durch die Basis zu bekommen, bis dahin fließt alles durch den Widerstand. 130 µA sind ein sicherer Wert: Sie sind viel größer als der erwartete Leckstrom, aber viel kleiner als das, was der Treiber versenken kann.
Dies ist ein sehr häufiges Problem, wenn Sie neu im Multiplexing sind. Multiplexing bedeutet, eine LED-Anzeige nach der anderen anzusteuern. Dieses Problem tritt auf, wenn noch Daten am Ausgangsport vorhanden sind und Sie eine andere Anzeige aktivieren. TUN Sie dies - Legen Sie Daten auf den Displayport - Schalten Sie ein beliebiges Display ein - Legen Sie alle Daten ab - Schalten Sie das Display aus - Sehr kleine Verzögerung - ...... Wiederholen Sie diesen Schritt ... Ihr Problem wird gelöst.
Nehmen wir einen maximalen Spitzenstrom von 20 mA pro Segment an. Die Low- und High-Side-Treiber werden jeweils ~ 0,5 V abfallen, das Display selbst wird ~ 1,5 V abfallen. Daher fällt der Widerstand um 2,5, also muss er für 20 mA 125 Ohm betragen. 120 Ohm reichen.
Ein herkömmliches Schieberegister wird mit 20 mA kein Problem haben, aber 8 x 20 mA (alle Segmente einer Ziffer eingeschaltet) sind wahrscheinlich zu viel. Wenn Sie 4 Ausgänge übrig haben, können Sie PNP-Transistoren (1k Basiswiderstand) verwenden. Andernfalls befestigen Sie die Transistoren an Ihrem zweiten Schieberegister.
Sie müssen sich darüber im Klaren sein, dass Sie Zeitmultiplexing durchführen: Sie müssen die Einschaltzeit gleichmäßig auf die 4 Ziffern aufteilen, und die Einschaltzeit muss viel größer sein als die Zeit, die zum Umschalten zwischen den Ziffern erforderlich ist. Dies würde eine niedrige Schaltfrequenz erfordern, aber Sie möchten das Schalten auch nicht sehen, daher könnten ~ 100 Hz (2,5 ms für jede Ziffer) ein guter Kompromiss sein.
Ihre Bilder zeigen Geisterbilder: Eine unerwünschte Ziffer erscheint (schwammig) über der Ziffer, die sichtbar sein sollte. Dies wird wahrscheinlich durch zu frühes Umschalten der Zeilen oder Spalten verursacht. Wenn Sie nicht alles in einem Schritt schalten können (beachten Sie, dass Sie dies mit einem kaskadierten Schieberegister mit separatem Halteregister tun können!), müssen Sie dies tun
Wenn Sie den ersten Schritt weglassen, erhalten Sie den Ghosting-Effekt.
Kortuk
Jippie
Oli Glaser
Benutzer27869