Índice:
- Suprimentos
- Etapa 1: verifique o pacote
- Etapa 2: um pouco sobre esta matriz de pontos específica
- Etapa 3: o driver MAX7219
- Etapa 4: O circuito
- Etapa 5: O Código
- Etapa 6: o resultado
Vídeo: MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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
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 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 é 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
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:
Como usar a matriz de pontos Max7219 8x8 com "skiiiD": 9 etapas
Como usar a matriz de pontos 8x8 do Max7219 com "skiiiD": esta é uma instrução em vídeo da matriz de pontos 8x8 do Max7219 via " skiiiD " Antes de começar, abaixo está um tutorial básico de como usar o skiiiDhttps: //www.instructables.com/id / Getting-Started-W
4 em 1 MAX7219 Tutorial do módulo de exibição de matriz de pontos usando o Arduino UNO: 5 etapas
4 em 1 MAX7219 Tutorial do módulo de exibição de matriz de pontos usando o Arduino UNO: Descrição: Procurando uma matriz de LED fácil de controlar? Este módulo 4 em 1 Dot Matrix Display deve ser adequado para você. O módulo completo vem em quatro matrizes de cátodo comum 8x8 RED equipadas com MAX7219 IC cada. Ótimo para exibir texto corrido a
Matriz de pontos; 8x8 com mensagem ou imagens: 4 etapas
Dot Matrix; 8x8 com mensagem ou imagens: Este Instructable irá mostrar-lhe as imagens Dot Matrix que fiz com o Dot Matrix 8x8 .. Por favor, olhe os vídeos e programas incluídos. A matriz de pontos é um display bidimensional. Consiste em 8 colunas e 8 linhas.Se você olhar de perto
Monitor de SMS -- Visor de matriz de pontos -- MAX7219 -- SIM800L: 8 etapas (com imagens)
Monitor de SMS || Visor de matriz de pontos || MAX7219 || SIM800L: neste vídeo, você aprenderá como usar um módulo GSM, display de matriz de pontos e como exibir texto de rolagem nele. Depois disso, iremos combiná-los para exibir as mensagens recebidas por um SIM GSM em um visor de matriz de pontos. É bastante fácil e você
Display de matriz de pontos LED: 8 etapas (com imagens)
Display de matriz de pontos de LED: Este é um simples COMO fazer seu próprio display de matriz de pontos de LED personalizado. Estarei adicionando o programa completo com uma explicação para acender os LEDs. Também é bastante hackável, você pode alterá-lo para se adequar a si mesmo. Decidi fazer meu próprio d