Auf dieser Seite, möchte ich dir ein Tool an die Hand geben womit du dir relativ einfach eine Matrix für das 8 x 16 LED Matrix Modul von Keyestudio erstellen kannst.
Anleitung
Dieses kleine Helferlein ist denkbar einfach zu benutzen. Du musst nur mit der Maus eines der kleinen grauen “LEDs” anklicken, dadurch verfärbt sich dieses blau und ist aktiviert.
Mit der Schaltfläche “Code Generieren” kannst du aus deiner Matrix dann einen Array mit Hexadezimalen Zahlen erstellen welches du dann in zbsp. folgdenden Sketch einbauen und mit der Arduino IDE auf deinen Microcontroller speichern kannst.
#define IIC_SCL A5 #define IIC_SDA A4 unsigned char data_line = 0; unsigned char delay_count = 0; unsigned char data_display1 = 0; unsigned char data_display2 = 0; unsigned char data_display3 = 0; unsigned char data_display4 = 0; unsigned char data_display5 = 0; unsigned char data_display6 = 0; unsigned char data_display7 = 0; unsigned char data_display8 = 0; unsigned char data_display9 = 0; unsigned char data_display10 = 0; unsigned char data_display11 = 0; unsigned char data_display12 = 0; unsigned char data_display13 = 0; unsigned char data_display14 = 0; unsigned char data_display15 = 0; unsigned char data_display16 = 0; void IIC_start(); void IIC_send(unsigned char send_data); void IIC_end(); //Hier kopierst du dein generiertes Array mit deiner Matrix hinein unsigned char matrix[16] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; void setup() { pinMode(IIC_SCL, OUTPUT); pinMode(IIC_SDA, OUTPUT); digitalWrite(IIC_SCL, LOW); digitalWrite(IIC_SDA, LOW); } void loop() { //Setzen der Startadresse + increment um 1 IIC_start(); IIC_send(0x40); IIC_end(); //Schreiben der LED Matrix IIC_start(); IIC_send(0xc0); for (char i = 0; i < 16; i++) { IIC_send(matrix[i]); } IIC_end(); /** Setzen der Helligkeit */ IIC_start(); IIC_send(0x8F); IIC_end(); delay(100); } /** Senden eines Musters im Hexadezimalen Wert */ void IIC_send(unsigned char send_data) { for (char i = 0; i < 8; i++) { digitalWrite(IIC_SCL, LOW); delayMicroseconds(3); if (send_data & 0x01) { digitalWrite(IIC_SDA, HIGH); } else { digitalWrite(IIC_SDA, LOW); } delayMicroseconds(3); digitalWrite(IIC_SCL, HIGH); delayMicroseconds(3); send_data = send_data >> 1; } } /** Setzen des Signals für den Start */ void IIC_start() { digitalWrite(IIC_SCL, LOW); delayMicroseconds(3); digitalWrite(IIC_SDA, HIGH); delayMicroseconds(3); digitalWrite(IIC_SCL, HIGH); delayMicroseconds(3); digitalWrite(IIC_SDA, LOW); delayMicroseconds(3); } /** Setzen des Signals für ENDE */ void IIC_end() { digitalWrite(IIC_SCL, LOW); delayMicroseconds(3); digitalWrite(IIC_SDA, LOW); delayMicroseconds(3); digitalWrite(IIC_SCL, HIGH); delayMicroseconds(3); digitalWrite(IIC_SDA, HIGH); delayMicroseconds(3); }
das Tool
Solltest du hier keine Matrix sehen so hast du Wahrscheinlich JavaScript deaktiviert!