Multiplexing zweistelliger 7Segmente mit einem Bit

Ich möchte eine 2-stellige 7-Segment-LED mit einem MSP430-Mikrocontroller steuern. Das Display hat 8 Eingangspins pro Ziffer (8. Pin ist der Punkt, den ich nicht brauche) und zwei Massepins (gemeinsame Kathode). Die Idee ist, die ersten 7 Pins vom µc mit den 7 Segmenten beider Ziffern zu verbinden und dann einen anderen Pin (den Steuerpin) zu verwenden, um auszuwählen, welche Ziffer angezeigt werden soll. Durch schnelles Umschalten zwischen den beiden Ziffern möchte ich eine zweistellige Zahl mit nur 8 Pins des µc anzeigen.

Was ich brauche ist folgendes. Wir können so abstrahieren, dass es nur zwei LEDs gibt. Wenn der Steuerstift LOW ist, dann ist LED1 an und LED2 ist aus. Wenn der Steuerstift HIGH ist, dann ist LED2 an und LED1 ist aus. Ich weiß, wie man das mit einem einzelnen PNP-Transistor baut (siehe Bild unten). Dies ist jedoch in der gemeinsamen Kathodeneinstellung nicht sinnvoll, da ich das Schalttor "hinter" den LEDs haben möchte.

Was ich nicht haben will

Meine Frage ist, wie man eine solche Schaltung mit einem einzigen Transistor (und natürlich Widerständen) aufbaut. Ich denke, es muss ein NPN-Transistor sein.

Dies ist meine erste EE-Frage und ich habe wenig Erfahrung, daher hoffe ich, dass ich meine Frage klarstellen konnte.

Antworten (2)

Sie haben Recht mit dem NPN-Transistor, den Sie benötigen, um dieses Verhalten zu erreichen. Da der µC jedoch die Kathode eines der Displays steuern müsste, wäre dies ein Problem, da die meisten µC nur Quelle / Senke sein können ein paar mA. Unter der Annahme, dass jedes Segment 10 mA benötigt, müsste der Pin 70 mA sinken.

Die einfachste Lösung besteht darin, zwei NPN-Transistoren zu haben, die mindestens 100 mA aufnehmen können (wie der übliche BC547).

Diagramm unten:

Diagramm

D1 und D2 sind die 7-Segment-Anzeigen (bitte ignorieren Sie die Referenz). Die Anoden der LEDs werden mit den µC-Pins verbunden.

In dieser Konfiguration leitet nur Q1, wenn der µC 1 ausgibt, und wenn er 0 ausgibt, leitet nur Q2.

Hinweis
Es kann erforderlich sein, der Basis Q2 einen hochohmigen Pull-up-Widerstand (z. B. 100 kΩ) hinzuzufügen.

Vielen Dank für Ihren Beitrag! Anhand deines Schaltplans konnte ich die Schaltung aufbauen. Allerdings hatte ich das Problem, dass immer noch ein kleiner Strom durch D1 floss, als Q1 geschlossen war. Ich konnte diesen Effekt beseitigen, indem ich die Widerstände R2 = 1,8 K R2 = 1 K einstellte und einen kleinen Widerstand (47 Ohm) zwischen dem Kollektor von Q2 und Vcc verwendete. Als Transistor habe ich den BC 546 verwendet.

Die erste Antwort ist eine vernünftige Ausgangsidee. Bei der Umsetzung sind einige Dinge zu beachten.

Wo die sieben Anoden jedes LED-Moduls mit den MCU-Port-Pins verbunden sind, müssen Reihenwiderstände in jede Leitung eingefügt werden, um den Strom auf einen sicheren Wert für die einzelnen Segmente zu begrenzen. Der verwendete Widerstandswert müsste sein:

R -Serie = (V DD - V F (LED) - V SAT (NPN) ) / I F (LED)

Ich würde einen Widerstand mit niedrigerem Wert an den Basen der beiden NPN-Transistoren vorschlagen. 2.2K wäre vernünftiger.

Es ist notwendig, einen Widerstand vom Kollektor des ersten NPN-Transistors bis zur VDD - Versorgung zu legen, so dass, wenn der erste NPN-Transistor AUS ist, genügend BIAS vorhanden ist, um den zweiten NPN-Transistor einzuschalten. Ich würde dafür einen 1K-Widerstand verwenden. Andernfalls würde der 2. Transistor seine BIAS durch die angeblich ausgeschalteten LEDs des ersten Anzeigemoduls erhalten. Dies kann dazu führen, dass einige Segmente aktiviert erscheinen, obwohl sie dies nicht sein sollten.

Schließlich sollte die Software, die die LED-Anzeige ansteuert, sicherstellen, dass alle sieben Anodenverbindungen zu den LEDs für kurze Zeit auf einen niedrigen Pegel getrieben werden, bevor der Ziffernwähler I/O zu den NPN-Transistoren geändert wird. Dann sollte nach dem Ändern des Ziffernwählers eine kurze Verzögerung vorhanden sein, bevor das Segmentmuster dann an die Portstifte für das jetzt aktive Anzeigemodul angelegt wird. Dies verhindert Geisterbilder der Segmente von einem Display, die in den AUS-Positionen auf dem anderen Display angezeigt werden, wenn mit einer hohen Rate gemultiplext wird. Die Verzögerungen müssen nur in der Größenordnung von einem Drittel bis einer halben Mikrosekunde oder so liegen. Abhängig von der Frequenz der verwendeten MCU kann dies durch einige Befehlszyklen der Software geliefert werden, die zum Bit-Bang der Anzeigelogik verwendet wird.

Ihr Kommentar war sehr hilfreich. Ich musste den Vorschlag der ersten Antwort leicht ändern. Es war jedoch anders als das, was Sie im vorletzten Absatz vorgeschlagen haben. Siehe meinen Kommentar zur ersten Antwort.