Schlagwort-Archive: RGB LED Matrix

Hack einer 16*32 RGB LED Matrix – Teil III Der Sketch

Nachdem im 2. Teil der praktische Aufbau den theoretischen Überlegungen des 1. Teiles folgte, nun die Betrachtung von Softwareseite.

Um den Sketch anfangs möglichst einfach zu gestalten, wird im einfachsten Fall einfach eine statische Adresse an die drei Adresspins A, B und C gelegt. Die beiden RGB Ports werden ebenfalls nur mit statischen Daten über HIGH Pegel bedient. Damit beschränkt sich der Sketch im Wesentlichen auf die for-Schleife zur Taktung des CLK Pins und die Steuerung der Kontrollpins OE und LAT. Da dieser sehr einfache Sketch auf Anhieb seine Funktion erledigte, habe ich diesen sofort erweitert. Auf dem nachfolgenden Bild ist das Ergebnis eines bereits etwas modifizierten Sketches zu sehen, bei dem ein Adresszähler mit implementiert ist. Aber der Reihe nach.

Hack einer 16*32 RGB LED Matrix – Teil III Der Sketch weiterlesen

Advertisements

Hack einer 16*32 RGB LED Matrix – Teil II Die Verdrahtung

Schrittweise Verdrahtung des Panels mit dem Arduino Uno

Im 1. Teil dieses Hackings sind einige theoretische Grundüberlegungen und Annahmen entwickelt worden. In diesem Teil folgt der praktische Aufbau. Bei entsprechenden Kenntnissen der angelsächsischen Sprache ist es am einfachsten dem Adafruit Tutorial zu folgen.

Die 5V Stromversorgung des Panels erfolgt über 2 Schraubklemmen oder eine separate 4-pol. Steckerleiste. Zwei identische Stiftleisten mit Wanne zur Datenübertragung befinden sich auf der Rückseite des Panels. Die Eingangsseite ist mit IN und die Ausgangsseite mit OUT beschriftet.

Pinbelegung 16-pol. Header
Quelle: Adafruit

Leider gibt es auch unterschiedliche Pinbezeichnungen der 16-pol, Stiftleiste. Der Latch-Pin LAT kann beispielsweise auch mit STB (Strobe) gekennzeichnet sein. Die Funktion ist aber offensichtlich identisch. Ähnliches gilt auch für die Farbsteuereingänge R1, G1, B1 und R2, G2, B2 welche auch als R0, G0, B0 und R1, G1, B1 bezeichnet sein können. header_beschriftungInnerhalb dieser Dokumentation wird aber weiterhin nur die Bezeichnung synonym zu RGB0 und RGB1 bzw. RGB Port 0 oder 1 verwendet.

Die sukzessive Verkabelung dieser Stiftleiste gelingt mit dem beigefügten header_masse_1Flachbandkabel am einfachsten und sichersten über die 4 mit GND bezeichneten Masseleitungen. Diese können sehr einfach mit einem Ohmmeter eindeutig ausgemessen werden. Alle 4 Leitungen werden mit GND des Arduinos verbunden. Auf dem nebenstehenden Foto sind dieses die vier blauen Leitungen.

Als nächstes lassen sich die sechs RGB Steuereingänge recht gut zuordnen uheader_rgbnd mit den Arduino Uno Pins 2 bis 6 verbinden. Aus Ermangelung an weiteren blauen Kabeln, sind die beiden Steuereingänge B0 und B1 für die blauen LEDs mit gelben Leitungen verkabelt. Für LEDs der Farben Rot und Grün kamen jedoch synonyme Farben zur Anwendung.

header_abc_adresseIm nun folgenden Schritt werden die 3 Adressleitungen A, B, C an die Arduino Kontakte A0 bis A2 angeschlossen. Wie eingangs bereits beschrieben, besteht das Display aus 8 Sektionen; jeweils 2 Zeilen werden immer parallel angesteuert, so dass hier 8 * 2 = 16 Zeilen adressiert werden können.header_clk_oe_

Im letzten Schritt werden die 3 verbleibenden Leitungen CLK und OE mit den Pins 8 und 9 verbunden und zu guter Letzt der LAT (STB) Pin mit Pin 10 des Arduino Uno, hier im Bild noch nicht verdrahtet.

Debugging des Panels

Die in Teil I unter Zusammenfassung beschriebene mögliche Vorgehensweise soll nun im nächsten Teil sukzessive mit Hilfe eines Arduino Sketches erprobt und die bisherigen Vermutungen ggf. korrigiert und ergänzt werden.

Hack einer 16*32 RGB LED Matrix – Teil I Die Vorüberlegungen

Das Adafruit oder ähnliche 16*32 RGB LED Matrix Panels bestehen aus 16 Zeilen mit 32 Spalten ziemlich heller RGB LEDs. In Summe also 512 RGB LEDs pro Panel, die irgendwie auch angesteuert werden wollen. Das Panel hat leider keine PWM Steuereingänge, die Farbkanäle lassen sich nur digital Ein- und Ausschalten! Eine Helligkeits- bzw. Farbsteuerung muss daher manuell durchgeführt werden. Mit Einschalten aller RGB LEDs ergibt sich eine gleichmäßig weiße Ausleuchtung. Die Panels sind elektrisch kaskadierbar, ein Arduino Uno mit der Adafruit Bibliothek jedoch nur eingeschränkt dazu in der Lage.

Es werden 12 Arduino Pins und 800 Byte RAM bei Verwendung der Library benötigt um ein 12-bit Farbimage zu speichern. Die Adafruit Bibliothek unterstützt ausschließlich den Uno oder den Mega. Der Arduino Leonardo oder andere Arduino Mikrocontroller werden derzeit nicht unterstützt.

Ein sehr gutes Tutorial ist bei der Lady Ada zu finden. Die beiden später ggf. noch notwendigen Bibliotheken RGB-Matrix-Panel sowie die Adafruit-GFX-Library können über das jeweilige Adafruit GitHub Repository durch Klick auf den Button „Download Zip“ heruntergeladen werden.

Stromversorgung

Die Stromversorgung des LED Panels darf keinesfalls über den Arduino erfolgen, da dieser nicht genügend Leistung liefern kann und zerstört werden würde! Das 16*32 RGB LED Display darf daher nur über ein separates Netzteil mit 5V und mindestens 2,5A betrieben werden. Werden Panels kaskadiert, vervielfacht sich entsprechend der Strombedarf und ein entsprechend leistungsstärkeres Netzteil ist notwendig!

Hardware Hacking des Panels

Um überhaupt erst einmal eine grobe Idee über die grundsätzliche Funktionsweise des Panels zu entwickeln, ist es durchaus sinnvoll auch einmal die Schaltung nebst Datenblätter dazu anzuschauen. Ein konkretes Schaltbild konnte ich jedoch bisher nicht ausfindig machen. Deshalb habe ich erst einmal festgehalten, welche ICs überhaupt verbaut worden sind, da außer bei Adafruit ansonsten nichts verwendbares an Informationen zu finden war. Jedoch selbst bei der bereits recht ausführlichen Beschreibung von Adafruit fehlen immer noch diverse Details.

Hack einer 16*32 RGB LED Matrix – Teil I Die Vorüberlegungen weiterlesen