In diesem Tutorial möchte ich das 8×8 LED Matrix Shield für den Wemos D1 mini vorstellen.
Lieferumfang
Zum Lieferumfang des Shields gehört neben dem Shield auch 2 Pin Leisten welche angelötet werden müssen.
Technische Daten des 8×8 LED Matrix Shields
- 8×8 (64) LEDs
- die Helligkeit ist in 8 Stufen regelbar
Verwendete Pins vom Wemos D1 mini
- D5 – CLK
- D7 – DIN
Quellcode
Für den nachfolgenden Quellcode wird die Bibliothek WEMOS Matrix LED Shield Arduino Library benötigt, welche vom GitHub Repository geladen werden kann.
Wie man eine Bibliothek in der Arduino IDE installiert habe ich im gleichnamigen Tutorial Arduino IDE, Einbinden einer Bibliothek beschrieben.
Zwei einfache Beispiele werden in der Bibliothek mitgeliefert.
Speziell für dieses Shield habe ich das 8×8 LED Matrix Tool geschrieben. Mit dem Tool kann man sich online auf der Matrix ein Symbol “zeichnen” und dann bequem den Quellcode für den Wemos D1 mini erzeugen lassen.
#include <WEMOS_Matrix_LED.h> MLED mled(4); void setup() { } void loop() { showString("ABC", 800); }
void lighUpCharacter(char c){ mled.clear(); if(c == 'A'){ mled.dot(2,0); mled.dot(5,0); mled.dot(2,1); mled.dot(5,1); mled.dot(2,2); mled.dot(5,2); mled.dot(2,3); mled.dot(3,3); mled.dot(4,3); mled.dot(5,3); mled.dot(2,4); mled.dot(5,4); mled.dot(2,5); mled.dot(5,5); mled.dot(2,6); mled.dot(5,6); mled.dot(3,7); mled.dot(4,7); } else if(c == 'B'){ mled.dot(1,7); mled.dot(2,7); mled.dot(3,7); mled.dot(4,7); mled.dot(5,7); mled.dot(1,6); mled.dot(6,6); mled.dot(1,5); mled.dot(6,5); mled.dot(1,4); mled.dot(2,4); mled.dot(3,4); mled.dot(4,4); mled.dot(5,4); mled.dot(1,3); mled.dot(6,3); mled.dot(1,2); mled.dot(6,2); mled.dot(1,1); mled.dot(6,1); mled.dot(1,0); mled.dot(2,0); mled.dot(3,0); mled.dot(4,0); mled.dot(5,0); } else if(c == 'C'){ mled.dot(3,7); mled.dot(4,7); mled.dot(2,6); mled.dot(5,6); mled.dot(1,5); mled.dot(6,5); mled.dot(1,4); mled.dot(1,3); mled.dot(1,2); mled.dot(6,2); mled.dot(2,1); mled.dot(5,1); mled.dot(3,0); mled.dot(4,0); } mled.display(); } void showString(String text, int pause){ int textLenght = text.length(); for(int i=0;i<textLenght;i++){ delay(pause); lighUpCharacter(text.charAt(i)); } }