8x8x8 LED-Würfel-Treiberschaltung

Ich werde 8x8x8 LED-Würfel bauen. Bevor ich das tue, muss ich eine gute Treiberschaltung herausfinden. Ich bin hierher gekommen, weil ich sehr wenig Ahnung davon habe, wie viele elektronische Teile zusammenpassen.

Also hier ist mein Plan.

Ich werde das Arduino UNO verwenden, um die Animationen auszuführen.

Der Würfel selbst wird mit 512 3 mm Diffused Blue LEDs hergestellt. Diese LEDs haben einen Vf = 3.4vmaximalen Strom von 20mA. Ich möchte in der Lage sein, diesen maximalen Strom bereitzustellen. Der Würfel wird so aufgebaut, dass die 64 Spalten die Anoden der LEDs sind und die 8 Schichten alle Kathoden der 64 LEDs in dieser Schicht enthalten.

Ich habe mich entschieden, neun 74HC595-Schieberegister zu verwenden, um die E / A des Arduino auf die erforderlichen 72 Ausgänge zu erweitern. Von hier aus weiß ich nicht, was ich verwenden soll, um die Schieberegister mit dem Würfel zu verbinden. Die ersten 8 Register steuern die Säulen (Anoden) und die letzten die Schichten (Kathoden).

Einige haben vorgeschlagen, dass ich den UNL2803 verwende, um die 64 Anoden und 8 Transistoren oder MOSFETs zu "anti-driven", um die Schichten ein- und auszuschalten.

Ich verstehe nicht, wie man den UNL2803 oder die anderen Teile anschließt, also könnte mir jemand etwas Klarheit verschaffen, vielleicht einen einfachen Schaltplan? Ich verstehe einfach nicht, wie man einen UNL2803 verwendet, um Strom zu beziehen ...

Schema unten für CubeDriver:

Bild

Zu meiner eigenen Zufriedenheit, was machen die LEDs auf der Innenseite des Würfels und können Sie sie angemessen sehen, lohnt es sich also, nur LEDs auf der Oberfläche des Würfels in Betracht zu ziehen? Alle 512 LEDs werden fast 35 W verbrauchen! Möchten Sie jede Kombination ein- oder ausschalten können, dh die volle Kontrolle über jede LED haben?
@IgnacioVazquez-Abrams Schön!!!
@Andyaka Wenn die Schaltung gut gestaltet ist, leuchten nur eine oder mehrere LEDs gleichzeitig, sie werden nacheinander schnell adressiert und leuchten ein oder aus. Gleiches Prinzip wie Bildschirme (Matrix-Adressierung).

Antworten (2)

Ihre Antwort auf Andys Frage impliziert, dass Sie jede LED separat steuern möchten. Sie haben begonnen, eine Matrix zur Steuerung der LEDs zu verwenden, mit der Sie eine beliebige LED und viele Kombinationen einschalten können, aber keine vollständig unabhängige Steuerung aller LEDs.

Eine Richtung, die es zu gehen gilt, sind also völlig unabhängige Treiber, einer pro LED. Dies ist am einfachsten von Ihrem Computer aus zu programmieren. Sie benötigen jedoch eine Möglichkeit, 512 separate Drähte mit Werten von Ihrem PC oder Mikrocontroller auszugeben. Ein wirtschaftlicher Weg, dies zu tun, wäre die Verwendung einiger I/O-Pins zum Senden von Daten an 8-Bit-Schieberegister (in einer langen Reihe oder in mehreren kürzeren Reihen), die möglicherweise in der Lage sind, genügend Stromausgang zu senken, um Ihren anzusteuern LEDs direkt (natürlich mit Widerstand in Reihe). 74HC597, 74HCT597 und 74HC299, 74HCT299 sind Möglichkeiten. Wenn Sie mehr Strom pro LED benötigen, können Sie immer noch Schieberegister verwenden und 8-breite Transistorpakete wie LUN2803A als Treiber hinzufügen.

Allerdings können Sie mithilfe einer Matrix den visuellen Effekt von unabhängig gesteuerten LEDs erzeugen. Ihr Programm wählt nacheinander jede "Reihe" von LEDs aus, pulsiert sie kurz im gewünschten Muster, fährt dann mit dem nächsten Satz fort und so weiter, bis Ihr Programm alle LEDs abgedeckt hat. Dann beginnen Sie von vorne. (auch bekannt als Multiplexing)

Für 8x8x8 LEDs (512) benötigen Sie mindestens eine 22 x 24-Matrix (zB: 22 Zeilen x 24 Spalten = 46 Pins), obwohl 16 x 32 = 512 (48 Pins) kongruenter mit Ihrem Würfel wären, also einfacher programmieren. Ihr Programm müsste kontinuierlich alle 16 Zeilen durchlaufen, die 32 Spalten für diese Zeile einstellen (oder umgekehrt) und sie beispielsweise 50 Mal pro Sekunde "auffrischen", um den Eindruck konstanter Beleuchtung und fließender Bewegung zu erzeugen. Das sind 50 x 16 = 800 Zeilen/Sek.

Denken Sie daran, dass jede "Ein"-LED nur für einen Bruchteil der Vollzeit (z. B. 1/16) eingeschaltet ist und dunkler erscheint als bei Vollzeit. Daher müssen Sie möglicherweise den Strom erhöhen, um dies zu kompensieren.

Es gibt eine Reihe ähnlicher Projekte auf YouTube, Sie können wahrscheinlich eines mit einer ähnlichen Anzahl von LEDs finden, anhand derer Sie die Kompromisse zwischen Helligkeit, Glätte und CPU-Geschwindigkeit abschätzen können, die erforderlich sind, um die Aktualisierung aufrechtzuerhalten und Animationen hinzuzufügen .

Okay, hoffe das hilft.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

D1 einstellen. Impuls D2. Wiederholen Sie 7 weitere Male. Beachten Sie, dass die Verwendung eines MOSFET mit einem ULN' die Verwendung eines Pull-up-Widerstands erfordert.

Ich muss mit dem UNL2803 Strom liefern, nicht sinken.
Hattest du schon Gelegenheit, das Datenblatt zu lesen?
Ich habe nur mein Gedächtnis aufgefrischt, sorry. In Ihrem Schaltplan kommt der Strom nicht vom COM-Pin, bitte erklären Sie es.
Der COM-Pin dient zum Klemmen der in die Transistoren eingespeisten Spannung.
Ist der Schaltplan, den ich hinzugefügt habe, korrekt?
Sie brauchen nicht beide Geräte in der Leitung; Entweder lässt der MOSFET Strom zu oder der ULN senkt ihn.