Arduino UNO R4 - Eingebaute LED-Matrix

Der Arduino Uno R4 WiFi wird mit einer integrierten 12×8-LED-Matrix geliefert. In diesem Tutorial werden wir untersuchen, wie man die integrierte LED-Matrix verwendet, um Zahlen und Zeichen anzuzeigen. Konkret werden wir Folgendes behandeln:

Arduino Uno R4 integrierte LED-Matrix

Für Informationen zur Verwendung des Arduino R4 mit externen LED-Matrixmodulen verweisen Sie bitte auf das Tutorial Arduino UNO R4 - LED Matrix.

Erforderliche Hardware

1×Arduino UNO R4 WiFi
1×Alternativ: DIYables STEM V4 IoT
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno R4
1×(Empfohlen) Breadboard-Shield für Arduino Uno R4
1×(Empfohlen) Gehäuse für Arduino Uno R4
1×(Empfohlen) Stromverteiler für Arduino Uno R4
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V4 IoT Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Demonstration

Arduino-Code - Zeigt Ziffern (0-9) oder Zeichen (A-Z) an

Der untenstehende Code zeigt nacheinander Ziffern von 0 bis 9 und Zeichen von A bis Z, jeweils einzeln, in der Mitte der LED-Matrix.

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-built-in-led-matrix */ #include "Arduino_LED_Matrix.h" #include "fonts.h" ArduinoLEDMatrix matrix; uint8_t frame[8][12] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; void setup() { // put your setup code here, to run once: Serial.begin(115200); delay(1500); matrix.begin(); } void loop() { for (char c = '0'; c <= '9'; c++) { clear_frame(); add_to_frame(c, 4); display_frame(); delay(1000); } for (char c = 'A'; c <= 'Z'; c++) { clear_frame(); add_to_frame(c, 4); display_frame(); delay(1000); } } void clear_frame() { for (int row = 0; row < 8; row++) { for (int col = 0; col < 12; col++) { frame[row][col] = 0; } } } void display_frame() { matrix.renderBitmap(frame, 8, 12); } void add_to_frame(char c, int pos) { int index = -1; if (c >= '0' && c <= '9') index = c - '0'; else if (c >= 'A' && c <= 'Z') index = c - 'A' + 10; else { Serial.println("WARNING: unsupported character"); return; } for (int row = 0; row < 8; row++) { uint32_t temp = fonts[index][row] << (7 - pos); for (int col = 0; col < 12; col++) { frame[row][col] |= (temp >> (11 - col)) & 1; } } }

Schnelle Schritte

Arduino IDE 2 fügt eine Datei hinzu.
  • Klicken Sie entweder auf die Schaltfläche direkt unter dem Symbol des seriellen Monitors und wählen Sie "Neuer Tab" aus, oder verwenden Sie Strg+Umschalt+N.
  • Geben Sie den Dateinamen fonts.h ein und klicken Sie auf die OK-Schaltfläche
Arduino IDE 2 fügt die Datei fonts.h hinzu
  • Kopiere den untenstehenden Code und füge ihn in diese Datei ein.
/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-built-in-led-matrix */ uint8_t fonts[36][8] = { { // 0 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 1 0b00110, 0b01110, 0b10110, 0b00110, 0b00110, 0b00110, 0b00110, 0b11111, }, { // 2 0b11110, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b10000, 0b11111, }, { // 3 0b11110, 0b00001, 0b00010, 0b00100, 0b00110, 0b00001, 0b00001, 0b11110, }, { // 4 0b00010, 0b00110, 0b01010, 0b10010, 0b11111, 0b00010, 0b00010, 0b00010, }, { // 5 0b11111, 0b10000, 0b10000, 0b11110, 0b00001, 0b00001, 0b10001, 0b01110, }, { // 6 0b01110, 0b10000, 0b10000, 0b11110, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 7 0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b01000, 0b10000, 0b10000, }, { // 8 0b01110, 0b10001, 0b10001, 0b01110, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 9 0b01110, 0b10001, 0b10001, 0b10001, 0b11110, 0b00001, 0b00001, 0b11110, }, { // A 0b00100, 0b01010, 0b10001, 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, }, { // B 0b11110, 0b10001, 0b10001, 0b11110, 0b10001, 0b10001, 0b10001, 0b11110, }, { // C 0b01110, 0b10001, 0b10000, 0b10000, 0b10000, 0b10000, 0b10001, 0b01110, }, { // D 0b11110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b11110, }, { // E 0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b10000, 0b11111, }, { // F 0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b10000, 0b10000, }, { // G 0b01110, 0b10001, 0b10000, 0b10000, 0b10111, 0b10001, 0b10001, 0b01110, }, { // H 0b10001, 0b10001, 0b10001, 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, }, { // I 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, }, { // J 0b11111, 0b00010, 0b00010, 0b00010, 0b00010, 0b00010, 0b10010, 0b01100, }, { // K 0b10001, 0b10010, 0b10100, 0b11000, 0b10100, 0b10010, 0b10001, 0b10001, }, { // L 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111, }, { // M 0b10001, 0b11011, 0b10101, 0b10101, 0b10001, 0b10001, 0b10001, 0b10001, }, { // N 0b10001, 0b10001, 0b11001, 0b10101, 0b10011, 0b10001, 0b10001, 0b10001, }, { // O 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // P 0b11110, 0b10001, 0b10001, 0b11110, 0b10000, 0b10000, 0b10000, 0b10000, }, { // Q 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10101, 0b10010, 0b01101, }, { // R 0b11110, 0b10001, 0b10001, 0b11110, 0b10010, 0b10001, 0b10001, 0b10001, }, { // S 0b01110, 0b10001, 0b10000, 0b01110, 0b00001, 0b00001, 0b10001, 0b01110, }, { // T 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, }, { // U 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // V 0b10001, 0b10001, 0b10001, 0b10001, 0b01010, 0b01010, 0b00100, 0b00100, }, { // W 0b10001, 0b10001, 0b10001, 0b10101, 0b10101, 0b11011, 0b11011, 0b10001, }, { // X 0b10001, 0b10001, 0b01010, 0b00100, 0b00100, 0b01010, 0b10001, 0b10001, }, { // Y 0b10001, 0b10001, 0b01010, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, }, { // Z 0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b10000, 0b11111, } };
  • Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um Code auf Arduino hochzuladen
  • Überprüfen Sie den Zustand der LED-Matrix

Code-Erklärung

Im bereitgestellten Code ist es entscheidend, sich auf die Funktion add_to_frame(char c, int pos) zu konzentrieren. Diese Funktion akzeptiert zwei Argumente:

  • char c: Das anzuzeigende Zeichen. Gültige Werte reichen von 0 bis 9 und A bis Z.
  • int pos: Die Spaltenposition, an der das Zeichen angezeigt werden soll. Gültige Werte reichen von 0 bis 11.

Arduino-Code - Zeigt zwei Zeichen gleichzeitig an

Der folgende Arduino-Code zeigt gleichzeitig zwei Zeichen auf der LED-Matrix an.

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-built-in-led-matrix */ #include "Arduino_LED_Matrix.h" #include "fonts.h" ArduinoLEDMatrix matrix; uint8_t frame[8][12] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; void setup() { // put your setup code here, to run once: Serial.begin(115200); delay(1500); matrix.begin(); } void loop() { clear_frame(); add_to_frame('A', 0); add_to_frame('5', 6); display_frame(); delay(1000); clear_frame(); add_to_frame('7', 0); add_to_frame('F', 6); display_frame(); delay(1000); } void clear_frame() { for (int row = 0; row < 8; row++) { for (int col = 0; col < 12; col++) { frame[row][col] = 0; } } } void display_frame() { matrix.renderBitmap(frame, 8, 12); } void add_to_frame(char c, int pos) { int index = -1; if (c >= '0' && c <= '9') index = c - '0'; else if (c >= 'A' && c <= 'Z') index = c - 'A' + 10; else { Serial.println("WARNING: unsupported character"); return; } for (int row = 0; row < 8; row++) { uint32_t temp = fonts[index][row] << (7 - pos); for (int col = 0; col < 12; col++) { frame[row][col] |= (temp >> (11 - col)) & 1; } } }

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!