4x4x4 LED-Würfel mit Arduino Uno & 1Sheeld bauen – Interaktives LED-Projekt
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Android-Gerät | 1 |
| Widerstand 220 Ohm | 16 |
| LED (Standard) | 64 |
| Arduino UNO | 1 |
| 1Sheeld | 1 |
| Jumper-Kabel | 20 |
| Lötwerkzeug | 1 |
Über dieses Projekt
Dies ist ein beeindruckender 4x4x4 LED-Würfel, der über das 1Sheeld und den Arduino Uno mit dem Smartphone verbunden wird. Lassen Sie die Musik die Steuerung übernehmen...




Aufbau des LED-Würfels
Folgen Sie dieser Anleitung zum Bau des LED-Würfels. Sie benötigen lediglich Schritt 3, 4 und 5. Grundlegende Lötkenntnisse sind erforderlich.
Instructables-Anleitung: LED Cube 4x4x4
Hinweis: Die in der Anleitung aufgeführten Bauteile werden nicht benötigt. Für die benötigten Komponenten beachten Sie bitte die obige Teileliste.
Funktionsweise
Es wäre unpraktisch, jedem LED-Anoden einen eigenen Draht zuzuführen. Die Lösung besteht darin, den Würfel in 4 Ebenen zu unterteilen, jede bestehend aus 16 LEDs.
- Alle LEDs in einer vertikalen Spalte teilen sich eine gemeinsame Anode (+).
- Alle LEDs auf einer horizontalen Ebene teilen sich eine gemeinsame Kathode (-).
Um eine bestimmte LED zum Leuchten zu bringen, wird einfach GND (-) an die Ebene angelegt, die diese LED enthält, und anschließend 5V (+) an die Spalte, die diese LED enthält.
Verdrahtung
Nach dem Bau des Würfels sollten Sie 16 Pins für die Steuerung der Spalten und 4 Pins für die Steuerung der Ebenen haben.
- Verbinden Sie jeden Spalten-Steuerpin über einen 220 Ohm Vorwiderstand in Reihe mit dem 1Sheeld, das auf dem Arduino-Board sitzt.
- Hinweis: Ich habe versucht, die Kabel direkt ohne Widerstände an das 1Sheeld und den Arduino anzuschließen – es funktionierte zwar, wird aber nicht empfohlen.
- Die Spalten-Steuerpins sind in der Reihenfolge an die digitalen Pins 13 bis 0 sowie die analogen Pins A4 und A5 angeschlossen (siehe Schaltplan).
- Jeder Pin steuert die drei LEDs in dieser Spalte, sodass Sie die Spalten frei kombinieren können.
- Verbinden Sie die Ebenen-Steuerpins mit den analogen Pins A0, A1, A2 und A3.
- Gemäß meinem Code ist die unterste Ebene an Pin A0 angeschlossen, die nächste an A1, dann A2 und die oberste an A3 (siehe Schaltplan).
- Nach dem Anschließen der Kabel an 1Sheeld und Arduino können Sie den Code hochladen und Ihr Smartphone mit dem 1Sheeld verbinden.
- Falls Sie mit 1Sheeld nicht vertraut sind, folgen Sie zuerst diesem Tutorial: 1Sheeld Getting Started
Code
/* Dieser Code verwendet 1Sheeld und ein Arduino Uno Board zur Steuerung
einer 4x4x4 LED-Matrix mittels des Smartphone-Mikrofons.
Der Schaltkreis:
* 64 LEDs bilden einen 4x4x4 Würfel, verbunden mit 1Sheeld und Arduino
* Die Spalten-Steuerpins sind an digitale Pins 0-13 und analoge Pins A4, A5 angeschlossen
* Die Ebenen-Steuerpins sind an analoge Pins A0-A3 angeschlossen
by Hassan Ibrahim */
#define CUSTOM_SETTINGS
#define INCLUDE_PUSH_BUTTON_SHIELD
#define INCLUDE_MIC_SHIELD
/* 1Sheeld Bibliothek einbinden */
#include <OneSheeld.h>
// Pin-Definitionen der LED-Matrix (Spalten und Ebenen)
// Siehe Tutorial für weitere Details
int coloumn13 = 13;
int coloumn12 = 12;
int coloumn11 = 11;
int coloumn10 = 10;
int coloumn9 = 9;
int coloumn8 = 8;
int coloumn7 = 7;
int coloumn6 = 6;
int coloumn5 = 5;
int coloumn4 = 4;
int coloumn3 = 3;
int coloumn2 = 2;
int coloumn1 = 1;
int coloumn0 = 0;
int coloumnA4 = A4;
int coloumnA5 = A5;
int layerA0 = A0; // Unterste Ebene
int layerA1 = A1;
int layerA2 = A2;
int layerA3 = A3; // Oberste Ebene
int counter; // für Variationen in den Spalten
void setup() {
OneSheeld.begin(); // Kommunikation starten
Serial.begin(115200);
// Alle Pins als Ausgänge initialisieren
for (int i = 0; i <= 13; i++) pinMode(i, OUTPUT);
pinMode(coloumnA4, OUTPUT);
pinMode(coloumnA5, OUTPUT);
pinMode(layerA0, OUTPUT);
pinMode(layerA1, OUTPUT);
pinMode(layerA2, OUTPUT);
pinMode(layerA3, OUTPUT);
}
void loop() {
// Alle Spalten auf HIGH (5V) setzen
for (int i = 0; i <= 13; i++) digitalWrite(i, HIGH);
digitalWrite(coloumnA4, HIGH);
digitalWrite(coloumnA5, HIGH);
delay(30);
// Lautstärke vom Mikrofon abrufen und steuern, welche Ebenen auf LOW (GND) geschaltet werden
// Jeder if-else Block steuert eine Ebene
// Die Werte sollten je nach Smartphone kalibriert werden
/* Zur Kalibrierung: Musik in der Nähe des Smartphones abspielen
und die Messwerte des Mic-Shields beobachten, passende Werte wählen. */
// In diesem Beispiel geben Schritte von 6 gute Ergebnisse
if (Mic.getValue() > 70) { // erste Ebene
digitalWrite(layerA0, LOW);
delay(50); // Für klarere Darstellung
} else {
digitalWrite(layerA0, HIGH);
}
if (Mic.getValue() > 76) { // zweite Ebene
digitalWrite(layerA1, LOW);
delay(50);
} else {
digitalWrite(layerA1, HIGH);
}
if (Mic.getValue() > 82) { // dritte Ebene
digitalWrite(layerA2, LOW);
delay(50);
} else {
digitalWrite(layerA2, HIGH);
}
if (Mic.getValue() > 88) { // vierte Ebene
digitalWrite(layerA3, LOW);
delay(50);
} else {
digitalWrite(layerA3, HIGH);
}
}
Schaltplan
Dieses Bild enthält nicht die Widerstände.

Herstellungsprozess
- Schnelles, zuverlässiges Branderkennungssystem mit Samsung SAMI, Arduino UNO & Raspberry Pi
- Eigenen LUMAZOID bauen: DIY Arduino Musik-Visualisierer
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- Arduino Echtzeituhr für islamische Gebetszeiten bauen
- DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
- Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
- Unopad: Nahtloser Arduino MIDI-Controller für Ableton Live
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial