No post de hoje confira como conectar o módulo MAX7219 com ESP8266 NodeMCU, circuito que você pode usar como base para montar o seu próprio sistema de avisos por wifi explorando toda a versatilidade do ESP8266.
O circuito que vamos montar é esse da imagem acima, usando uma placa que possui 4 módulos MAX7219 interligados.
O módulo MAX7219
O CI MAX7219 é um driver de display para controle de displays de 7 segmentos ou matriz de leds 8×8, que pode ser utilizado tanto para controle de apenas um display como pode ser ligado em cascata, formando painéis de led bem interessantes para avisos, alarmes e contadores, entre outros.
Neste post vamos usar o módulo Módulo 4 Matrizes de LED 8×8 com MAX7219, que é uma placa pronta já com os 4 módulos conectados entre sim e uma entrada de dados comum. O modelo de módulo que estamos utilizando é o FC-16, e você pode conferir essa informação retirando a matriz do soquete:
Na imagem acima também podemos ver os pinos de saída no lado direito (CLK, CS, DOUT) que podem ser usado para conectar mais módulos como esse, formando painéis maiores.
Conexão do módulo MAX7219 com ESP8266
A comunicação com o módulo matriz de leds 8×8 é feita através da interface SPI. No ESP8266 NodeMCU, usaremos para conexão os pinos D4 (GPIO2) ao CS do módulo MAX7219, D5 (GPIO14) no CLK e D7 (GPIO13) no DIN:
Nos testes o módulo funcionou perfeitamente com alimentação 3.3V, mas você também pode utilizar uma fonte externa de 5V ou se estiver alimentando o NodeMCU por meio de um cabo USB utilizar o pino Vin, que neste caso também será uma saída 5VDC.
Programa MAX7219 com ESP8266 NodeMCU
Para o programa abaixo vamos precisar de duas bibliotecas, que devem ser instaladas manualmente. Uma delas é a Altairis ESP8266 FC16 (download) e a outra é a LedControlSpiESP8266 (download). Faça o download das duas bibliotecas, descompacte e coloque-as na pasta LIBRARIES da sua IDE Arduino.
A Altairis funciona em cima da LedControlSpiESP8266, que na sua versão original é um pouco complicada para usar por uma pessoa sem tantos conhecimentos técnicos.
O resultado é um programa muito mais enxuto e com comandos básicos, como você pode conferir abaixo, onde definimos na linha 7 qual pino usaremos para o CS (você pode usar outros pinos do ESP8266) e na linha 9 o número de displays que vamos comandar:
//Programa: Modulo Max7219 FC-16 com ESP8266 NodeMCU //Autor: Arduino e Cia #include <FC16.h> //Conexao do pino CS const int csPin = D4; //Numero de displays que estamos usando const int numDisp = 4; //Tempo do scroll em milisegundos const int scrollDelay = 250; FC16 display = FC16(csPin, numDisp); void setup() { //Inicializa o display display.begin(); //Intensidade / Brilho display.setIntensity(8); //Apaga o display display.clearDisplay(); //Texto a ser exibido no display display.setText("\x10 Hello!! \x11"); } void loop() { //Chama a rotina de scroll display.update(); //Aguarda o tempo definido delay(scrollDelay); }
Repare que na linha 25 onde setamos o texto que será exibido no display temos um x10 e um x11. Eles são usados para inserir caracteres “especiais” no texto. Vários estão disponíveis e você pode conferir a lista abaixo para usar de acordo com a sua necessidade:
- x01 🙂
- x02 🙁
- x03 Coração
- x04 Diamante
- x05 Naipe de paus
- x06 Naipe de espadas
- x07 Bullet
- x08 Bullet vazio
- x09 Bullet grande
- x0A Bullet grande invertido
- x0B Checkbox vazio
- x0C Checkbox cruz
- x0D Checkbox preenchido
- x0E Checkbox cheio
- x0F Sol
- x10 Triângulo direita
- x11 Triângulo esquerda
- x18 Seta para cima
- x19 Seta para baixo
- x1A Seta para a direita
- x1B Seta para a esquerda
- x7F Espaçamento 8 pixels
Divirta-se! 🙂
Gostou? Use este mesmo projeto para montar um Painel de Avisos acionado por Bot Telegram, um outro post aqui mesmo do Arduino e Cia!