74HC595 Zeilen/Spalten zur Ansteuerung der LED-Matrix

Nehmen wir an, wir haben einen 74HC595 und möchten 16 LEDs (gemeinsame Anode) beleuchten, die als 4x4-Matrix genau wie im folgenden Bild verbunden sind:

Elektronisches Schema

Also, 4 erste Ausgänge zur Steuerung von 4 Reihen. Die verbleibenden 4 Ausgänge steuern 4 Spalten.

Soweit ich das im Moment verstehe:

Auf dem Bild befindet sich ein NPN-Transistor in den 4 Spalten, um mehr Strom zuzulassen, als der 595 sinken kann.

Nehmen wir an, nur ROW1 ist aktiv und alle Spalten sind aktiv (LED1, LED2, LED3, LED4). Spalte 1, Spalte 2, Spalte 3 und Spalte 4 auf dem 595 zeigt einen sehr niedrigen Strom an, nur den Strom, der an der Basis jedes Transistors durch den Basisstrombegrenzungswiderstand eingestellt wird.

Würde es jedoch bei ROW1 bei 595 die Summe jedes LED-Stroms dieser Reihe anzeigen? Also 80 mA, wenn wir davon ausgehen, dass jede LED 20 mA hat?

Wenn dies der Fall ist, gibt es in meinem Fall viel mehr 595 und viel mehr LEDs und ich möchte nicht in der Nähe / über dem 595-Maximalstrom (75 mA) arbeiten. Würde ich jeder REIHE einfach geeignete PNP-Transistoren + Basiswiderstände hinzufügen um den Strom von jeweils 595 Zeilen Pins zu reduzieren?

Ich möchte den 74HC595-IC und die kostengünstigen Einzeltransistoren behalten. Ich weiß, dass es Schieberegister mit höherer Stromkapazität und Transistor-Arrays IC gibt, die Drähte und Widerstände sparen. Auch, dass ich den Strom jeder LED mit höheren Widerständen reduzieren kann, um ihn unter 75 mA zu halten, aber ich würde gerne verstehen, wie man richtig mit einer Matrixanordnung arbeitet, die mehr benötigt als das, womit der 595 arbeiten kann, nur mit diesen einfachen Komponenten.

Mit anderen Worten, sind 4 PNP für Zeilen und 4 NPN für Spalten der beste Weg, um> = 75 mA in einer einzelnen Zeile zu handhaben?

Keine Antwort, aber eine Frage: Haben Sie darüber nachgedacht, dass Sie Ihre LEDs multiplexen und, wenn Sie möchten, dass sie mit einem scheinbaren Durchschnitt von 20 mA Strom eingeschaltet sind, dass Sie sie möglicherweise mit deutlich mehr ansteuern müssen als 20 mA, wenn ihre Spalte aktiv ist?
Ja, Sie haben Recht, ich müsste sie mit einem höheren Strom betreiben, um einen Durchschnitt von 20 mA zu erhalten. Aber mein eigentliches Problem ist im Moment wirklich, dass mein gewünschtes Setup 4 Reihen mit jeweils 4 RGB-LEDs ist, also (4 Spalten * 3 Farben * 20 mA) 240 mA pro Reihe, wenn ich das richtig verstehe ... Das Gleiche gilt, wenn ich nur eine Spalte auswähle an Mal habe ich noch 1 RGB LED zum Leuchten gebracht (4 Zeilen * 3 Farben * 20 mA) 240mA pro Spalte.
Ich habe das schon einmal gemacht, das heißt, wenn ich ankomme, wohin Sie wollen. Ich habe Treiber auf beiden Seiten verwendet. Stromquellen auf der einen Seite zum Einstellen des Stroms (z. B. Ihre Zeilen) und Schalter auf der anderen Seite (Ihre Spalten). Um die erforderlichen Overhead-Spannungen zu reduzieren (möglicherweise), wird das Problem der Stromsenke / -quelle noch interessanter. Dies waren einstellbare Systeme, sodass ich auch den Spitzenstrom für jede Farbe einstellen und von dort PWM (+ Scan) nach unten ausführen konnte. Ich habe auch separate Stromversorgungsschienen verwendet, damit Blau nicht die gleiche Spannung wie Rot verwendet, um noch mehr Dissipationsprobleme zu vermeiden.
Das Setup, das Sie haben, ist gut genug, um Sie zum Laufen zu bringen. Sie müssen jeweils NUR eine Säule fahren. Der Transistor kann wahrscheinlich genug Strom aufnehmen. Sie benötigen nicht 20 mA in jeder LED, um loszulegen. Beginnen Sie mit 2-3 mA und gehen Sie von dort aus weiter. Die meisten LEDs leuchten bei 1 mA recht gut, auch wenn sie für 20 mA ausgelegt sind. RGB-LEDs? Ich bin mir nicht sicher, ob ich verstehe, wie du sie gerne anpasst?

Antworten (4)

Sie können es so machen, wie Sie es vorschlagen, aber Sie sollten die Widerstände zu den NPN-Kollektoren verschieben, und Sie benötigen PNP-Transistoren (oder Emitterfolger-NPN-Transistoren) an jedem Zeilenausgang.

Um eine ungefähre Vorstellung von dem erforderlichen Strom zu bekommen - wenn 5 mA ausreichen, damit die LED hell genug ist, wenn sie mit Gleichstrom versorgt wird, müssen Sie 20 mA für 1:4-Multiplexing liefern, und jeder Zeilentreiber muss 80 mA mit 25 % liefern. Auslastungsgrad. Jeder Spaltentreiber muss 20 mA mit 100 % Einschaltdauer aufnehmen.

Sie schlagen vor, das Multiplexen auf Reihenbasis durchzuführen, wobei 0 bis 4 der LEDs in einer Reihe gleichzeitig eingeschaltet sind. Wie Sie betonen, wird der von den '595 ROW-Pins benötigte Strom zu hoch. Ich weiß nicht, welche LEDs Sie verwenden, aber eine grobe Schätzung ist, dass jede 15 mA benötigt, sodass Sie 60 mA aus dem '595 beziehen müssen (was weit über seiner Spezifikation liegt). Mit dieser Anordnung haben Sie auch ein anderes Problem. Da Sie einen einzigen Strombegrenzungswiderstand pro Reihe haben (R1 für ROW1 usw.), wenn Sie mehr LEDs in der Reihe einschalten, sinkt der Strom durch jede LED, ebenso wie die Helligkeit jeder LED.

Der richtige Weg zum Multiplexen dieses Typs besteht darin, es auf Spaltenbasis durchzuführen. Es ist immer nur eine Spalte eingeschaltet, wobei eine beliebige Anzahl von LEDs in dieser Spalte eingeschaltet ist. Jeder ROW-Pin muss nur genug Strom für 1 LED liefern, wozu der '595 gerade in der Lage ist. Der kombinierte LED-Strom für die Spalte von bis zu 60 mA wird vom Spaltentransistor (T1 usw.) verarbeitet. Sie haben auch 1 Strombegrenzungswiderstand pro LED (R1 usw.), sodass die LEDs eine konstante Helligkeit haben.

Vielen Dank für Ihre Antwort. Auf Spaltenbasis verstehe ich jedoch etwas immer noch nicht, und eine Simulation in circuits.io zeigt auch ein aktuelles Problem auf dem 595. Jeder ROW-Pin liefert, wie Sie erwähnt haben, genug Strom für 1 LED. In meinem Beispiel gibt es 4 Reihen. Wenn also alle Reihen eingeschaltet sind, sind es beim 595 insgesamt 80 mA (ich habe 20 mA für jede LED verwendet). 75 mA ist das absolute Maximum des 595. Durch Hinzufügen einer neuen Reihe würden es beim 595 insgesamt 100 mA werden und so weiter. Ich bin also mit meiner ursprünglichen Frage zurück, es scheint einen PNP-Transistor zu benötigen, um den Strom jeder Zeile zu liefern. Habe ich recht?

Sie haben dies wahrscheinlich bereits ausgearbeitet, aber ich schlage vor, dass Sie Ihre LED-Matrix so konfigurieren. Jede LED hat einen Widerstand, der garantiert, dass jede LED den gleichen Strom erhält, unabhängig davon, wie viele eingeschaltet sind. Natürlich haben in dieser Konfiguration die Zeilen eine umgekehrte Logik zu den Spalten.

Mit anderen Worten, sind 4 PNP für Zeilen und 4 NPN für Spalten der beste Weg, um> = 75 mA in einer einzelnen Zeile zu handhaben?

Ich würde meiner Meinung nach ja sagen, aber andere könnten andere Vorschläge haben, die genauso gültig sind.

Geben Sie hier die Bildbeschreibung ein

sollte dies "Zeilen aktiv HIGH und Spalten aktiv LOW" sein, da LEDs eine gemeinsame Anode sind?
@charlee Nein, die Zeilen sind PNPs, die eine -Vbe benötigen, und die Spalten sind NPNs, die eine +Vbe benötigen, damit Strom fließen kann. Eine berechtigte Frage.
Ich verstehe was du meinst. Dies ist eine gemeinsame Anodenkonfiguration. Vielen Dank für die Erklärung!

Simon, deine Berechnungen sind falsch. Der 220-Ohm-Widerstand an jedem 595-Ausgang begrenzt die Stromaufnahme auf etwa 10 mA, unabhängig davon, wie viele Spalten-LEDs eingeschaltet sind. Ich gehe davon aus, dass eine LED beim Aufleuchten etwa 2,5 V abfällt.

Wie Steve G bemerkt hat, werden beim Einschalten einer anderen Spalte diese 10 mA einfach zwischen zwei LEDs aufgeteilt - und vielleicht nicht gleichmäßig. Ihr HC595 ist also vor Überstrom sicher, aber mehrere Spalten verursachen ein Dimmen. Wahrscheinlich nicht das, was du wolltest. Beachten Sie, dass der interne Rds des HC595 etwa 40 Ohm zu jeweils 220 Ohm hinzufügt.