Für den Arduino gibt es keine 5×5 Matrix, deshalb kommt hier eine mit 8×8 LEDs von Adafruit zum Einsatz. Sie verfügt über ein I2C-Inface, das sich mit zwei Datenleitungen zur Steuerung der LEDs begnügt.
Die Verbindung zum Arduino gestaltet sich entsprechend einfach:
Die Anschlüsse an der LED-Matrix sind (in der Abbildung von links nach rechts) mit + und – sowie C (clock) und D (data) gekennzeichnet. + wird mit 5V, – mit GND, D mit A4 und C mit A5 verbunden.
Zum Betreiben der LED-Matrix werden die Bibliotheken „Adafruit_LED_Backpack-master“ und „Adafruit-GFX-Library-master“ benötigt, die hier heruntergeladen werden können.
Wenn die Bibliotheken in der Arduino-IDE eingebunden sind, steht unter „Datei > Beispiele > Adafruit LED Backpack Library“ ein Programmbeispiel für die 8 x 8 Matrix mit vielen Variationen bereit. Es ist lohnend, sich die Details näher anzuschauen, um grundsätzliche Einsichten zum Programmieren einer LED-Matrix zu gewinnen.
Hier ein Programm mit Erklärungen, das in Abwandlung des Musterbeispiels im PXT-Editor entstanden ist.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include „Adafruit_LEDBackpack.h“
Adafruit_8x8matrix matrix = Adafruit_8x8matrix();
void setup() {
matrix.begin(0x70);
}
static const uint8_t PROGMEM
/********************************************
* Smiley 1 erstellen: 1 = LED an, 0 = LED aus
********************************************/
froehlich_bmp[] =
{ B00111100,
B01000010,
B10100101,
B10000001,
B10100101,
B10011001,
B01000010,
B00111100
}
/********************************************
* Smiley 2 erstellen 1 = LED an, 0 = LED aus
*******************************************/
frostig_bmp[] =
{ B00111100,
B01000010,
B10100101,
B10000001,
B10011001,
B10100101,
B01000010,
B00111100
}
void loop() {
/*************************************
* 1. Matrix löschen
* 2. LED Zeile 0, Platz 0 anschalten
* 3. Befehl ausführen
************************************/
matrix.clear();
matrix.drawPixel(0, 0, LED_ON);
matrix.writeDisplay();
delay(2000);
/*************************************
* 1. Matrix löschen
* 2. froehlich_bmp darstellen, bei
* Zeile 0, Platz 0 beginnen und
* bei Zeile 8, Platz 8 aufhören
* 3. Befehl ausführen
************************************/
matrix.clear();
matrix.drawBitmap(0, 0, froehlich_bmp, 8, 8, LED_ON);
matrix.writeDisplay();
delay(2000);
/*************************************
* 1. Matrix löschen
* 2. frostig_bmp darstellen, bei
* Zeile 0, Platz 0 beginnen und
* bei Zeile 8, Platz 8 aufhören
* 3. Befehl ausführen
************************************/
matrix.clear();
matrix.drawBitmap(0, 0, frostig_bmp, 8, 8, LED_ON);
matrix.writeDisplay();
delay(2000);
}
Eine Programmierung mit Ardublock ist nicht möglich, weil die eingesetzte Hardware nicht unterstützt wird.
Das LED-Modul kann bei der Firma Exp-Tech erworben werden. Die Komponenten müssen miteinander verlötet werden. Alle nötigen Hilfen dazu finden sich hier.