informatica:arduino:matrix_led
This is an old revision of the document!
Table of Contents
Panel Matrix led
Hay varias bibliotecas (que no librerías)
1. MD_MAX72XX y MD_Parola
https://microcontrollerslab.com/led-dot-matrix-display-esp32-max7219/
Bibliotecas: MD_MAX72XX by MajicDesigns and MD_Parola de MajicDesigns
PANEL | ESP32 |
---|---|
VCC | Vin |
GND | GND |
DIN | GPIO23 |
CS | GPIO5 |
CLK | GPIO18 |
Texti de plano a pins
#include <MD_Parola.h> #include <MD_MAX72xx.h> #include <SPI.h> // Uncomment according to your hardware type #define HARDWARE_TYPE MD_MAX72XX::FC16_HW //#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW // Defining size, and output pins #define MAX_DEVICES 4 #define DATA_PIN 23 #define CS_PIN 5 #define CLK_PIN 18 MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { Display.begin(); Display.setIntensity(0); Display.displayClear(); } void loop() { Display.setTextAlignment(PA_LEFT); Display.print("ESP32"); delay(2000); Display.setTextAlignment(PA_CENTER); Display.print("ESP32"); delay(2000); Display.setTextAlignment(PA_RIGHT); Display.print("ESP32"); delay(2000); Display.setTextAlignment(PA_CENTER); Display.setInvert(true); Display.print("ESP32"); delay(2000); Display.setInvert(false); delay(2000); }
2. Max72xxPanel y SPI
Con esta biblioteca (que no librería) podemos definir en que posición sale cada carácter. Por ejemplo, si hacemos una secuencia de números, el 1 es mas estrecho que el 2
matrix.drawChar(x,y,char,color,bg,size);
Por ejemplo:
matrix.drawChar(0, 1, cadena[2], HIGH, LOW, 1);
#include <SPI.h> #include <Adafruit_GFX.h> #include <Max72xxPanel.h> const int pinCS = 5; const int pinClk = 18; const int pinDin = 23; String cadena = "ESP32"; const int numberOfHorizontalDisplays = 4; //const int numberOfHorizontalDisplays = 1; // retirar comentario para una sola matriz const int numberOfVerticalDisplays = 1; Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); void setup() { matrix.setIntensity(7); // Use a value between 0 and 15 for brightness // matrix.setPosition(0, 0, 0); // The first display is at <0, 0> matrix.setPosition(1, 1, 0); // The second display is at <1, 0> matrix.setPosition(2, 2, 0); // The third display is at <2, 0> matrix.setPosition(3, 3, 0); // And the last display is at <3, 0> matrix.setRotation(0, 1); // Display is position upside down matrix.setRotation(1, 1); // Display is position upside down matrix.setRotation(2, 1); // Display is position upside down matrix.setRotation(3, 1); // Display is position upside down } void loop() { matrix.drawChar(0, 1, cadena[3], HIGH, LOW, 1); matrix.write(); }
Para escribir una palabra:
informatica/arduino/matrix_led.1666654130.txt.gz · Last modified: 2022/10/24 23:28 by jose