Tabla de contenido:

Prueba y ensamblaje de matriz de puntos LED MAX7219: 6 pasos (con imágenes)
Prueba y ensamblaje de matriz de puntos LED MAX7219: 6 pasos (con imágenes)

Video: Prueba y ensamblaje de matriz de puntos LED MAX7219: 6 pasos (con imágenes)

Video: Prueba y ensamblaje de matriz de puntos LED MAX7219: 6 pasos (con imágenes)
Video: tutorial de matriz de led 8x8 en PICC(BIEN EXPLICADO) 2024, Mes de julio
Anonim
Image
Image
Ver el paquete
Ver el paquete

Una pantalla de matriz de puntos es un dispositivo de visualización que contiene diodos emisores de luz alineados en forma de matriz. Estas pantallas de matriz de puntos se utilizan en aplicaciones en las que los símbolos, gráficos, caracteres, alfabetos y números deben mostrarse juntos en forma estática y Movimiento de desplazamiento La pantalla de matriz de puntos se fabrica en varias dimensiones como 5x7, 8x8, 16x8, 128x16, 128x32 y 128x64 donde los números representan LED en filas y columnas, también estas pantallas vienen en diferentes colores como rojo, verde, amarillo, azul, Naranja, Blanco.

En este Instructable, pasaré por la interfaz de una matriz de puntos de 8x8 que tiene un controlador MAX7219 a un Arduino Uno.

Suministros

MAX7219

Paso 1: verifique el paquete

Como puede ver, tengo una versión smt de la placa del controlador, es muy importante verificar todos y cada uno de los componentes necesarios, ya que los componentes smd son de tamaño muy pequeño y puede perderlos fácilmente. También hay una versión dip disponible en línea, pero yo usé la versión smt por su tamaño.

Paso 2: un poco sobre esta matriz de puntos en particular

Un poco sobre esta matriz de puntos en particular
Un poco sobre esta matriz de puntos en particular

Un solo módulo puede impulsar un cátodo común de matriz de puntos de 8x8.

Voltaje de funcionamiento: 5 v

Dimensiones: largo 3,2 cm X 3,2 cm de ancho X 1,3 cm de alto, agujeros con cuatro tornillos, el diámetro de 3 mm

Módulos con interfaces de entrada y salida, soporte para múltiples módulos en cascada.

Los terminales de entrada y salida de datos se especifican en el módulo.

Paso 3: el controlador MAX7219

El controlador MAX7219
El controlador MAX7219
El controlador MAX7219
El controlador MAX7219

El MAX7219 es un IC diseñado para controlar una MATRIZ LED de 8x8. El IC es controladores de pantalla de cátodo común (negativo común) de entrada en serie que conectan microprocesadores (o microcontroladores) a pantallas LED numéricas de 7 segmentos de hasta 8 dígitos, pantallas de gráfico de barras o 64 LED individuales.

Características y especificaciones

Rango de voltaje de funcionamiento: +4,0 a + 5,5 V

Voltaje de funcionamiento recomendado: + 5 V

Voltaje de suministro máximo: 6 V

Corriente máxima permitida para pasar a través de cada pin de segmento: 100 mA

Corriente máxima permitida a través de cada pin de tierra DIGIT: 500mA

Bajo consumo de energía

Tiempo de retardo de datos a segmento: 2,2 mseg.

Temperatura de funcionamiento: 0 ° C a + 70 ° C

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

Paso 4: el circuito

El circuito
El circuito
El circuito
El circuito

El circuito es bastante simple y se puede construir utilizando cables de puente macho a hembra. Simplemente siga el pinout y construya el circuito. Luego puede ensamblarlo en una PCB si está realizando una aplicación permanente para Matrix.

La configuración de los pines es la siguiente:

  • Pin Vcc a 5V de Arduino.
  • Gnd a Gnd Pin del Arduino.
  • DIN al pin digital 12 del Arduino.
  • CS al pin digital 11 del Arduino
  • CLK al Pin digital 10 del Arduino.

Paso 5: el código

Aquí, en este Instructable, le proporcionaré dos códigos diferentes. Uno generará algunos alfabetos y emoticones en inglés en Matrix. El otro hará que todos los 64 LED se iluminen uno por uno. Debe utilizar la biblioteca lledcontrol para que funcione.

Este es el código para alfabetos y sonrisas en inglés

#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 ocho [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; punto 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); configuración vacía () {lc.shutdown (0, falso); // El MAX72XX está en modo de ahorro de energía al iniciarse lc.setIntensity (0, 15); // Establece el brillo al valor máximo lc.clearDisplay (0); // y borra la pantalla} 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 fruncir el ceño [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (sonrisa); retraso (1000); printByte (neutral); retraso (1000); printByte (fruncir el ceño); retraso (1000); printEduc8s (); lc.clearDisplay (0); retraso (1000); } void printEduc8s () {printByte (e); retraso (1000); printByte (d); retraso (1000); printByte (u); retraso (1000); printByte (c); retraso (1000); printByte (ocho); retraso (1000); printByte (s); retraso (1000); printByte (punto); retraso (1000); printByte (c); retraso (1000); printByte (o); retraso (1000); printByte (m); retraso (1000); } vacío printByte (carácter byte ) {int i = 0; para (i = 0; i <8; i ++) {lc.setRow (0, i, carácter ); }}

y el código para probar los 64 LED

// Siempre tenemos que incluir la librería # include "LedControl.h"

/*

Ahora necesitamos un LedControl para trabajar. ***** Estos números de pin probablemente no funcionarán con su hardware ***** El pin 12 está conectado al DataIn El pin 10 está conectado al CLK El pin 11 está conectado a LOAD Tenemos sólo un MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * siempre esperamos un poco entre las actualizaciones de la pantalla * /

tiempo de retardo largo sin firmar = 100;

configuración vacía () {

/ * El MAX72XX está en modo de ahorro de energía al inicio, tenemos que hacer una llamada de activación * / lc.shutdown (0, false); / * Establece el brillo en valores medios * / lc.setIntensity (0, 8); / * y borrar la pantalla * / lc.clearDisplay (0); }

/*

Este método mostrará los caracteres de la palabra "Arduino" uno tras otro en la matriz. (necesita al menos 5x7 leds para ver los caracteres completos) * / void writeArduinoOnMatrix () {/ * aquí están los datos de los 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};

/ * ahora mostrarlos uno por uno con un pequeño retraso * /

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]); delay (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]); delay (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]); delay (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]); delay (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]); delay (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]); delay (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]); delay (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); delay (delaytime); }

/*

Esta función enciende algunos Leds seguidos. El patrón se repetirá en cada fila. El patrón parpadeará junto con el número de fila. la fila número 4 (índice == 3) parpadeará 4 veces, etc. * / void rows () {for (int fila = 0; fila <8; fila ++) {delay (delaytime); lc.setRow (0, fila, B10100000); delay (delaytime); lc.setRow (0, fila, (byte) 0); para (int i = 0; i

/*

Esta función enciende algunos Leds en una columna. El patrón se repetirá en cada columna. El patrón parpadeará junto con el número de columna. la columna número 4 (índice == 3) parpadeará 4 veces, etc. * / void columnas () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); delay (delaytime); lc.setColumn (0, col, (byte) 0); para (int i = 0; i

/*

Esta función iluminará todos los Led de la matriz. El led parpadeará junto con el número de fila. la fila número 4 (índice == 3) parpadeará 4 veces, etc. * / void single () {for (int fila = 0; fila <8; fila ++) {for (int col = 0; col <8; col ++) { delay (delaytime); lc.setLed (0, fila, columna, verdadero); delay (delaytime); para (int i = 0; i

bucle vacío () {

writeArduinoOnMatrix (); filas (); columnas (); soltero(); }

Paso 6: la salida

Image
Image
La salida
La salida
La salida
La salida
La salida
La salida

Vea el video completo aquí: -MAX7219 ENSAMBLE Y PRUEBAS DE MATRIZ LED 8x8 usando ARDUINO

Bueno, todo este arduo trabajo, seguro que se amortiza bastante cuando veas el resultado. Vale la pena !!

Suscríbete a mi canal de youtube: -Creative Stuff

Recomendado: