LED-Würfel 7x7x7
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 49 | ||||
| × | 1 |
Notwendige Werkzeuge und Maschinen
|
Über dieses Projekt
Ich wollte schon immer meinen eigenen LED-Würfel herstellen und teile jetzt mein Projekt mit dir.
Schritt 1
Als erstes erstellen Sie die LED-Matrix.
In diesem Fall habe ich sieben 7x7 LED-Matrizen erstellt.
Ich habe Anoden und Kathoden geteilt und ich habe sie in Reihen und Spalten gelötet, so dass ich am Ende 7 Anoden und 7 Chatoden für jede LED-Matrix habe.
Schritt 2
Jetzt benötigen Sie die notwendige Hardware, um den LED-Würfel zu verwenden.
Dies ist der schwierigste Teil, wenn Sie die Elektronik nicht so gut kennen.
Aber ich versuche, diesen Teil klar zu erklären.
Ich habe sieben 74HC574 verwendet.
Dieser IC ist ein 8-Bit-D-Flip-Flop, es ist ein 8-Bit-Speicher. Auf diese Weise kann ich einige Bits laden, um das Bild auf dem Würfel zu sehen. Ich brauche sieben 74HC574, weil es sieben LED-Matrix gibt.
Ich brauche auch 7 NPN-Transistoren, um zu entscheiden, welche Schicht eingeschaltet wird.
Auf diese Weise kann ich mit der Multiplexer-Technik ein Bild auf allen Würfeln visualisieren.
Schließlich brauche ich noch eine 74LS138, das ist ein 3 bis 8 Zeilen Decoder-Demultiplexer, damit kann ich alle Flip Flop mit nur 3 Bit ansteuern, da sie auch einen Impuls brauchen, um die Daten zu speichern.
Dies ist das Blockschaltbild der Hardware:
Ich habe die Schaltung selbst gemacht und ATmega328P eigenständig von Arduino verwendet.
Sie können den gesamten Schaltplan unten sehen.
Schritt 3
Sie benötigen auch eine Struktur für Hardware und LED-Würfel. Ich habe einige Holzstücke verwendet, um es zu machen.
Danach können Sie alles zusammenbauen, jede LED-Matrix muss vor der anderen platziert werden und die Kathoden jeder Schicht werden mit demselben Transistor verbunden.
Schritt 4
Schließlich können Sie den Code schreiben, um den Würfel zu erstellen. Das obige Blockdiagramm kann Ihnen beim Schreiben des Codes helfen.
Dieser Teil kann sehr verwirrend sein, aber mit etwas Übung wird es einfacher.
Der folgende Code stellt die einfachsten Animationen dar, da die anderen zu lang sind, aber mit ein wenig Fantasie können Sie tun, was Sie wollen.
Code
- Animation
AnimationArduino
// Dieser Code stellt die einfachste Animation für LED dar. CUBEint temp =50, cont =0; // Diese Funktion lädt alle Cubevoid load_all (void) { // Layer 1 digitalWrite (A2, LOW); digitalWrite (A1, LOW); digitalWrite (A0, LOW); Verzögerung (1); // Schicht 2 DigitalWrite (A2, HIGH); digitalWrite (A1, LOW); digitalWrite (A0, LOW); Verzögerung (1); // Schicht 3 DigitalWrite (A2, LOW); digitalWrite (A1, HOCH); digitalWrite (A0, LOW); Verzögerung (1); // Schicht 4 DigitalWrite (A2, HIGH); digitalWrite (A1, HOCH); digitalWrite (A0, LOW); Verzögerung (1); // Schicht 5 DigitalWrite (A2, LOW); digitalWrite (A1, LOW); digitalWrite (A0, HOCH); Verzögerung (1); // Schicht 6 DigitalWrite (A2, HIGH); digitalWrite (A1, LOW); digitalWrite (A0, HOCH); Verzögerung (1); // Schicht 7 DigitalWrite (A2, LOW); digitalWrite (A1, HOCH); digitalWrite (A0, HOCH); Verzögerung (1); // Schicht 8 DigitalWrite (A2, HIGH); digitalWrite (A1, HOCH); digitalWrite (A0, HOCH); delay(1);} // Diese Funktion aktiviert jede Ebene einmal und Sie können die Zeit bestimmen, zu der die Ebene das Scrollen aufhebt (int t) { PORTB =0x00; digitalWrite (7, HOCH); Verzögerung(t); digitalWrite (7, NIEDRIG); digitalWrite (8, HOCH); Verzögerung(t); digitalWrite (8, NIEDRIG); digitalWrite(9, HIGH); Verzögerung(t); digitalWrite(9, LOW); digitalWrite (10, HOCH); Verzögerung(t); digitalWrite (10, NIEDRIG); digitalWrite(11, HIGH); Verzögerung(t); digitalWrite(11, LOW); digitalWrite(12, HOCH); Verzögerung(t); digitalWrite(12, LOW); digitalWrite(13, HOCH); Verzögerung(t); digitalWrite(13, LOW);} // Diese Animation schaltet eine Ebene pro Mal ein und erhöht die Geschwindigkeit, sodass Sie schließlich alle Würfel aufvoid one(void) geschaltet sehen { PORTD =0xff; alle laden(); während (1) { scrollen (temp); temp =temp - 2; wenn (temp <=0) {temp =1; Fortsetzung++; wenn (Fortsetzung ==1000) { Fortsetzung =0; Temperatur =100; } } }}void setup () { DDRD =0xff; DDRB =0xff; DDRC =0xff;}void loop() { one();}
Kundenspezifische Teile und Gehäuse
gestione_mankWMoVhz.schSchaltpläne
Ich verwende das Bild für die Anordnung der KomponentenHerstellungsprozess