Tool für das 8×16 LED Matrix Modul von Keyestudio

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.

8 x 16 LED Matrix Modul am Arduino UNO
8 x 16 LED Matrix Modul am Arduino UNO

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.

Tool zum generieren einer 8 x 16 LED Matrix Keyestudio

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!