Ansteuerung einer großen 7-Segment-Anzeige mit einem Mikrocontroller

Ich muss eine große Sieben-Segment-Anzeige (Segmentlänge beträgt etwa 2 Zoll) mit einem Mikrocontroller (PIC 16F877) ansteuern. Ich habe normale sieben Segmente ohne Probleme direkt von PICs gefahren, aber ich habe festgestellt, dass 5 V nicht ausreichen, um dieses zu fahren. Es brauchte etwas um die 9 Volt (ist das normal?)

Also, was mir in den Sinn kam, ist dies. (Entworfen mit Proteus ISIS 7 Pro)

Ich habe diese Schaltung mit 12 V versorgt und die RV1- Voreinstellung verwendet, um sie einzustellen (um sie auf 9 V oder etwas in der Nähe zu bringen). 8 Eingänge zu den Transistoren kommen vom Mikrocontroller. So kann ich das große 7-Segment (das 9 V erfordert) auf diese Weise fahren ...

Aber es war kein Erfolg. Ich habe die Spannungen überprüft und festgestellt, dass die Transistoren zwischen 0 und 5 V schalten (kann mir nicht vorstellen, wie das passieren kann ???).

Wie auch immer, dann habe ich versucht, den Widerstand auf die Kollektorseite zu legen. Und nahm den Ausgang vom Kollektorstift. Das war einigermaßen ok. Aber die Helligkeit schwankte mit der Anzahl der Beleuchtungssegmente ... (Wenn nur ein Segment beleuchtet wurde, war die Helligkeit sehr gering. Es ist fast nicht sichtbar. Aber als alle Segmente beleuchtet wurden, war die Helligkeit zu hoch. Es fühlte sich an, als würde das Display durchbrennen .)

Ich habe keine Lust, andere Mittel auszuprobieren. Dies war ein so einfaches Projekt. Aber dieses große Siebensegment ruiniert alles. Kann mir jemand dabei helfen...

Anstatt Vermutungen anzustellen, welche korrekte Spannung und welcher Strom für das Display erforderlich sind, sollten Sie das Datenblatt überprüfen!
@WoutervanOoijen Was soll ich tun, wenn ich kein Datenblatt habe. Gekauft vom lokalen Markt. Kein Herstellername. Im Internet gesucht. Konnte nichts vergleichbares finden...
Seufz, zu allen Gottheiten beten, die dir einfallen? Legen Sie 20 mA durch ein Segment und messen Sie die Spannung, die eine beste Schätzung ergibt. Aber denken Sie daran, dass eine LED NICHT mit einer Spannung, sondern mit einem STROM betrieben werden darf!! Dies kann durch eine größere Spannung und einen Vorwiderstand angenähert werden.
Die eigentliche Frage ist natürlich: Was ist mit Q1 passiert? :-)
@stevenvh das ist nur ein Teil der vollständigen Skizze. Q1 (und R1, R2 ... hast du es nicht bemerkt?) gehört zur Hauptplatine des Controllers. Das ist in Ordnung.

Antworten (3)

Das ist nicht richtig, und Sie haben Glück, dass das Display 9 V benötigt, sonst wäre es in Rauch aufgegangen.

Erstens sind die LEDs parallel zu den Widerständen: Ihre Emitter gehen sowohl zu LEDs als auch zu Widerständen, und ihre anderen Anschlüsse sind geerdet. Sie brauchen sie in Reihe.

Dann ist Ihre Schaltung eine gemeinsame Kollektorschaltung. Einer der Nachteile ist, dass es keine Last höher als die Steuerspannung treiben kann - 0,7 V, das sind 4,3 V, zu wenig für die LEDs. Hier haben Sie Glück, wenn es 3-V-LEDs wären, wären sie ohne Strombegrenzung angesteuert worden magischer Rauch.

Es gibt keine einzelnen LEDs, die mit 9 V arbeiten. Da es sich um ein großes Display handelt, werden für jedes Segment 4 LEDs in Reihe geschaltet, um eine gleichmäßige Beleuchtung zu gewährleisten. Bei 2,2 V pro LED kommt man in die Nähe von 9 V.

Der üblichere Weg besteht darin, sie mit einem gemeinsamen Emitter anzusteuern. Das ist Emitter gegen Masse und LED + Widerstand in Reihe auf der Kollektorseite. Für einen gemeinsamen Emitter benötigen Sie auch Basiswiderstände. 1 kΩ ergibt 4,3 mA, was ausreichen sollte, um den BC547 in Sättigung zu treiben. Sie können auch einen ULN2803 verwenden, bei dem es sich um ein Transistorarray aus 8 Transistoren mit eingebauten Basiswiderständen handelt. Dann benötigen Sie nur ein Teil (außer den Strombegrenzungswiderständen).

Ihre Widerstandswerte sind auch zu hoch. Wenn jedes Segment 9 V benötigt und Ihre Versorgung 12 V beträgt, beträgt der Strom durch ein Segment 3 V / R. Bei 10-kΩ-Widerständen sind das 300 µA, und das ist zu wenig für jede LED. Eine typische 20-mA-LED würde einen 150-Ω-Widerstand benötigen. Überprüfen Sie jedoch das Datenblatt des Displays auf Spannung und Strom.



Der von Michael erwähnte TI TLC5916 ist eine hervorragende Alternative. Er ist dreimal so teuer wie der ULN2803, geht aber mit 1,24 Euro in 1s immer noch nicht ins Geld (Mouser, 1,65 Dollar bei Digikey).

Geben Sie hier die Bildbeschreibung ein

Es verfügt über Konstantstromausgänge, sodass Sie die Vorwiderstände nicht mehr benötigen, die Helligkeit nicht mehr von Schwankungen der Eingangsspannung abhängt und Sie I/Os auf Ihrem Controller sparen, da er seriell angesteuert wird. Sie brauchen nur Datenausgang, Takt und Latch. Der Strom wird mit einem Widerstand eingestellt.

Michael würde immer noch Vorwiderstände verwenden, aber sie sind wahrscheinlich nicht erforderlich. Wenn Sie 20 mA und einen Abfall von 3 V (von 12 V auf 9 V) haben, liefern alle eingeschalteten LEDs weniger als 500 mW, was ein 16-poliger DIP sicherlich bewältigen kann. Bei höheren Strömen oder Eingangsspannungen können sie jedoch eine gute Idee sein.

Danke! Die Widerstandswerte sind nicht 10k, sondern 1,0k. Aber natürlich sind sie immer noch zu hoch, wie es scheint. Außerdem habe ich kein Datenblatt für das Display. Das war ein großes Problem.
Warum haben Sie gesagt, dass der obige Schaltplan ein gemeinsamer Kollektor ist? Das Signal wird WRT-Masse gegeben und der Ausgang wird ebenfalls WRT-Masse genommen. Und es ist der Emitter, der über die 1k s geerdet ist. Ist das nicht CE??
@Anubis - weil es eine gemeinsame Kollektorschaltung ist ! :-) Das "gemeinsame" bezieht sich auf den Pin des Transistors, der mit einer der Stromschienen verbunden ist, und das muss nicht geerdet sein! Eine PNP-Schaltung mit gemeinsamem Kollektor hat ihren Kollektor auf Masse, aber eine PNP-Schaltung mit gemeinsamem Emitter hat den Emitter auf Vcc. Es hängt also nicht mit den Signalen zusammen, sondern mit den Pins des Transistors. "Emitter, der durch den 1k geerdet ist": das nennen wir nicht geerdet; geerdet bedeutet normalerweise direkte Verbindung. (Obwohl es gemeinsame Emitterschaltungen gibt, die einen kleinen Widerstand auf der Emitterseite haben.)
@stevenvh Die Verwendung von Vorwiderständen mit dem TLC5916 ist manchmal erforderlich. Die Konstantstromnatur des Teils besagt, dass ein gewisser Spannungsabfall von jedem Chipausgang zu GND auftritt. Abhängig vom Strom in jedem Anzeigesegment ermöglichen die LED-Versorgungsspannung und der Vorwärtsspannungsabfall des Segments die Berechnung der Verlustleistung in jedem Treiberausgang. Es gibt eine Spezifikationsgrenze der sicheren Gesamtleistung für das gesamte Paket bei 1 W (für das Kunststoff-DIP und unterschiedlich für das SOIC, je nach Montagemethode).
Fortsetzung ... Wenn die Stromschiene des Displays zu hoch ist, kann dies mehr als 1 W in den Treiberchip stecken. Das Hinzufügen von Vorwiderständen, wie ich in meinem Antwortposting sagte, kann dazu beitragen, die Leistung auf zusätzliche Komponenten zu verteilen.
@Michael - gut, Sie haben Recht, aber bei 12 V und 20 mA beträgt die Leistung nur 500 mW. Aber ich habe meine Antwort ein wenig nuanciert.

Ich hatte großen Erfolg beim Betreiben von großformatigen 7-Segment-Anzeigen mit dem TLC5916-Chip von TI. Ein Chip kann ein Anzeigemodul ansteuern, und wenn Sie mehrere Module haben, können die TLC5916-Chips für jedes in Reihe geschaltet werden. Aus Sicht des Mikrocontrollers verbindet sich das Display mit nur wenigen Pins als serielles Schieberegister. Einfache Software kann die Schnittstelle bitbangen, um die Daten für jede Anzeigeaktualisierung auszugeben.

Der TLC5916-Chip kann Displays ansteuern, die an 9 V angeschlossen sind. Es verwendet auch eine Konstantstromtechnik für jedes Segment, um die Helligkeit für alle Segmente gleichmäßig zu halten. Es kann ratsam sein, vor dem Anschließen an die TLC5916-Ausgänge noch einen gewissen Widerstand in Reihe mit jedem Segment zu schalten, um einen Teil des Spannungsabfalls zu teilen und die Verlustleistung im Treiberchip zu reduzieren.

Sie können die TLC5916-Chips von Mouser sowohl im DIP- als auch im SOIC-Gehäusestil erhalten. Dort ist auch das Datenblatt erhältlich.

http://www.mouser.com/ProductDetail/Texas-Instruments/TLC5916INE4/?qs=sGAEpiMZZMsE420DPIasPooIeIm0f6XqBnwnNFIuvQE%3d

Für mich reicht ein einfacher Optokoppler.

  • pic seg output (+)-- 1k---Opto Pin 1 (Diodenanode) *

  • gnd --------------- an Opto-Pin 2 (Diodenkathode) *

  • (+9 V bis +15 V) ---1 k-- an Opto-Pin 3 *

  • Opto Pin 4 an Segment *

  • Wiederholen Sie das Obige für alle 7 Segmente (A bis G) + Punkt

  • *

  • gemeinsame Anzeigekathode ---- zum npn-Kollektor (bc457) *

  • pic mpx out --5k-- zur npn-Basis *

  • gnd -------------- zum npn-Emitter

    • Wiederholen Sie das obige für alle 7-Segment-Anzeigen

    • NOTIZ *

    • Jumbo 7-Seg-Display gemeinsames Kathodendisplay *

    • 1 npn-Transistor für jedes Display *

    • Optokoppler (P620) oder ähnlich (4 Pins) *

    • jede Zeile steht zwischen zwei Sternchen *

    • hoffe das ist alles klarer *

Ich kann nicht sagen, was das alles sein soll. Versuchen Sie, einen Schaltplan mit Strichen und Punkten zu skizzieren? Es ist nicht sehr klar. Wir haben ein wirklich nettes schematisches Werkzeug, wenn Sie sich ein paar Minuten Zeit nehmen und es benutzen könnten.