Arduino max7219 display 7 segmentos


En este post vamos a aprender a conectar un display de 7 segmentos de 4 dígitos al arduino utilizando el controlador de pantalla MAX7219

oscar Escrito por oscar 28 August 2020 6184 1

Contenido

Vídeo

A continuación encontrara el vídeo en donde se explica el funcionamiento del circuito.

Acerca del proyecto

En este post vamos a aprender a conectar un display de 7 segmentos de 4 dígitos al arduino utilizando el controlador de pantalla MAX7219, este circuito nos permite visualizar valores numéricos en las pantallas LCD de 7 segmentos con la facilidad de desacoplar la lógica qué necesita para visualizar en el display de nuestro código principal, es decir ya no necesitamos hacer la multiplexacion, ni enventos relacionados para poder visualizar un número, ya que lo único que necesitamos hacer es enviarle el número que necesitamos visualizar al controlador y éste se encargará de mostrarlo en la pantalla.[1]

Vamos a ver el paso a paso de lo que necesitamos hacer para poder visualizar los números, vamos a ver los materiales, y las conexiones necesarias para poder utilizar este display; en este caso vamos a trabajar con cuatro dígitos pero este tipo de circuitos puede soportar hasta 8 dígitos o más dependiendo la configuración que realicemos en el MAX7219.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
MAX7219 datasheet Tenemos la hoja de datos del circuito integrado de damos su descripción principal, los valores que puede soportar en corriente y voltaje, y la descripción de cada uno de los pines.
Descargar librería LedControl Este es el repositorio principal donde podra descargar la librería del ledcontrol.
Descripción LedControl Esta es la librería que vamos a utilizar para poder comunicarnos con el circuito integrado MAX7219, aquí explicamos Cuáles son las funciones que tienen y damos un breve ejemplo de cómo podemos utilizar la

Display 7 segmentos cátodo común

El display es básicamente un arreglo de diodos leds organizados de tal forma que nos puedan mostrar el dígito. En la siguiente imagen tenemos la forma de cómo se vería por dentro el display donde todos los catodos están conectados hacia negativo y la salida de cada uno de los pines que se va a encargar de encender el correspondiente segmento.

A continuación tenemos varios proyectos que se han realizado con arduino y el display de 7 segmentos:

Arduino display 7 segmentos ánodo común En este post mostramos la conexión de un display 7 segmentos ánodo común al arduino y damos el paso a paso en el código para poder visualizar los dígitos.
Arduino display 7 segmentos cátodo común En este post mostramos la conexión de un display 7 segmentos cátodo común al arduino y damos el paso a paso en el código para poder visualizar los dígitos.
Conectar display 7 segmentos cátodo común En este post se explica la conexión básica del display de 7 segmentos.

MAX7219 Descripción general

Los MAX7219 / MAX7221 son controladores de pantalla de cátodo común compactos de entrada y salida en serie que interconectan microprocesadores (µPs) con pantallas LED numéricas de 7 segmentos de hasta 8 dígitos, pantallas de gráficos de barras o 4 LED individuales. En el chip se incluye un decodificador de código B BCD, circuitos de exploración multiplex, controladores de segmento y dígitos, y una RAM estática de 8x8 que almacena cada dígito.

Modulo MAX7219 display 7 segmentos

Para trabajar este circuito ya tenemos la opción del módulo dónde viene conectado dos displays de cuatro dígitos que en total nos van a dar ocho dígitos, este módulo ya está listo para trabajar lo único que hay que hacer es conectarlo con los pines correspondientes hacia el arduino y realizar la programación.

A continuación tenemos la tabla donde explicamos a que pin del módulo tiene que ir conectado al arduino.

Modulo max7219 Arduino
din11
cs10
clk13

Con esto ya podemos ir al código si están trabajan do con este modulo.

MAX7219 display 7 segmentos

Para realizar la conexión desde cero del del circuito si no desean trabajar con el módulo, vamos a realizar los siguientes pasos para poder hacer la conexión del display con el circuito integrado y luego con el arduino, no se necesitan tantos materiales y lo único complejo es realizar la conexión de esos dos componentes.

La imagen anterior estamos identificando cada uno de los pines, para saber cuales son los segmentos del display y cuales son los digitos, en este caso solo trabajaremos con 4 dígitos es decir un modulo display 7 segmentos.

Materiales

Material Cantidad Descripción
Arduino 1 Controlador del proyecto, en este caso usaremos el arduino uno.
Display 7 segmentos 4 digitos 1 Display para visualizar los numeros del 0 al 9
MAX7219 1 Controlador del display de 7 segmentos
Resistencia 33k Resistencia para iset
Capacitor 10uf Capacitor de proteccción del circuito, conectado al iset

Circuito

Una vez que tengamos identificados los pines y listos los materiales vamos a proceder con la conexión, observamos la siguiente imagen del esquemático donde indicamos como se tienen que conectar cada uno de los pines de los segmentos y de los dígitos, adicionalmente tenemos que conectar el circuito MAX7219 a negativo con sus dos pines y a positivo con el pin correspondiente (la alimentacioón es a 3.3v), por último tenemos que colocar la resistencia en el pin iset con el condensador como no sugieren la imagen:

Ahora en la siguiente tabla identificamos el número del pin del circuito integrado con el número del pin del display para poder realizar la conexión.

MAX7219 Display 7 segmentos
26
69
712
118
1411
1510
167
175
204
211
223
232
4 GNDN/A
9 GNDN/A
18 ISETN/A
19 V+ (3.3v)N/A

Por ultimo tenemos la conexión del max7219 al arduino, observemos la siguiente tabla en donde relacionamos los pines:

MAX7219 arduino
111
1210
1313

Código

El proyecto se encuentra en el repositorio como arduino max7219 display 7 segmentos.

// Paso 1
#include "LedControl.h"

// Paso 2
                          //din clk cs
LedControl lc = LedControl(11, 13, 10, 1);

// Paso 3
void setup() {
  lc.shutdown(0, false); 
  lc.setIntensity(0, 8);
  lc.clearDisplay(0);
}

// Paso 5
void loop() { 
    displayNumber(random(0, 9999));
    delay(1000);
}

// Paso 4
void displayNumber( long number) {
  long result;
  int pos = 0 ;
  lc.clearDisplay(0);
  while ( number > 0 ) {
    result = number % 10 ; 
    number = number / 10 ;
    lc.setDigit(0,pos++,result,false);
  }
}
  1. Incluimos la librería LedControl que debemos descargar previamente, link en sección conocimiento previo.
  2. Inicilizamos el objeto LedControl donde le indicamos cueles son los pines usados en la comunicación al max7219.
  3. Ahora vamos a inicializar el display con shutdown donde le indicamos en el primer argumento el modulo max7219 que vamos a trabajar que en este caso solo es uno y false para prenderlo; con setIntensity indicamos el brillo del modulo, le podemos pasar un valor numérico de 0 a 10, siendo 10 el máximo brillo y por ultimo clearDisplay limpiamos el display para que no muestre ningún numero.
  4. Creamos la función displayNumber que se encargara de descomponer el valor numérico que queremos visualizar para poder enviarlo a la función setDigit, lo que hacemos es obtener es el numero que queremos visualizar y comenzar a obtener cada dígito para mostrarlo en su posición correspondiente.
  5. Por ultimo llamamos la función displayNumber y con random generamos números aleatorios de 0 a 9999 para probar el display.

Referencias

[1] arduinolearning http://arduinolearning.com/code/arduino-max7219-7-segment-display-module-example.php, Consultado Agosto 2020


Comentario

Debe aceptar antes de enviar
fermincol
fermincol

20 April 2021

Cordial saludo Perfecta explicación gracias por compartir de esta forma sus conocimientos una inquietud como realizar un reloj tiempo real con este display y el 7219 gracias