Der Würfel lebt

vor 1 Jahr 14 Wochen
DruckversionPDF-Version

Der Würfel muss nun mit dem Arduino verbunden werden. In der folgenden Abbildung wird die unterste Ebene vereinfacht auf einem Steckbrett abgebildet

Anschluss der 9 Anoden und einer EbeneAnschluss der 9 Anoden und einer Ebene

Es ist zu erkennen, dass die Kathoden so wie in dem Würfel alle untereinander verbunden sind. Links kann man sehen, dass alle Kathoden einer Ebene über einen Anschluss mit analogen Input Pin 0 verbunden sind. Input?!, wir brauchen doch Outputs! Bei dieser Gelegenheit lernen wir, dass die analogen Input Pins 0 bis 5 auch als digitale Output Pins benutzt werden können. Sie werden dann von 14 bis 19 durchnummeriert, analogIn0 = digitalOut14, analogIn1 = digitalOut15 usw. Wow, 6 zusätzliche Output Pins!!! Die beiden anderen Ebenen verbinden wir mit analogIn1 bzw. digitalOut15 und mit analogIn2 bzw. digitalOut16. Drei der analogen Input Pins nutzen wir nicht, um evtl. später doch noch analoge Eingänge nutzen zu können.

Alle neun Anodenanschlüsse verbinden wir der Reihe nach mit den digitalen Output Pins 4 bis 12. Die Pins DigitalOut0 und DigitalOut1 lassen wir bewusst ebenfalls frei, für mögliche serielle Anschlüsse an diesen Pins.

Sobald du alles verkabelt hast, kompiliere den folgenden Sketch und übertrage ihn auf den Arduino.

Erster Test

int delayTime = 200;                   // Zeitspanne für An oder Aus
// Merke: die analogen Input-Pins (0-5) sind ebenfalls digitale Ausgänge (14-19)
// Pin DigitalOut0 (seriell RX), DigitalOut1 (seriell TX) und
// AnalogIn3, 4 und 5 werden
// wegen möglicher, zukünftiger Verwendung nicht genutzt.
 
// Anoden der 9 LEDs
int anode[] = {
4, 5, 6, 7, 8, 9, 10, 11, 12};
// 3 Kathodenebenen
int cathode[] = {
14, 15, 16};
 
// Alle Pins auf OUTPUT setzen
void setup() {
for (int a = ; a < 9; a++) { // Alle Anoden auf OUTPUT
pinMode(anode[a], OUTPUT);
}
for (int c = ; c < 3; c++) { // Alle Kathoden auf OUTPUT
pinMode(cathode[c], OUTPUT);
digitalWrite(cathode[c], HIGH); // Alles ausstellen
}
}
 
void loop() {
// Jede einzelne LED testen
oneByOne();
}
 
// Testfunktionen
// Jede einzelne LED
// Reihenfolge
// erst von vorne nach hinten
// dann von links nach rechts
// dann von unten nach oben
void oneByOne() {
for(int c = ; c < 3; c++) { // Alle Ebenen nacheinander
for(int a = ; a < 9; a++) { // Alle LEDs einer Ebene nacheinander
digitalWrite(anode[a], HIGH); // LED anschalten
digitalWrite(cathode[c], LOW);
delay(delayTime);
digitalWrite(anode[a], LOW); // LED ausschalten
digitalWrite(cathode[c], HIGH);
}
}
}

Überprüfe die Reihenfolge der blinkenden LEDs. Um die folgenden Beispiele besser nachvollziehen zu können, sollte das Blinken in der vorderen Ecke unten links beginnen, dann nach hinten weiter laufen, dann die mittlere und linke untere Reihen und sich dann in der mittleren und oberen Ebene fortsetzen. Wenn die Reihenfolge bei dir eine andere ist, stecke die Anschlüsse solange um, bis die Reihenfolge stimmt.

Das sollte so dann aussehen:

Ort

AnhangGröße
CubeEbenen.pde3.65 KB
CubeProgmem.pde13.86 KB

9 Antworten auf “Der Würfel lebt”


  1. Jan sagt:

    Sehr hübsches Projekt. Schön wenn man sich mal wieder bischen mit dem Lötkolben austoben will. was ist denn die maximal realistische Größe so eines LED würfels? Nur um mal bischen rumzuspinnen :)

    Antworten

  1. gatonero sagt:

    Im Bochumer Labor gibt es Anleitungen für Würfel bis zu 16x16x16. Da kommt dann aber auch eine ganz schöne Stückliste zusammen und die Programmierung wird dann schon ziemlich tricky. Irgendwo habe ich auch mal was von 64x64x64 Würfeln gelesen.

    Bis dahin ist noch ein weiter Weg, Dieses hier soll anhand eines kleinen aber feinen Würfels in die Grundlagen der Hardware und Programmierung einführen. Eben eine freie Fortsetzung des Lady Ada Tutorials. :-). Fortsetzung folgt ... bis hin zum Bitshiften.

    Ich möchte dazu beitragen, die Einstiegsschwelle für Anfänger soweit wie möglich zu senken, und das auf deutsch ;-)

    Antworten

  1. Murmel (nicht überprüft) sagt:

    Hi,
    vielen Dank für diese tolle Anleitung. :) Mein erstes Arduino-Projekt - und dann gleich so viele blinkende LEDs! Und alles hat auf Anhieb geklappt! Toll!! :) Fernsehen war gestern... Ich schaue jetzt noch ein bisschen LED-Cube. ^^
    Nochmals danke!
    Ciao
    Murmel

    Antworten

  1. gatonero sagt:

    Bis ich dazu komme, dass Tutorial weiter zu schreiben, habe ich für alle Ungeduldigen ;-) zwei weitere Beispiel-Sketche an den Artikel angehängt. Der Sketch "CubeEbenen.pde" lässt alle Ebenen des Würfels vorwärts und rückwärts blinken, bei dem Sketch "CubeProgmem.pde" geht es dann ganz wild zur Sache. Bei beiden Sketchen werden die bisher genutzten Pinbelegungen weiter verwendet. Es muss also nichts umgesteckt werden.

    Viel Spaß damit!

    Antworten

  1. Bossi (nicht überprüft) sagt:

    Hallo,
    erstmal ein dickes lob für die ersteller und betreuer der seite ... hat mir schon sehr geholfen.
    werde mich die Tage mit dem Würfel beschäftigen. Aber ich frage mich die ganze Zeit, ob ihr die "normalen" LED verbaut habt oder Low Current LEDs genommen habt.
    Wahrscheinlich bin ich auf dem Holzweg aber liefert der Arduino bei normalen LEDs wirklich genug Strom (nur über den USB-Port) und wenn ja wie viel und ab wann ist Schluss.
    Vielleicht ist die Frage zu einfach aber über eine Antwort würde ich mich sehr freuen (gerne auch via mail) DANKE

    Antworten

  1. S.E.P.P. sagt:

    Hi,
    Ersteinmal, ich habe den Würfel mit normalen LEDs nachgebaut und er funktioniert Perfekt. Es ist auch nicht wirklich schwierig ihn zu Löten, das schwerste ist die drei Ebenen aneinander zu befestigen. Wieviel ampere ein Ausgang des Arduino bringt weiß ich nicht, ich glaube 20mA, aber du kannst den Würfel Problemlos mit normalen LEDs bauen.

    Antworten

  1. Sebbl (nicht überprüft) sagt:

    ein blick auf die arduino homepage hilft ;-)
    40mA pro kanal sind drin
    und am usb ports wirds wohl bei den 27 LEDs jetzt auch nicht liegen (ein usb port liefert 500mA), da die leds ja NIE alle gleichzeitug an sein KÖNNEN

    ich werd mir das bei zeiten auch mal nachbauen =)

    Antworten

  1. MatthiasG. sagt:

    Hallo!

    Mir ist aufgefallen, dass einige Bilder fehlen. Zufälligerweise habe ich hier so einen Würfel rumliegen :) Kann man die Bilder fest auf dem Webspace hier hochladen, damit die nicht nochmal "verloren" gehen?

    Gruß,
    Matthias

    Antworten

  1. Chris sagt:

    Hallo, bitte ladet die Bilder erneut hoch, denn sonst kann ich den Würfel nicht basteln.

    Danke im Vorraus!

    Gruß
    Chris

    Antworten

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Array
CAPTCHA
Diese Frage hat den Zweck zu testen, ob man ein menschlicher Benutzer ist und um automatisierten Spam vorzubeugen.
Auto_ahn:
Inhalt abgleichen