Ich habe eine zweistellige 7-Segment-LED-Anzeige, die von einem Mikrocontroller gemultiplext wird. PORTA ist für die Anoden. In meinem Code verschiebe ich ein 1
Durch PORTA
. Ein PORTB
Ich sage, welches Segment leuchten soll, indem ich es auf setze 0
. Mein Problem ist, dass das Display nicht sehr hell ist, obwohl ich keine Widerstände vor dem 7-Segment angeschlossen habe. Wie kann ich diese Schaltung erweitern, um eine hellere Anzeige zu erhalten? Vielleicht mit Transistoren oder MOSFETs? Ich habe auch ein einfaches Schema meiner Schaltung beigefügt.
Vielen Dank für die Hilfe im Voraus.
Lösung: 4 NPN-Transistoren.
Antworten:
Zusammenfassung:
Sie können die Helligkeit wahrscheinlich verdoppeln, indem Sie ein paar weitere Anschlussstifte verwenden.
Die Verwendung von 4 Transistoren als Spaltentreiber wird wahrscheinlich einen signifikanten Unterschied machen.
Die Verwendung eines Low-Side-Segmentpuffer-ICs und High-Side-Transistoren bietet Ihnen den gewünschten Antrieb.
Die Ports werden derzeit "illegal" verwendet, es treten jedoch keine Schäden auf, da der Prozessor im Verhältnis zu den LEd-Stromwerten niedrig ist. Sobald der richtige Antrieb verfügbar ist, werden Vorwiderstände benötigt, um Schäden zu vermeiden.
Hier ist das Datenblatt für den von arminb erwähnten 74HC244-Puffer .
Es bietet 8 x invertierende Puffer.
Die nicht invertierende Version ist das 74HC240 - Datenblatt hier .
Beide sind im Prinzip in Ordnung, bieten jedoch normalerweise nur einen 8-mA-Antrieb pro Stromkreis.
Sie können verschiedene aktuelle Versionen wie diese SN74LVC244a bei Digikey für 26 Cent in einem auf Lager haben - ein Schnäppchen! :-).
Das Ansteuern von LEDs ohne Widerstände von einem Prozessor ist eine schlechte Praxis, unabhängig davon, ob es "funktioniert" oder nicht. Es lädt den IC in "illegale" Bereiche, wenn es nicht funktioniert, und riskiert, das Display zu beschädigen, wenn es funktioniert (und lädt den IC immer noch illegal).
Ihre Anzeige steuert derzeit 4 Segmente gleichzeitig x 4 Spalten.
Wenn Sie 4 weitere Port-Pins zur Verfügung haben, können Sie (wahrscheinlich) die Helligkeit Ihres Displays verdoppeln, indem Sie 8 Segmente gleichzeitig x 2 Spalten x 2 Port-Pins pro Spalte ansteuern. Auf diese Weise können Sie Ihr Display mit der doppelten Rate multiplexen, sodass der helle ZF- Strom beibehalten wird. Deshalb habe ich die Spaltenantriebe verdoppelt.
Gegenwärtig treiben Sie eine Säule mit 4 LEDs über einen PortA-Pin an, versenken sie jedoch über 4 x Port B-Pins. Wenn Sie 4 Segmente eingeschaltet haben, wird die Helligkeit durch die Fähigkeit des einzelnen Port A-Pins begrenzt, 4 x LEDs zu liefern. Wenn nur ein Segment pro Spalte vorhanden ist, liefert PortyA eine LED und Port B senkt 1 LED, ABER die Senkenkapazität ist normalerweise bei vielen Prozessoren größer als die Quellkapazität, sodass das Laufwerk von PORT A wahrscheinlich immer noch die Grenze darstellt.
Wenn Sie also 4 x Port A High-Side-Treiber bereitstellen, sollten Sie die Helligkeit erhöhen. Diese können so einfach wie 4 x Transistor-Emitterfolger sein.
4 x NPN-Transistor (BC337 oder ähnlich)
Kollektoren an V + -Basen an
Port-A-Pins
Emitter an LED-Anoden.
Das Hinzufügen eines Vorwiderstands pro LED wäre "eine gute Idee" [tm].
Wenn Sie das Ergebnis entwerfen möchten, müssen Sie wissen, welche Funktionen Ihre Port-Pin-Quelle und -Senken haben.
Es ist immer äußerst wertvoll, uns zu sagen, was Ihr Prozessor ist, und Links bereitzustellen.
Wenn die Verwendung von Transistoren wie oben nicht gut genug funktioniert, können Sie auch pro Segmentantrieb hinzufügen, indem Sie wie oben einen Oktalpuffer verwenden oder Segmentantriebstransistoren verwenden.
Für einen Low-Side-Treiber würde ein zB ULN2803-Oktaltreiber einen extrem guten Job machen. Die Verwendung eines dieser Plus-High-Side-Emitter-Follower ohne Vorwiderstand würde eine sehr, sehr, sehr helle Anzeige erzeugen, jedoch nur für einen Zyklus :-(. Yu kann andere Mitglieder der ULN280x-Familie erhalten, die andere Anforderungen an das Eingangslaufwerk haben als die '2803 ist im Allgemeinen am nützlichsten.
quelle
Sie haben eine gemeinsame Anode 4× 4 Matrix, daher muss der Anodentreiber für eine 20-mA-Anzeige 80 mA liefern, wenn alle LEDs leuchten. Die einfachste Lösung besteht darin, 4 PNP-Transistoren zu verwenden, die Sie über einen Basiswiderstand von Ihrem Mikrocontroller ansteuern. Ein niedriger Pegel aktiviert eine Spalte. Der BC327 hat eineHFE von mindestens 100, so dass ein Basisstrom von 2 mA ausreicht, um ihn einzuschalten. Dann ist Ihr Basiswiderstand 2,2kΩ .
Die E / A der meisten Mikrocontroller können 20 mA aufnehmen, sodass für Port B nur 4 Vorwiderstände benötigt werden. Wenn Ihre LEDs 2 V abfallen, benötigen Sie 150Ω . Wenn die 20 mA für den Controller zu hoch sind, können Sie NPN-Transistoren als Treiber verwenden. A 4.7kΩ Basiswiderstand reicht aus.
Dies ist eine billigere Lösung als die Verwendung von Treibern wie dem ULN2803.
quelle
Ich würde einfach einen HC244-Oktalpuffer in Übereinstimmung mit Ihren Ausgangsports werfen, da diese normalerweise 20 mA oder so liefern können. Denken Sie an Ihre Strombegrenzungswiderstände. Sie könnten auch Transistoren verwenden, wenn Sie möchten, aber ich denke, die Single-IC-Methode ist die einfachste.
Hier ist ein Link zum Teil des Herstellers , von dem ich dachte, dass er den Trick für Sie tun würde.
quelle