MINT - Unterricht  mit  Arduino und anderen

Schon bei der ersten Inbetriebnahme des Calliope mini müssen die Signale der 5x5 LED-Matrix zur Inbetriebnahme richtig interpretiert werden. Der Text der Laufschrift dürfte von einem unvorbereiteten Betrachter kaum beim ersten Anlauf aufgelöst werden, weil die einzelnen Buchstaben sehr rasch durchlaufen. Mit einem Druck auf den RESET-Knopf kann das Programm neu gestartet werden und mit etwas Konzentration die Buchstabenfolge "H a l l o !" zusammengetragen werden.

Die Programmierung dieser Begrüßung ist denkbar einfach:

Im Anschluss an die Begrüßung einen blinkenden Pfeilen auf der LED Matrix erscheinen zu lassen, ist ähnlich unkompliziert:

In dem Programmierfeld "zeige LEDs" wird ein Pfeil zusammengeklick und - in Übereinstimmung mit dem Musterbeispiel im PXT-Editor, in dem ein blinkender Smiley dargestellt wird - mit einem leeren Feld in der Funktion "dauerhaft" verbunden.

Das Blinken des Pfeils über die Tasten A und B zu steuern, führt dann über den Bereich "Grundlagen" hinaus und bleibt deshalb ungeklärt.


Für den Arduino gibt es keine 5x5 Matrix, deshalb kommt hier eine mit 8x8 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.