Hoy día encontramos matrices LED en todos lados, desde un simple monitor hasta la pantalla más grande que puedas encontrar en un concierto, pasando por las de nuestros smartphones.

led-screen

Las matrices LED están formadas por cientos de LEDs colocados a modo de cuadrícula y ordenados por filas y columnas. Al estar ordenados, podemos realizar el control de todos los led de una forma eficiente y sencilla y para hacerlo necesitaremos un microcontrolador y sus puertos digitales. ¿Pero cuantos? La respuesta depende de varios factores, pero lo podemos calcular con la siguiente fórmula:

 

Número puertos = ((Filas + Columnas) x Número de colores en el LED)

 

En el caso de que usemos led de un solo color —-> Número de colores en el LED es 1.
En el caso de que usemos led de dos colores —-> Número de colores en el LED es 2.
En el caso de que usemos led RGB —-> Número de colores en el LED es 3.

Puede que a alguno le surja la siguiente pregunta ¿Qué tipo de pin digital necesito? La pregunta es sencilla, depende del tipo de led y lo que quieras hacer con el:

  1. Si solo quieres encender/apagar el led, usa puertos digitales normales.
  2. Si quieres variar la intensidad con la que se enciende cada LED, usa puertos PWM para las columnas y normales para las filas

 

Para montar una matriz tendremos que colocar los led formando filas y columnas, no importa si es un cuadrado, un rectángulo, un círculo, etc. lo único que importa es que estén formando filas y columnas (os aconsejo que hagáis una plantilla sobre la que coloquéis los LED en contrachapado o cartón y taladréis donde vaya cada LED para colocarlo). Una vez los hayamos colocado de la forma que queramos, procederemos a unir entre si los ánodos de todos los LEDs de la misma columna y soldemos a ellos un cable, de esta forma tendremos un cable por cada columna, y lo mismo haremos con las filas, uniremos entre si los cátodos de todos los LEDs de las misma fila, de forma que tengamos un cable por cada fila.


Esquema Matriz 8x8
 

El siguiente paso será conectar nuestra matriz a los pines del microcontrolador, en el ejemplo 5×5 del vídeo las columnas están conectadas del pin 2 al 6 y las filas del 7 al 11.

El procedimiento para dibujar con la matriz será:

  1. Apagar toda la matriz (polarizando en inversa, columnas a masa y filas a alimentación)
  2. Activar la fila en la que vamos a dibujar, conectando su pin a masa.
  3. Encender los pines de las columnas donde están los LED que queremos encender de esa fila.

Este proceso lo repetiremos para cada una de las filas, una por una. Si el cambio entre filas lo hacemos en menos de 2 mS el ojo humano no será capaz de ver que realmente las filas se están encendiendo y apagando, sino que dará la sensación de que todas están encendidas a la vez.


Dibujo de la letra W en matriz 5x7

El código:

void setup() {
for(int i = 2; i <= 11; i++){
pinMode(i,OUTPUT);
}
}

void loop() {
apagar_matriz();		//apagamos la matriz
digitalWrite(7, LOW);	//activamos la fila 1 (salida 7)
led(1,1,1,1,1);			//Encendemos los 5 leds
delay(2);
apagar_matriz();		//apagamos la matriz
digitalWrite(8, LOW);	//activamos la fila 2 (salida 8)
led(1,0,0,0,0);			//Encendemos el primer led
delay(2);
apagar_matriz();		//apagamos la matriz
digitalWrite(9, LOW);	//activamos la fila 3  (salida 9)
led(1,1,1,0,0);			//Encendemos los 3 primeros leds
delay(2);
apagar_matriz();		//apagamos la matriz
digitalWrite(10, LOW);	//activamos la fila 4 (salida 10)
led(1,0,0,0,0);			//Encendemos el primer led
delay(2);
apagar_matriz();		//apagamos la matriz
digitalWrite(11, LOW);	//activamos la fila 5 (salida 11)
led(1,1,1,1,1);			//Encendemos los 5 leds
delay(2);
}

void apagar_matriz(){
for(int i = 2; i <= 6; i++){
digitalWrite(i, LOW);
}
for(int i = 7; i <= 11; i++){
digitalWrite(i, HIGH);
}
}

void led(int uno, int dos, int tres, int cuatro, int cinco){
digitalWrite(2,uno);
digitalWrite(3,dos);
digitalWrite(4,tres);
digitalWrite(5,cuatro);
digitalWrite(6,cinco);
}

Bueno electromaniacos, a continuación queda el vídeo en el que explico la matriz LED y un ejemplo con una matriz 5×5. Probablemente en un próximo tutorial hablemos sobre como usando electrónica digital podemos reducir aún más el número de pines digitales que necesitamos para controlar una matriz LED.

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es

Leave a Reply

avatar
  Suscribete  
Notificame
Cerrar menú