Índice:

MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)
MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)

Vídeo: MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)

Vídeo: MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)
Vídeo: Simulando a Franzininho DIY no Wokwi 2024, Novembro
Anonim
Image
Image
Verifique o pacote
Verifique o pacote

Um monitor de matriz de pontos é um dispositivo de exibição que contém diodos emissores de luz alinhados na forma de matriz. Estes visores de matriz de pontos são usados em aplicações onde símbolos, gráficos, caracteres, alfabetos e números precisam ser exibidos juntos em estática, bem como Movimento de rolagem. O Display Matrix Dot é fabricado em várias dimensões, como 5x7, 8x8, 16x8, 128x16, 128x32 e 128x64, onde os números representam LEDs em linhas e colunas. Além disso, esses monitores vêm em cores diferentes, como Vermelho, Verde, Amarelo, Azul, Laranja, Branco.

Neste Instructable, irei fazer a interface de uma matriz de pontos 8x8 que tem um driver MAX7219 para um Arduino Uno. Vamos começar.

Suprimentos

MAX7219

Etapa 1: verifique o pacote

Como você pode ver, eu tenho uma versão smt da placa de driver, é muito importante verificar cada um dos componentes necessários, pois os componentes smd são muito pequenos e você pode facilmente perdê-los. Também há versões dip disponíveis online, mas eu usei a versão smt para seu tamanho.

Etapa 2: um pouco sobre esta matriz de pontos específica

Um pouco sobre esta matriz de pontos em particular
Um pouco sobre esta matriz de pontos em particular

módulo único pode conduzir um cátodo comum de matriz de pontos 8x8.

Tensão de operação: 5 v

Dimensões: comprimento de 3,2 cm x 3,2 cm de largura x 1,3 cm de altura, orifícios com quatro parafusos, diâmetro de 3 mm

Módulos com interfaces de entrada e saída, suporte para vários módulos em cascata.

Os terminais de entrada e saída de dados são especificados no módulo.

Etapa 3: o driver MAX7219

O driver MAX7219
O driver MAX7219
O Driver MAX7219
O Driver MAX7219

O MAX7219 é um IC projetado para controlar uma MATRIX LED de 8x8. O IC é um driver de exibição de cátodo comum de entrada serial (Negativo Comum) que faz a interface de microprocessadores (ou microcontroladores) a displays de LED numéricos de 7 segmentos de até 8 dígitos, displays de gráfico de barras ou 64 LEDs individuais.

Recursos e especificações

Faixa de tensão de operação: +4,0 a + 5,5V

Tensão de operação recomendada: + 5V

Tensão máxima de alimentação: 6V

Corrente máxima permitida para passar por cada pino de segmento: 100mA

Corrente máxima permitida através de cada pino terra DIGIT: 500mA

Baixo consumo de energia

Tempo de atraso de dados para segmento: 2,2 mSeg

Temperatura de operação: 0 ° C a + 70 ° C

Temperatura de armazenamento: -65 ° C a + 150 ° C

Etapa 4: O circuito

O circuito
O circuito
O circuito
O circuito

O circuito é bastante simples e pode ser construído com fios jumper de macho para fêmea. Basta seguir a pinagem e construir o circuito. Você pode montá-lo posteriormente em um PCB se estiver fazendo um aplicativo permanente para o Matrix.

A configuração do pino é a seguinte:

  • Vcc para 5V Pin do Arduino.
  • Gnd para Gnd Pin do Arduino.
  • DIN para pino digital 12 do Arduino.
  • CS para pino digital 11 do Arduino
  • CLK para o pino digital 10 do Arduino.

Etapa 5: O Código

Aqui neste Instructable, irei fornecer a você dois códigos diferentes. Um irá gerar alguns alfabetos ingleses e smilies na Matrix. O outro fará com que todos os 64 LEDs acendam um por um. Você deve usar a biblioteca lledcontrol para fazê-lo funcionar.

Este é o código para alfabetos ingleses e sorrisos

#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte oito [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; ponto de byte [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, falso); // O MAX72XX está no modo de economia de energia na inicialização lc.setIntensity (0, 15); // Defina o brilho para o valor máximo lc.clearDisplay (0); // e limpar o display} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutro [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte franzido [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (sorriso); atraso (1000); printByte (neutro); atraso (1000); printByte (carranca); atraso (1000); printEduc8s (); lc.clearDisplay (0); atraso (1000); } void printEduc8s () {printByte (e); atraso (1000); printByte (d); atraso (1000); printByte (u); atraso (1000); printByte (c); atraso (1000); printByte (oito); atraso (1000); printByte (s); atraso (1000); printByte (ponto); atraso (1000); printByte (c); atraso (1000); printByte (o); atraso (1000); printByte (m); atraso (1000); } void printByte (caractere de byte ) {int i = 0; para (i = 0; i <8; i ++) {lc.setRow (0, i, caractere ); }}

e o código para testar todos os 64 LEDs

// Sempre devemos incluir a biblioteca # include "LedControl.h"

/*

Agora precisamos de um LedControl para trabalhar. ***** Esses números de pinos provavelmente não funcionarão com o seu hardware ***** o pino 12 está conectado ao DataIn, o pino 10 está conectado ao CLK, o pino 11 está conectado a LOAD Temos apenas um único MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * sempre esperamos um pouco entre as atualizações do display * /

longo retardo sem sinal = 100;

void setup () {

/ * O MAX72XX está no modo de economia de energia na inicialização, temos que fazer uma chamada de ativação * / lc.shutdown (0, false); / * Defina o brilho para valores médios * / lc.setIntensity (0, 8); / * e limpar a exibição * / lc.clearDisplay (0); }

/*

Este método exibirá os caracteres da palavra "Arduino" um após o outro na matriz. (você precisa de pelo menos 5x7 leds para ver os caracteres inteiros) * / void writeArduinoOnMatrix () {/ * aqui estão os dados para os caracteres * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * agora exibe-os um por um com um pequeno atraso * /

lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); atraso (delaytime); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); atraso (delaytime); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); atraso (delaytime); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); atraso (delaytime); lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); atraso (delaytime); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); atraso (delaytime); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); atraso (delaytime); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); atraso (delaytime); }

/*

Esta função acende alguns Leds em uma linha. O padrão será repetido em todas as linhas. O padrão piscará junto com o número da linha. a linha número 4 (índice == 3) piscará 4 vezes etc. * / void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); lc.setRow (0, linha, B10100000); atraso (delaytime); lc.setRow (0, linha, (byte) 0); para (int i = 0; i

/*

Esta função acende alguns Leds em uma coluna. O padrão será repetido em todas as colunas. O padrão piscará junto com o número da coluna. a coluna número 4 (índice == 3) piscará 4 vezes etc. * / void columns () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); atraso (delaytime); lc.setColumn (0, col, (byte) 0); para (int i = 0; i

/*

Esta função acenderá todos os Led da matriz. O led piscará junto com o número da linha. a linha número 4 (índice == 3) piscará 4 vezes etc. * / void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { atraso (delaytime); lc.setLed (0, linha, coluna, verdadeiro); atraso (delaytime); para (int i = 0; i

void loop () {

writeArduinoOnMatrix (); linhas (); colunas (); solteiro(); }

Etapa 6: o resultado

Image
Image
A saída
A saída
A saída
A saída
A saída
A saída

Assista ao vídeo completo aqui: -MAX7219 8x8 LED MATRIX MONTAGEM E TESTE usando ARDUINO

Bem, todo esse trabalho duro certamente compensa muito bem quando você vê o resultado. Vale a pena !!

Inscreva-se no meu canal do youtube: -Coisas criativas

Recomendado: