ESP8266 - Matriz de LED

Este tutorial ensina você a usar o ESP8266 com um display de matriz de LED. Em detalhes, vamos aprender:

Depois disso, será simples modificar o código para outras matrizes de LED, como uma matriz de LED 16x8 ou uma matriz de LED 64x8 ...

Sobre a Matriz de LED

Os displays de matriz de LED são comumente chamados de displays LED ou displays de matriz de pontos.

LED Matrix display

A matriz de LED existe em muitas variedades. A matriz de LED baseada no MAX7219 é muito usada com o ESP8266. Ela tem as seguintes características:

  • Um único bloco consiste em uma matriz de LED 8x8 (64 LED) e um driver MAX7219.
  • Existem dois tipos comuns de blocos: módulo genérico e módulo FC-16.
  • Você pode comprar uma matriz de LED de vários blocos já pronta (por exemplo, 4 em 1, 8 em 1) ou ligar vários blocos entre si para criar uma matriz de LED do tamanho que desejar.
  • O tamanho da matriz de LED que você usa deve ser declarado no código do ESP8266.

A Pinagem da Matriz de LED

LED Matrix pinout

Uma matriz de LED é composta por um ou mais blocos. Cada bloco tem dois conjuntos de pinos:

  • Grupo de pinos de entrada:
    • VCC: conectado à fonte de alimentação de 5V.
    • GND: conectado ao terra.
    • DIN: pino de dados, conectado a qualquer pino digital do ESP8266.
    • CS: Chip Select, conectado a qualquer pino digital do ESP8266.
    • CLK: pino de clock, conectado a qualquer pino digital do ESP8266.
  • Grupo de pinos de saída:
    • VCC: conecta ao VCC do próximo bloco.
    • GND: conecta ao GND do próximo bloco.
    • DOUT: Data Out, conecta ao pino DIN do próximo bloco.
    • CS: conecta ao CS do próximo bloco.
    • CLK conecta ao CLK do próximo bloco.

Diagrama de Ligação

Se a matriz de LED for feita de um único bloco:

  • Conecte os pinos de entrada ao ESP8266
  • Deixe os pinos de saída desconectados
The wiring diagram between ESP8266 NodeMCU and 8x8 LED matrix FC-16

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

The wiring diagram between ESP8266 NodeMCU and 8x8 LED matrix generic

This image is created using Fritzing. Click to enlarge image

Se a matriz de LED já vier montada com vários blocos:

  • Conecte o grupo de pinos de entrada ao ESP8266
  • Deixe o grupo de pinos de saída desconectado
The wiring diagram between ESP8266 NodeMCU and LED matrix display

This image is created using Fritzing. Click to enlarge image

Se você estiver montando a matriz de LED a partir de vários blocos:

  • Conecte os grupos de pinos de entrada do primeiro bloco ao ESP8266
  • Conecte os grupos de pinos de saída de cada bloco aos grupos de pinos de entrada do bloco seguinte
  • Deixe o grupo de pinos de saída do último bloco desconectado
ESP8266 NodeMCU 32x8 LED matrix wiring FC-16 diagram

This image is created using Fritzing. Click to enlarge image

Devido ao alto consumo de corrente do display (até 1A no brilho máximo):

  • Evite alimentá-lo pelo pino 5V do ESP8266.
  • Use uma fonte de alimentação externa de 5V. O ESP8266 e a matriz de LED podem ser alimentados por um único adaptador de 5V.

Como o ESP8266 é conectado à matriz de LED pelos pinos SPI:

  • Os pinos D5 (SCK) e D7 (MOSI) do ESP8266 devem ser utilizados. Se outra placa ESP8266 estiver sendo usada, consulte a documentação oficial para encontrar os pinos SPI equivalentes.
  • O pino D8 (CS) pode ser definido como qualquer pino da placa ESP8266.

Como Programar para a Matriz de LED

Controlar a matriz de LED não é uma tarefa simples. Felizmente, existem bibliotecas que tornam isso muito mais fácil. Aqui está um guia passo a passo de como escrever o código do ESP8266 para controlar a matriz de LED:

  • Inclua as bibliotecas:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Especifique o tipo de hardware a ser utilizado: GENERIC_HW ou FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Especifique o número de blocos de LED usados. Por exemplo, uma matriz de LED 4 em 1 contém 4 blocos.
#define MAX_DEVICES 4
  • Especifique o pino conectado ao pino CS da matriz de LED. Por exemplo, o pino D3.
#define CS_PIN D8
  • Crie um objeto MD_Parola para ser usado com o display de matriz de LED.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Código localizado na função setup():
void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(0); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display }
  • Exiba texto, valores numéricos e efeitos animados: consulte a seção a seguir.

Código ESP8266 - Matriz de LED

Este código é adequado para um display de matriz de LED FC-16 32x8 composto por quatro blocos. Ele pode ser facilmente adaptado para outros tamanhos, como 8x8, 16x8 e 64x8.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN D8 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the LED Matrix ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display } void loop() { ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); // display text delay(2000); ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); // display text inverted delay(2000); ledMatrix.setInvert(false); ledMatrix.print(1234); // display number delay(2000); }

Passos Rápidos

Para começar com o ESP8266 na Arduino IDE, siga estes passos:

  • Veja o tutorial como configurar o ambiente para o ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes conforme mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Conecte o ESP8266 à matriz de LED como mostrado no diagrama de ligação.
  • Conecte o ESP8266 a um PC com um cabo USB.
  • Clique no ícone Libraries na barra à esquerda da Arduino IDE.
  • Pesquise por “MD_Parola” e localize a biblioteca MD_Parola.
  • Pressione o botão Install.
ESP8266 NodeMCU MD_Parola library
  • Você será solicitado a instalar a biblioteca “MD_MAX72XX”
  • Clique no botão Install All para instalar a dependência.
ESP8266 NodeMCU MD_MAX72XX library
  • A mensagem
  • Copie o código e abra-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para compilar e carregar o código no ESP8266.
  • Confira a matriz de LED exibindo a mensagem.

Código ESP8266 para Matriz de LED – Texto em Rolagem

Se uma mensagem for longa demais para ser exibida em uma matriz de LED, é possível usar o efeito de texto em rolagem. Isso permite que a mensagem inteira seja vista.

Este código ESP8266 mostra como rolar uma mensagem em um display de matriz de LED.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN D8 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display ledMatrix.displayScroll("ESP8266", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Se você procura mais efeitos de texto, confira a Referência da Biblioteca MD_Parola.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!