No post de hoje vamos ver como conectar o módulo MAX7219 com ESP8266 NodeMCU, circuito que 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 tem como resultado a imagem acima, usando uma placa que possui 4 módulos MAX7219 interligados.
O módulo MAX7219
O CI MAX7219 é um driver de display para o controlo de displays de 7 segmentos ou matriz de leds 8×8, que pode ser utilizado tanto para controlo de apenas um display como pode ser ligado em cascata, formando painéis de led 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 si e uma entrada de dados comum. O modelo de módulo que iremos utilizar é o FC-16. Pode confirmar essa informação no modulo conforme a imagem abaixo:
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) ao CLK e D7 (GPIO13) ao DIN:
Nos testes o módulo funcionou perfeitamente com alimentação 3.3V, mas 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 download das duas bibliotecas, descompacte e coloque-as na pasta LIBRARIES no Arduino IDE.
A Altairis funciona em cima da LedControlSpiESP8266, que na sua versão original é um pouco complicada para usar por uma pessoa com poucos conhecimentos técnicos. O resultado é um programa muito mais simples e limpo e com comandos básicos, como pode ver abaixo, onde definimos na linha 7 qual pino usaremos para o CS (pode utilizar outros pinos do ESP8266) e na linha 9 o número de displays que vamos comandar:
//Programa: Modulo Max7219 FC-16 com ESP8266 NodeMCU #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 ajustamos 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, deixamos uma 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
# Lista de Material:
Todos os produtos foram adquiridos na loja de eletrónica e robótica ElectroFun: www.electrofun.pt.
Outros produtos que possam ser úteis:
- Arduino Nano
- Led
- Breadboard
- Resistências
- LDR (Sensor de luminosidade)
- Kit Arduino Iniciação (opcional)
# Dúvidas:
https://www.facebook.com/groups/arduinoportugal/
Subscreva o nosso canal Arduino Portugal do Youtube! E fique a saber qual é o próximo projeto!