LED-Tower-Art: Programmierbarer RGB-Zylinder mit APA106-LEDs
Komponenten und Zubehör
- 288× APA106 programmierbare RGB-LEDs, 8 mm
- 1× Arduino UNO
- 1× 22 AWG verzinntes Kupferdraht (für Stromschienen & Datenleitungen)
- 12× Metallringe, 8 Zoll (ca. 203 mm) Durchmesser
- 10× Acrylstäbe, 12 Zoll (ca. 305 mm) Länge
Benötigte Werkzeuge
- Lötkolben (mind. 40 W, besser temperaturgeregelt)
- Heißklebepistole
- BlueTack (Knetgummi) zur temporären Fixierung
- Clip-Heatsinks (zum Schutz der LED-Anschlüsse beim Löten)
- Schraubstock & Zange (zum Geraderichten des Drahts)
Software
- Arduino IDE
- FastLED-Bibliothek (empfohlen, GitHub)
Projektidee
Inspiration waren die Kurven, die durch den Schnitt einer Ebene mit einem Zylinder entstehen. Nach mehreren LED-Würfel-Projekten sollte etwas Neues entstehen – eine zylindrische Struktur mit ähnlichem kreativen Potenzial, aber völlig anderer Geometrie.
APA106-LEDs (8 mm) wurden gewählt, weil sie trotz höherem Preis die Hardware und Software massiv vereinfachen: Keine Schieberegister, keine Multiplexing-Interrupts – jede LED ist dauerhaft aktiv und wird über zwei Datenleitungen angesteuert.
Konstruktion
Ringe fertigen
Der Turm besteht aus 12 Ringen à 24 LEDs (Abstand ca. 1 Zoll / 25,4 mm). Ringe sind ebenfalls 1 Zoll voneinander entfernt → LEDs bilden ein 3D-Gitter mit 1-Zoll-Abständen in beide Richtungen. Acrylstäbe verbinden die Ringe zum Turm.
Strombedarf: Max. 60 mA/LED bei Weiß/Max-Helligkeit → theoretisch 17 A. In Praxis wird Helligkeit auf ≤ 10 % begrenzt, reine Weiß-Darstellung vermieden → USB-Strom (500–900 mA) reicht. Externes Netzteil: 2 A sind ausreichend.

LED-Vorbereitung (Lead-Forming): Jede LED muss gemäß Diagramm vorgebogen werden. Ein kleiner Knick am GND-Draht erleichtert Identifikation und Lötung an den Ring.

Ring-Positionen markieren & Haltevorrichtung: 24 gleichmäßige Markierungen auf dem Ring. Eine Haltevorrichtung (z. B. zwei Bretter mit Schraubzwingen) fixiert den Ring senkrecht.

Löten: Ring erst verzinnen (hohe Wärme nötig – 40 W Lötkolben auf Maximum, 5–10 s pro Stelle). Immer Clip-Heatsinks an den LED-Drähten verwenden! Data-In an Data-Out der nächsten LED löten (Kettenstruktur).

+5V-Schiene: Nach allen 24 LEDs einen geraden 22 AWG Draht (ca. 66 cm) als gemeinsame +5V-Schiene an alle Anoden löten.

Ring testen: Offenen Data-In an UNO Pin 6 anschließen, Test-Sketch hochladen. Wichtig: Jeden Ring einzeln testen, bevor er in den Turm eingebaut wird!
12 Ringe bauen & ausrichten
Nach Übung dauert ein Ring ca. 2 Stunden. Damit LEDs über alle Ringe exakt fluchten, einen Ring als Schablone nutzen: Offenen Data-In-Eingang immer an gleicher Position platzieren. (Die ersten zwei Ringe im Foto sind noch nicht perfekt ausgerichtet.)
Turm montieren (untere 4 Ringe zuerst)
Distanzhalter (22 mm Höhe, z. B. 3D-gedruckt oder ¼″ Rundholz) mit BlueTack zwischen den Ringen fixieren. 6 Acrylstäbe (12″) verbinden die Ringe – vor dem Heißkleben exakt ausrichten, danach keine Korrektur mehr möglich! Stäbe liegen zwischen den LEDs (4 LEDs Abstand).


Distanzhalter entfernen & für nächste Ringe wiederverwenden. Alle 12 Ringe aufbauen.
Ringe untereinander verbinden
GND & +5V aller 12 Ringe parallel verbinden (22 AWG Draht). Zwei Datenleitungen à 144 LEDs: eine für untere 6 Ringe (→ UNO Pin 6), eine für obere 6 Ringe (→ UNO Pin 7). Jeweils vom untersten Ring nach oben durchkettet. Hintergrund: Ab Ring 8 traten Störungen auf (einzelne LEDs blitzten). Kondensatoren an den Stromschienen halfen nicht → Aufteilung auf zwei Datenleitungen löste das Problem.

Arduino UNO am Turmfuß befestigt (hier an 4 weiteren Acrylstäben aufgehangen). 4 Anschlüsse: GND, +5V (gemeinsam für alle Ringe), Data-Pin 6, Data-Pin 7.

Software
Für APA106-LEDs stehen mehrere Bibliotheken bereit. Bisher wurde Adafruit NeoPixel genutzt, für dieses Projekt aber FastLED gewählt – Vorteile: schnelle Mathematik-Funktionen, 256-stufige Regenbogen-Palette (statt eigener 43-stufiger), hunderte vordefinierte Paletten, einfache Fade-Funktionen, native APA106-Unterstützung (kein Trial-and-Error bei Timing).
Wichtige Hilfsfunktionen:
setColor(ring, position, farbe)– abstrahiert Datenleitungs-Zuordnung & Indexberechnung- Farben via
CRGB::Farbname(Web-Farben) – per#definekurze Aliase erstellt setHue(ring, position, hue)– setzt LED auf Regenbogen-Farbton (0–255)rotate(ring, richtung)– rotiert Ring-Inhalt um einen Schritt (ganzer Turm, Teilbereiche, gegensätzliche Richtungen möglich)
Geometrie-Effekte via Lookup-Tabellen:
Schnittkurven Zylinder–Ebene: Tabelle mit 18 Winkeln, variable Höhe. Schnittkurven Zylinder–Kugel: ebenfalls tabelliert (weniger effektiv, ein Effekt im Show). Beide Tabellen im Programmspeicher (PROGMEM), kein RAM-Verbrauch.
Drei Sketches enthalten:
- Ring-Test (einzelner Ring an Pin 6)
- Quick-Show: 45-Sekunden-Vorschau
- Main-Show: 8 Minuten, 16 verschiedene Effekte/Animationen
Alle im Originalprojekt als Video gezeigt.
Software-Reset: Am Ende von loop() ein Software-Reset eingebaut, da ein nicht gefundener Speicherleck (Stack/RAM) nach vielen Durchläufen zum Hängen führt. Nicht elegant, aber funktionssicher.
Code & Downloads
- Arduino Code für LED Tower Art (ZIP mit 3 Sketches: Ring-Test, Quick-Show, 8-Min-Show)
- Software for Tower Art (identischer Inhalt, alternativer Download)
Beide als „No preview (download only)“ im Original.
Schaltplan

Herstellungsprozess
- Windkraftanlagen-Technologie: Geschichte, Design und zukünftige Auswirkungen
- Eigenen LUMAZOID bauen: DIY Arduino Musik-Visualisierer
- UFO Attack: Eigenes Arduino-Spiel mit MAX7219 Matrix & Joystick
- 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
- Arduino Coffin Dance Melodie-Projekt – Viralen Hit nachbauen & abspielen
- 3D RGB Arduclock – Bluetooth-LED-Uhr mit Echtzeituhr
- River Health Monitor: Arduino-basiertes Wasserqualitäts-Messsystem
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Interaktives Joystick-Spiel mit Arduino & LED-Feedback
- Analog-Style LED Persistence-of-Vision Uhr – DIY Arduino Nano Projekt