HomeBlogMagic

LED-Cube 8x8x8 RGB THT


Please activate Youtube in Privacy Settings.

Erbauer: Christian Jahn, Andreas Dirmeier
Entwicklungszeit: 4 Monate ( Brenner + Belichtungsgerät + Ätzgerät waren auch mit dabei)
Bauzeit: ca 2 Wochen
Materialkosten: ca 200€

Funktionen bisher:

  • Steuerung per USB und RS232
  • Abruf vorgefertigter Sequenzen per SD-Card
  • API für Befehlssatz
  • CLI Compiler für eine Beschreibungssprache (Befehle in der API)

Funktionen geplant:

  • Audio darstellen durch FFT
  • GUI für das erstellen von Sequenzen ( Schon fast fertig )
  • SD-Card im FAT-Format

Funktionsweiße:

Die LEDs besitzen 4 Anschlusspins. Ein Anschluss ist die gemeinsame Anode und für die drei Farben jeweils ein Ausgang. Bei 512 LEDs wären dies 2048 Anschlüsse die verleget werden müssten. Um das aber zu verhindern wird ein Multiplexverfahren angwendet das bei Leuchtdioden sehr üblich ist. Hierbei werden die Dioden in Gruppen sortiert und und zusammengeschlossen. Bei diesem Cube habe ich mich für 16 Ebenen entschieden mit jeweils 32 LEDs die gleichzeitig leuchten. Um trotzdem ein flüssiges Bild zu erhalten müssen die 16 Level mit hoher Geschwindigkeit durchgeschalten werden. Bei mir beträgt die refreshrate in etwa 76 Herz. Auch wenn die Helligkeit auf ein Sechszehntel reduziert ist, erreicht der Cube ein beachtlichte Helligkeit.

Das Gruppieren geschieht indem bei den senkrecht zueinander stehenden LEDs jeweils die Anschlüsse für Rot Gründ und Blau zusammengeschlossen werden. Damit sind die Leuchtdioden fürs erste auf 64 Einheiten reduziert. Um den Schaltungsaufwand weiter zu reduzieren habe ich auf der Platine die zwei benachbarten Dioden-Stränge abermals zusammengeschlossen und somit pro Farb-Leitung die 16 Leuchtdioden angeschlossen. Um trotzdem jede LED unabhängig steuern zu können müssen die Anoden der einzelnen Dioden unabhängig voneinander zuschaltbar sein. Deshalb sind auch der Horizontalen Ebene immer die Anoden der 32 LEDs zu einer Schaltebene verbunden. Bei 64 Dioden pro Ebene ergibt das 2 Schalt-Ebenen pro echter Ebene und somit 16 Schaltebenen. In dieser Konfiguration sind 96 verschiedene Farbleitung und 16 Anodenleitungen auf der Platine die natürlich mit signalen versorgt werden müssen. Da allerdings kein Mikrocontroller, zumindest kein erschwinglicher, soviele Ausgänge besitzt muss ich auf Serielle Schieberegister zurückgreifen. Bei den 96 Kathoden kommen bei mir 12x8bit Schieberegister mit Open Collector und Zwischenspeicherfunktion, und für die 16 Anoden 2x8bit Schieberegister mit nachgeschaltetem Mosfet zum Einsatz.

Hier sind die senkrechten Verbindungen der Kathoden und die waagrechten Verbindung der Anoden sichtbar

Durch die Schieberegister sind nur noch 12 Signalleitungen + 2 Steuerleitungen für die Daten der Kathoden nötig und 1 Daten + 1 Steuerleitung für die Anoden nötig, also 16 Steuerleitungen, bzw 2 volle Ports des Mikrocontrollers.

Das sind auch die 16 Anschlüsse, neben den 3 für die Stromversorgung, die ich von der LED-Platine nach aussen lege, um dann eine Steuerplatine anschließen. Der Vorteil ist, als Steuerplatine kann man sich für jeden Mikrocontroller entscheiden der einem Beliebt. Bei mir ist es der PIC18F4420 geworden, der wird allerdings bald durch einen PIC18F4520 getauscht werden. Die Steuerplatine selsbt ist meinem SD-Slot und einem 74 HS 244 als Levelshifter ausgestattet, und als Schnittstelle ein FT232RL für den USB-Anschluss und ein MAX232 für den Comport. Um für Erweiterungen vorbereitet zu sein, habe ich noch die wichtigsten Anschlüsse mit einem 25Pol SubD herausgeführt.

Schaltplan LED-Platine: ( Schaltpläne links im Menü Dateien )

Bei der LED-Platine sind zwei Stromkreise verbaut. Einerseits der Strompfad für die LEDs und ein weiterer für die Steuerung der Matrix-Schaltung. Die Matrix wird durch 12 Schieberegister (TPIC6B595) für die senkrechte und 2 Schieberegister (74HC164) für die waagrechte erstellt. Um genügend Strom für die LEDs zur Verfügung zu haben ist der 2. Stromkreis vorhanden der die LEDs über Darlington Transistoren mit diesem verbindet.

Schaltplan in KiCad, zum Download links unter Dateien

Schaltplan Controller: ( Schaltpläne links im Menü Dateien )

Als Rechenkern kommt auf der Controller-Platine ein PIC18F4420 zum Einsatz der die LED-Platine mit den 16 Datenleitungen verbindet (14 für TPIC6B595, 2 für 74HC164). Zudem ist ein FT232RL für eine USB-Verbindung  und ein MAX232 für eine COM-Verbindung vorhanden, die jeweils durch Jumper umgestellt werden können. An einem 25-Pin SubD sind die wichtigsten Anschlüsse des Microcontrollers herausgeführt, so kann man ihn per ICSP-Adapter programmieren, aber auch zusätzliche Peripherie, wie einen Audioeingang, mit anschließen.

Schaltplan Controller-Platine

Die Software

Die Firmware für den Cube kann Befehle von extern (USB, RS232) oder per SD-Karte entgegen nehmen. Mit diesen Befehlen kann dem Cube das aktuell zu zeigende Bild dargestellt werden. Die Befehlsliste ist links in unter API zu finden.
-- Demnächst kommt eine genaue Beschreibung + Firmware als Hex und der Sourcecode --

Die Befehle folgen einem Schema wie in der API beschrieben. So lässt sich der Cube vom PC aus simulieren, bzw. wenn der Ablauf per Script convertiert wird, auch auf der SD-Karte speichern. Die SD Karte wird mit dem gleichen Befehlssatz bespielt.

Zum erstellen eines Ablaufs habe ich ein kleines Konsolenprogramm geschrieben, dass die Cube Funktionen, C-Ähnlich als Text-Datei geschrieben, convertiert werden können.

0/0Name

LED-Cube 8x8x8 RGB v1 0.1

NameTypeComment
cub8-THT-main.zipKiCadHauptplatine für die LED's
cube8-THT-ctrl.zipeagleCADKontrollplatine mit PIC18F4420/PIC18F4520
Permalink: https://adirmeier.de/Blog/ID_1
Tags: Blog, Cube, LED, Matrix, Multiplexen, Pic, RGBvon am 2012-03-02