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.4v
maximalen 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:
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.
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.
Andi aka
Ignacio Vazquez-Abrams
Andi aka
Alexandre Lavoie