User Tools

Site Tools


informatica:arduino:matrix_led

This is an old revision of the document!


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

PANELESP32
VCCVin
GNDGND
DINGPIO23
CSGPIO5
CLKGPIO18

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