8x8x8 LED Cube Arduino Shield
24. Februar, 2014 in: Elektronik, TutorialsMein Artikel über meinen 8x8x8 LED Würfel erfreut sich ziemlich großer Beliebtheit. Bereits mehrfach wurde ich nach dem Eagle Schaltplan bzw. Layout gefragt, sowie dem zugehörigen Programmcode. Meist rate ich allerdings davon ab, meinen Aufbau zu nutzen, da die Verdrahtung der 8-Fach D-FlipFlop ICs ziemlich aufwändig ist.
Und da ich gerne Projekte anfange, dachte ich, es wäre an der Zeit mal etwas „sinnvolles“ für die Gemeinheit zutun. Also habe ich mich daran gemacht, ein Arduino Shield zu entwerfen, das es ermöglicht einen 8x8x8 LED Würfel anzusteuern. Da der Platz auf einem Arduino Shield begrenzt ist, suchte ich nach möglichen Alternativen für meine Latch Ansteuerung. Ich beschloss also Schieberegister einzusetzen. Die üblichen Verdächtigen wie 74HC595 können jedoch nur ~6mA für jeden Ausgang treiben, das gleiche Problem hatte ich schon bei meinen D-FlipFlops, dort habe ich einen Treiberbaustein mit PNP Darlington Schaltung nachgeschaltet, um auch größere LED Ströme möglich zu machen. Jedoch waren diese sehr teuer (>1€/stk) und der Platz auf dem Shield würde so ohnehin nicht ausreichen.
Bei meiner Suche nach Alternative entdeckte ich dann bei Maxim Integrated einen Schieberegister Baustein mit integrierten Konstantstromsenken, den Max6968. Mit diesem ist es möglich direkt 8 LEDs von V+ auf GND zu schalten, sogar ohne den Einsatz von Serienwiderständen, lediglich ein Widerstand zum einstellen des Stromes wird benötigt. Der maximale Strom pro Port liegt bei 55mA, was die meisten handelsüblichen LEDs bereits zum Rauchen bringt. Maxim bietet jedoch sogar eine Lösung mit 16 Ports an, den Max6969, auf den letztendlich dann meine Wahl fiel, da so weniger Bauteile benötigt werden und es zudem günstiger ist.
Dem Max6969 ist es jedoch nur möglich LEDs gegen GND zu schalten, daher muss auf die Ebenen/Layer des Würfels 5V geschalten werden. Hierfür benötigt man P-Kanal Mosfets, die sich in der benötigten Leistungsklasse von <1,5A preislich kaum von N-Kanal Mosfets unterscheiden. Um ein schnelles umschalten der einzelnen Mosfets zu erreichen (P-Kanal Mosfets besitzen prinzipbedingt eine etwas höhere Gate-Kapazität als N-Kanal Mosfets) und gleichzeitig die Ports des Arduinos etwas zu schonen, habe ich vor den Mosfets zusätzliche Mosfettreiber eingebaut. Dies hat sich bereits bei meinem 8x8x8 RGB Cube bewährt.
Das waren die groben Bauteile, in einem Schaltplan verbunden und auf die Größe eines Arduino Shields geroutet, sieht das ganze wiefolgt aus:
Ich hoffe es passt alles soweit 😉 denn Prototypen Boards sind schon in China bestellt. Sobald diese hier eintreffen werde ich mich auch sogleich an die Bestückung und das Testen machen. Wenn alles fehlerfrei verläuft gibt es weitere Infos sowie die Eagle Dateien und natürlich auch die Software, wenn ich diese bis dahin angepasst habe 😉
Es wird übrigens die SPI Schnittstelle des ICSP Steckers verwendet, sodass das Shield mit den meisten Arduino Boards kompatibel sein sollte.