LED Tisch

Als cooles Technikgadget oder Blickfang auf der nächsten Party: Unser LED Tisch ist ein einfaches DIY-Projekt für Arduino Einsteiger. Welches Material du brauchst und wie der Tisch aufgebaut ist, erfährst du in diesem Beitrag.


Anleitung zum Aufbau

Schritt 1: Basis für den Tisch

Ein einfacher Beistelltisch mit Hochglanzlack ist die Basis für unseren Umbau. Solche Tische, die schon für unter 10€ zu bekommen sind, bestehen meist nur aus einer dünnen MDF (Pressspanplatte) auf der Ober und Unterseite, in der Mitte sorgt ein Wabenmuster aus Pappe für die notwendige Stabilität. So lässt sich der Tisch auch mit einem scharfen Taschen- oder Küchenmesser bearbeiten, spezielles Holzwerkzeug ist nicht notwendig.

Schneide ein Loch, ca. 40cmx40cm in den Tisch (siehe Abbildung). Als Ersatz für die Tischplatte wird später eine diffuse Plexiglasscheibe eingesetzt. Diese sollte nach Möglichkeit dieselbe Farbe, wie der Tisch aufweisen. Drücke seitlich die Pappe ein wenig ein, damit später darin der Arduino platziert werden kann.

Für den LED Tisch werden 25 LEDs in verschiedenen Farben (grün, rot, blau) verwendet. Damit Sie später schöne Lichteffekte bekommen und die LEDs sich nicht gegenseitig überblenden, wird ein Holzgestell gebaut. Die Bestandteile des Holzgestells werden aus Sperrholzplatten (4mm) gefertigt.

Schritt 2: Huckepackplatine für den Arduino

Die 25 einzelnen LEDs werden gemeinsam von einem Arduino Uno (SMD Version) angesteuert. Da die Leistung des Arduinos nicht ausreicht, um die LEDs direkt anzusteuern, haben wir eine kleine Platine entworfen, die Huckepack auf den Arduino gesteckt werden kann. So könnt ihr den Tisch schnell nutzen,aber gleichzeitig auch noch für andere Projekte nutzen.

Die Platine besteht aus zehn Leistungstransistoren, die jeweils eine der fünf Plus- und Minuspole steuert. So können wir mittels PWM und Kaskadierung jede einzelne LED ansprechen, ohne 25 LEDs direkt an den Arduino anschließen zu müssen. Der Arduino kann nun mit seiner geringen Leistung die Transistoren schalten, welche wiederum Strom auf die LEDs geben.

Die Platine in diesem Beitrag wurde geätzt. Wahlweise kannst du die Platine selber ätzen (Einsteigersets gibt es zu kaufen) oder im Internet für wenig Geld nach Wunsch ätzen lassen. Der Vorteil hiervon ist, dass du die Platine als Plug-and-Play Lösung auf den Arduino setzen kannst. Natürlich lässt sich die Platine auch auf einer Lochrasterplatine nachbauen, dafür haben wir für dich den Schaltplan bereitgestellt.

Schritt 3: Bau des LED-Tisches

Säge aus dem Sperrholz 8 Spanten (4 mit Öffnungen nach oben, 4 mit Öffnungen nach unten). Jede LED hat so eine eigene Kammer. Das Holzgestell ist eine stabile Verbindung, die die Belastbarkeit der Tischplatte erhöht. Die Größe des Holzgestells entspricht der Größe der Plexiglasplatte.

Schritt 4: LED Netz

Jetzt müssen die LEDs zu einem Netz verkabelt werden. Als Schablone zum Absägen der Kabel dient das Holzgitter. Alle Pluspole führen zu einer Seite, alle Minuspole zur anderen. Die Kabelstränge werden auf dem Arduino zusammen geführt .

Für LEDs müssen verschiedene Widerstände ausgewählt werden. Der Vorwiederstand ist abhängig von der Betriebsspannung und der Farbe der LEDs. Auf der Zuleitung (Pluspole) werden die Vorwiederstände angebracht.

Die Lichteffekte erzeugen wir mit dem Arduino. Dabei sind der Fantasie keine Grenzen gesetzt, alles was dir gefällt ist machbar. Von einfachen Figuren bis hin zu sich dynamisch verändernden Mustern kannst du alles realisieren. Mittels Pulsweitenmodulation (PWM) können mehrere LEDs scheinbar gleichzeitig leuchten, obwohl in Wirklichkeit der Arduino nur einige einige hundert Mal pro Sekunde die einzelnen LEDs ein- und ausschaltet. Nach dem gleichen Prinzip werden die LEDs auch in der Helligkeit gedimmt.

Schritt 5: Zusatzplatine

Auf der Zusatzplatine (Huckepack-Platine) sind Leistungstransistoren angebracht. Diese schalten die eigentliche Leistung auf das LED-Netz, da der Arduino dazu nicht in der Lage ist. Insgesamt werden 10 Leistungstransistoren auf der Platine angebracht. Einen entsprechenden Schaltplan findest Du im Anschluss.

Schritt 6: Zusammenbau

Wenn der Arduino programmiert und die Platine gelötet ist, können wir uns an den Zusammenbau machen. Dafür werden zunächst die LEDs verkabelt, das Gitter dient als Schablone zum Ablängen der Kabel. Der fertige Kabelstrang sollte wie ein Netz aussehen: Alle Pluspole führen zur einer Seite, alle Minuspole zur anderen. Diese Gitter legen wir nun in den Tisch ein und fixieren die LEDs mit Heißkleber. Anschließend kann das Gitter ebenfalls eingelegt und geklebt werden, bei Holz vorzugsweise mit einem Holzleim. Wenn der Kleber angetrocknet ist, verstecken wir im übrig geblieben Tischrand noch den Arduino und machen ihn über ein kleines Loch von außen  zur Stromversorgung zugänglich, dann kleben wir auch die Plexiglasscheibe ein.


Schaltplan


Programmierung

Alles ist richtig verlötet, alles  richtig zusammengesteckt und dennoch leuchtet der LED-Tisch nicht. Wie bringen wir den LED- Tisch zum Leuchten?

Der verbaute Arduino UNO ist ein Microcontroller der erst programmiert werden muss. Verbinde deinen Computer über ein USB-Kabel mit dem Arduino und installiere die Arduino Entwicklungsumgebung oder starte die Web-Umgebung unter https://www.arduino.cc/en/Main/Software.

Wie man ein Programm auf den Arduino überträgt findest du im Detail auf der Hersteller Website. Alle hier vorgestellten Codes können mit dem "Pfeilsymbol"-Button kompiliert und übertragen werden.

Wenn das Verbindungskabel aus dem Tisch zusammen mit der Energieversorgung aus dem LED-Tisch geführt werden, können neue Programme im fertigen Tisch getestet werden. Weiter unten findest du zwei verschiedene Code Snipets, die beim Programmieren unterstützen sollen.

Schauen wir uns die Ausgänge des Arduino und die von uns angesteckte Platine (Shield) genauer an. Die Ausgangspins 0 bis 4 (also
insgesamt 5) sind mit Transistoren verbunden die als Schalter fungieren. Werden sie mit einem geringen Strom versorgt, schalten 
diese. Mit einem HIGH = 1 am Arduinoausgang wird der angeschlossene Transistor leitend und alle 5 LED in der entsprechenden Reihe mit (+) Spannung versorgt.

Jedoch leuchten die LED nicht. Bisher ist nur eine Litze durch den Transistor “verbunden”. Es fehlt die zweite, damit Elektronen wieder abfließen können. Werden die Ausgänge 8 - 12 auf LOW=0 gesetzt, werden die Spalten mit (-) Ground “verbunden”. Wieder werden Transistoren als Schalter genutzt.

Wie wir gesehen haben, fungieren die Arduinopins als Ausgänge und werden mit dem Befehl pinMode(0, OUTPUT); als solche geschalten. Zusätzlich sind anstelle der Pinnummer der Hardware die Bezeichnung “reihe_” bzw. “spalte_”verwendet. Das macht es einfacher eine genaue LED anzusprechend. Es ist dem jeweiligen (ganzzahlingen Variablen-) Namen ein Pin zugeordnet. Bei verschiedenfarbigen LED hilft es, die Farben [Rot: R, Blau: B, Grün: G] in der vorliegenden Abfolge im Kommentar aufzuzählen.


Beispiel-Quellcodes

Im folgenden Quellcode werden alle LEDs im Wechsel eingeschalten und nach 3 Sekunden ausgeschalten.

 

 

//Quellcode: LED-Tisch Conrad

  int reihe_1 = 0;  //R B R G B
  int reihe_2 = 1;  //G G B R G
  int reihe_3 = 2;  //B R B G R
  int reihe_4 = 3;  //R G R G B
  int reihe_5 = 4;  //G B G B R
  
  int spalte_1 = 8;
  int spalte_2 = 9;
  int spalte_3 = 10;
  int spalte_4 = 11;
  int spalte_5 = 12;

void setup() {

  pinMode(reihe_1, OUTPUT);
  pinMode(reihe_2, OUTPUT);
  pinMode(reihe_3, OUTPUT);
  pinMode(reihe_4, OUTPUT);
  pinMode(reihe_5, OUTPUT);

  pinMode(spalte_1, OUTPUT);
  pinMode(spalte_2, OUTPUT);
  pinMode(spalte_3, OUTPUT);
  pinMode(spalte_4, OUTPUT);
  pinMode(spalte_5, OUTPUT);

}

void loop() {
for (int s =8; s<=12; s++){
  for (int r =0; r<=4; r++){
     einzel_LED(r,s);
     delay(3000);
  }}

}

void einzel_LED (int reihe, int spalte) {
  digitalWrite(reihe_1, LOW);
  digitalWrite(reihe_2, LOW);
  digitalWrite(reihe_3, LOW);
  digitalWrite(reihe_4, LOW);
  digitalWrite(reihe_5, LOW);

  digitalWrite(spalte_1, LOW);
  digitalWrite(spalte_2, LOW);
  digitalWrite(spalte_3, LOW);
  digitalWrite(spalte_4, LOW);
  digitalWrite(spalte_5, LOW);
  
// Setzen
  digitalWrite(reihe, HIGH);
  if (not(spalte == 8))
digitalWrite(spalte_1, HIGH);
  if (not(spalte == 9))
digitalWrite(spalte_2, HIGH);
  if (not(spalte == 10))
digitalWrite(spalte_3, HIGH);
  if (not(spalte == 11))
digitalWrite(spalte_4, HIGH);
  if (not(spalte == 12))
digitalWrite(spalte_5, HIGH);
  }

 

Hier werden einzelne LEDs im
eingeschalten und nach 3 Sekunden ausgeschalten. Per Schleife werden die LED
nacheinander eingeschalten. Vor dem nächsten Einschaltvorgang werden alle LED
kurz ausgeschalten.

// Quellcode: LED-Tisch Conrad

  int reihe_1 = 0;  //R B R G B
  int reihe_2 = 1;  //G G B R G
  int reihe_3 = 2;  //B R B G R
  int reihe_4 = 3;  //R G R G B
  int reihe_5 = 4;  //G B G B R
  
  int spalte_1 = 8;
  int spalte_2 = 9;
  int spalte_3 = 10;
  int spalte_4 = 11;
  int spalte_5 = 12;

void setup() {
  pinMode(reihe_1, OUTPUT);
  pinMode(reihe_2, OUTPUT);
  pinMode(reihe_3, OUTPUT);
  pinMode(reihe_4, OUTPUT);
  pinMode(reihe_5, OUTPUT);

  pinMode(spalte_1, OUTPUT);
  pinMode(spalte_2, OUTPUT);
  pinMode(spalte_3, OUTPUT);
  pinMode(spalte_4, OUTPUT);
  pinMode(spalte_5, OUTPUT);

}

void loop() {

digitalWrite(reihe_1, HIGH);
  digitalWrite(reihe_2, HIGH);
  digitalWrite(reihe_3, HIGH);
  digitalWrite(reihe_4, HIGH);
  digitalWrite(reihe_5, HIGH);
  digitalWrite(spalte_1, HIGH);
  digitalWrite(spalte_2, HIGH);
  digitalWrite(spalte_3, HIGH);
  digitalWrite(spalte_4, HIGH);
  digitalWrite(spalte_5, HIGH);

delay(3000);

  digitalWrite(reihe_1, LOW);
  digitalWrite(reihe_2, LOW);
  digitalWrite(reihe_3, LOW);
  digitalWrite(reihe_4, LOW);
  digitalWrite(reihe_5, LOW);
  digitalWrite(spalte_1, LOW);
  digitalWrite(spalte_2, LOW);
  digitalWrite(spalte_3, LOW);
  digitalWrite(spalte_4, LOW);
  digitalWrite(spalte_5, LOW);
  
delay(3000);

}

Einstecken – fertig!

Unser Tisch ist nun vollendet: Sobald der Arduino Strom bekommt, startet unsere Lichtershow. Natürlich lässt sich das Programm noch verändern, sodass wir die Lichteffekte regelmäßig austauschen können, damit es nicht langweilig wird. Als mögliche Upgradefunktionen bieten sich die Verwendung eines Mikrofons an, damit der Tisch auf Geräusche in der Umgebung reagieren kann, oder die Verwendung von RGB LEDs in jeder Kammer – wir haben in unserem Modell darauf verzichtet, da der Verkabelungs- und Programmieraufwand dann deutlich größer wird – ein spannendes Projekt ist es dennoch, und die Möglichkeiten sind noch vielfältiger.


Benötigtes Material

1x Arduino Microcontroller Uno

1x Widerstand 1k Ohm 

je 1x Litze LiY 1 x 0,75mm² rot & schwarz

5x TIP 120 NPN Transistor 

1x Stiftleiste, ca. 32 Pole

1x Leim oder Kleber

1x BD 810 PNP Transistor 

25x LEDs, Farbe nach Wahl , Bauform Superflux

Weiteres Material:

Weiteres Material:

  • Beistelltisch nach Wahl

  • Plexiglasscheibe ca. 400x400mm

  • Holz oder stabile Pappe (nach Bedarf)