🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Bewegungen mit 16×16 LED Matrix am Arduino UNO

Posted on 17. Februar 20233. Mai 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du einfache Bewegungen auf einer 16×16 LED Matrix mit dem Arduino UNO programmierst.

Bewegungen mit 16x16 LED Matrix am Arduino UNO
Bewegungen mit 16×16 LED Matrix am Arduino UNO

Im letzten Beitrag zur hier verwendeten LED Matrix habe ich dir bereits gezeigt, wie diese an den Arduino UNO angeschlossen und programmiert wird.

Hier soll es nun darum gehen, wie du einfache Bewegungen auf der Matrix anzeigst.

Vorweg, richtige Videos werden sich auf der Matrix nicht anzeigen lassen. Aber man kann mit meinem Generator kleine „Daumenkino“ Bilder erzeugen, welche mit dem richtigen Intervall in Bewegung umgesetzt werden können.

  • Benötigte Ressourcen für den Aufbau
  • Anschluss der 16×16 LED Matrix an den Arduino UNO
  • 16×16 LED Matrix Generator
  • Programm für ein Daumenkino
  • Erzeugen eines pulsierenden Herzens mit dem Generator
    • Download
  • Erzeugen eines Hampelmanns mit dem Generator
    • Download

Benötigte Ressourcen für den Aufbau

Um die nachfolgenden Beispiele nachzubauen, benötigst du:

  • einen Mikrocontroller Bsp Arduino UNO,
  • ein passendes USB-Datenkabel,
  • eine 16×16 LED Matrix,
  • fünf Breadboardkabel, männlich – weiblich, 20 cm

Anschluss der 16×16 LED Matrix an den Arduino UNO

Hier die Grafik, wie du die LED Matrix an den Arduino anschließen kannst.

16×16 LED Matrix Generator

Der kleine Generator ist sehr einfach gehalten, du hast die vier LED Matrix Module mit den entsprechenden LEDs, welche du mit der Maus anklicken kannst, die Farbe ändert sich dann von Rot auf Grau.

Du kannst einstellen, ob du nur die Arrays erzeugen lassen möchtest, oder das komplette Programm.

Mit der Schaltfläche „CODE GENERIEREN“ wird, wie es sich erahnen lässt, der Code erzeugt, die Schaltfläche „LÖSCHEN“ setzt alle LEDs auf den default / deaktiviert.

Programm für ein Daumenkino

Da nicht jede kleine Animation gleich viel Bilder hat, habe ich das Programm sehr dynamisch aufgebaut.

#include <LedControl.h>

const int DIN = 11;
const int CS = 7;
const int CLK = 13;

const int NUM_MATRIX_MODULE = 4;

LedControl matrix = LedControl(DIN, CLK, CS, NUM_MATRIX_MODULE);

const int BRIGHTNESS = 6;

const int NUM_IMAGES = 3;

const int MAX_ROWS = 8;
byte data[NUM_IMAGES][NUM_MATRIX_MODULE][MAX_ROWS] = {
  {
  //Arrays mit den Bildern
};

void setupMatrixModul(int modulIndex) {
  matrix.shutdown(modulIndex, false);
  matrix.setIntensity(modulIndex, BRIGHTNESS);
  matrix.clearDisplay(modulIndex);
}

void setup() {
  for (int i = 0; i < NUM_MATRIX_MODULE; i++) {
    matrix.shutdown(i, false);
    matrix.setIntensity(i, BRIGHTNESS);
    matrix.clearDisplay(i);
  }
}

void drawMatrix(int modul, byte data[]) {
  for (int row = 0; row < MAX_ROWS; row++) {
    matrix.setRow(modul, row, data[row]);
  }
}

void loop() {
  for (int image = 0; image < NUM_IMAGES; image++) {
    for (int i = 0; i < NUM_MATRIX_MODULE; i++) {
      drawMatrix(i, data[image][i]);
    }
    delay(250);
  }

  for (int image = NUM_IMAGES-1; image >= 0; image--) {
    for (int i = 0; i < NUM_MATRIX_MODULE; i++) {
      drawMatrix(i, data[image][i]);
    }
    delay(250);
  }
}

Erzeugen eines pulsierenden Herzens mit dem Generator

Wie erwähnt, kann man mit dem Generator kleine Bilder erzeugen bzw. Arrays für das Programm.

Hier meine Lösung zu den Herzen.

Die Arrays für die Bilder sind folgendermaßen:

// Bild - 1
byte matrixModul1[MAX_ROWS] = {B11111110,B11111100,B11111000,B11110000,B11100000,B11000000,B10000000,B00000000};
byte matrixModul2[MAX_ROWS] = {B01111111,B00111111,B00011111,B00001111,B00000111,B00000011,B00000001,B00000000};
byte matrixModul3[MAX_ROWS] = {B00111000,B01111100,B11111110,B11111111,B11111111,B11111111,B11111111,B11111111};
byte matrixModul4[MAX_ROWS] = {B00011100,B00111110,B01111111,B11111111,B11111111,B11111111,B11111111,B11111111};

// Bild - 2
byte matrixModul1[MAX_ROWS] = {B11111100,B11111000,B11110000,B11100000,B11000000,B10000000,B00000000,B00000000};
byte matrixModul2[MAX_ROWS] = {B00111111,B00011111,B00001111,B00000111,B00000011,B00000001,B00000000,B00000000};
byte matrixModul3[MAX_ROWS] = {B00000000,B00011100,B00111110,B11111110,B11111110,B11111110,B11111110,B11111110};
byte matrixModul4[MAX_ROWS] = {B00000000,B00111000,B01111100,B01111111,B01111111,B01111111,B01111111,B01111111};

// Bild - 3
byte matrixModul1[MAX_ROWS] = {B11110000,B11100000,B11000000,B10000000,B00000000,B00000000,B00000000,B00000000};
byte matrixModul2[MAX_ROWS] = {B00001111,B00000111,B00000011,B00000001,B00000000,B00000000,B00000000,B00000000};
byte matrixModul3[MAX_ROWS] = {B00000000,B00000000,B00011100,B00111110,B11111110,B11111110,B11111100,B11111000};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000000,B00111000,B01111100,B01111111,B01111111,B00111111,B00011111};

// Bild - 4
byte matrixModul1[MAX_ROWS] = {B11111000,B11110000,B11100000,B11000000,B10000000,B00000000,B00000000,B00000000};
byte matrixModul2[MAX_ROWS] = {B00011111,B00001111,B00000111,B00000011,B00000001,B00000000,B00000000,B00000000};
byte matrixModul3[MAX_ROWS] = {B00000000,B00000000,B00000000,B00000000,B00111000,B01111100,B11111100,B11111100};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000000,B00000000,B00000000,B00011100,B00111110,B00111111,B00111111};

// Bild - 5
byte matrixModul1[MAX_ROWS] = {B11111100,B11111000,B11110000,B11100000,B11000000,B10000000,B00000000,B00000000};
byte matrixModul2[MAX_ROWS] = {B00111111,B00011111,B00001111,B00000111,B00000011,B00000001,B00000000,B00000000};
byte matrixModul3[MAX_ROWS] = {B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B01111100,B11111100};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000000,B00000000,B00000000,B00000000,B00011100,B00111110,B00111111};

Download

Damit du den Code nicht abtippen / kopieren musst, hier der Code zum einfachen Download.

16×16 LED Matrix – pulsierendes HerzHerunterladen

Erzeugen eines Hampelmanns mit dem Generator

Als weitere Animation kann man einen kleinen Hampelmann erzeugen.

Hierzu erzeuge ich eine kleine Animation mit 3 Bildern.

Der Code für die Bilder ist wie folgt:

byte matrixModul1[MAX_ROWS] = {B11000000,B11000000,B11000000,B11000000,B11000000,B11000000,B11000000,B11100000};
byte matrixModul2[MAX_ROWS] = {B00000011,B00000011,B00000011,B00000011,B00000011,B00000011,B00000011,B00000111};
byte matrixModul3[MAX_ROWS] = {B00000000,B11000000,B11000000,B10000000,B10000000,B10000000,B10000000,B10000000};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000011,B00000011,B00000001,B00000001,B00000001,B00000001,B00000001};

//Bild - 2
byte matrixModul1[MAX_ROWS] = {B10100000,B10010000,B10001000,B10000100,B10000000,B11000000,B01100000,B00110000};
byte matrixModul2[MAX_ROWS] = {B00000101,B00001001,B00010001,B00100001,B00000001,B00000011,B00000110,B00001100};
byte matrixModul3[MAX_ROWS] = {B00000000,B11000000,B11000000,B10000000,B10000000,B10000000,B10000000,B11000000};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000011,B00000011,B00000001,B00000001,B00000001,B00000001,B00000011};

//Bild - 3
byte matrixModul1[MAX_ROWS] = {B10000000,B10000000,B10000000,B10000000,B10000000,B11000000,B00110000,B00011000};
byte matrixModul2[MAX_ROWS] = {B00000001,B00000001,B00000001,B00000001,B00000001,B00000111,B00011000,B00110000};
byte matrixModul3[MAX_ROWS] = {B00000000,B11000000,B11001000,B10001000,B10001000,B10010000,B10100000,B11000000};
byte matrixModul4[MAX_ROWS] = {B00000000,B00000011,B00010011,B00010001,B00010001,B00001001,B00000101,B00000011};

Download

Damit du den Code nicht abtippen / kopieren musst, hier der Code zum einfachen Download.

16×16 LED Matrix – HampelmannHerunterladen

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb