Matriz de LEDs con ATmega8

 MATRIZ DE LEDImg_37_1

Matriz – de leds  -Gracias al bajo costo de los leds “comunes” hoy en día es posible la realización de carteles que presentan mensajes con letras representadas por leds que se conectan matricialmente(matriz de leds) en una configuración de filas y columnas llamadas matriz de leds. Cada uno de estos leds forman lo que en una pantalla seria lo que llamaríamos pixel. Obviamente que para lograr esto y ahorrarse de una cantidad importante de circuitos integrados es imprescindible la utilización de un microcontrolador. El uso de un microcontrolador por supuesto que implica no solo tener conocimientos de electrónica digital sino también de programación.

¿Cómo funciona una matriz de leds?

La matriz está compuesta por una serie de filas y columnas la intersección entre ambas contiene un led, para que este encienda, tiene que recibir simultáneamente un 0 en la fila y un 1 en la columna, cuando se da esta condición la electrónica del circuito se encarga de encender el led correspondiente.

Aplicaciones

Generalmente la matriz de leds las vemos hoy en día como herramientas para llevar mensajes o señales ya sea desde nombres, común mente también es utilizada para mercadotecnia, como también para señales de tránsito.

 

Para este tutorial la lista de materiales que utilizaremos son:

  • Microcontrolador atmega 8 .
  • Matriz de leds 8*8.
  • Protoboard .
  • Cables dupont(alrededor de 20 cables aprox.)

podemos encontrar la lista  en la pagina :

modulo de leds

cables dupont

microcontrolador

protoboard

Software que utilizaremos:

  • AVR studio 5.1(si tienes alguna otra versión puedes utilizarla)
  • Proteus 8(cualquier versión nos funciona de la misma manera, no es necesario que tengamos precisamente la versión 8)
  • CodeGraphics (Es una herramienta muy sencilla que nos sirve para generar las matrices de leds, la utilizaremos para ahorrarnos tiempo)

 

DIAGRAMA INTERNO DE LA MATRIZ.

matrix-diagram

2.diagrama interno del componente.

 

Como se muestra en la imagen las columnas están formadas por el pin 13,3,4,10,6,11,15,16 y las filas están formadas por los pines 9,14,8,12,1,7,2,5.

Es importante no confundir el número de la fila o de la columna con los pines ya que esto nos puede generar problemas al momento de conectar la matriz de leds con el microcontrolador.

Una vez que tengamos identificados los pines de las filas y las columnas abrimos el software para generar los códigos de la matriz de leds con el programa codeGraphics.

Una vez que abrimos el programa nos arrojara una pantalla inicial como esta:

 

cd1

3.inicio del programa para genera los codigos de cada letra.

En nuestro caso seleccionamos el tamaño de pixeles que queremos que sea nuestro código .

Escogemos en el radiobutton la opción de 8*8

Una vez hecho esto podemos empezar a marcar las casillas para generar el código (ya sea letra o figura)

cd2

4.elaboración de cada letra .

Repetimos esto hasta completar todas las letras que deseamos que se nos visualice en la matriz.

 

Iniciamos el código en avr studio.


#include avr/io
#define F_CPU 1000000
#include util/delay
int main(void)
{
DDRD = 0xFF;//INICIALIZAMOS LOS PUERTOS COMO SALIDAS
DDRB = 0xFF;
DDRC = 0xFF;

char PORT[8] = {1,2,4,8,16,32,64,128};//valores de pines del  PORTD

//codigo de NOMBRE en hexadecimal
static int LETRAS[6][8]={{195, 195, 195, 255, 255, 195, 195, 195},
{255, 255, 192, 248, 248, 192, 255, 255},
{255, 255, 24, 24, 24, 24, 24, 24},
{254, 255, 195, 195, 255, 254, 192, 192},
{254, 255, 199, 199, 254, 252, 204, 198},
{60, 126, 195, 195, 195, 195, 126, 60},
};

char LET[]={0,1,2,3,4,5};///el orden de como se ejecutara cada linea de arreglos
uint8_t l =0;
while(1)
{
for (int m=0;m<sizeof LET;m++)
{
l = LET[m];
for (int n=0;n<100;n++)//EJECUTAR 200 VECES
{
for (int j=0;j<4;j++)
{
PORTB = PORT[j];// FILA
PORTD = ~LETRAS[l][j];//MOSTRAR LA MITAD DEL CARACTER  (COLUMNA)
_delay_us(500);

}
PORTB=0x00;//LIMPIAR DESPUES DE MOSTRAR
for (int k=0;k<4;k++)
{
PORTC = PORT[k];// FILA
PORTD = LETRAS[l][k+4];//MOSTRAR LA OTRA MITAD (COLUMNA)
_delay_us(500);
}
PORTC=0x00;//LIMPIAR DESPUES DE MOSTRAR .
}
}
_delay_ms(220);
_delay_ms(220);
_delay_ms(220);
_delay_ms(220);
_delay_ms(220);

}
}

 

Una vez terminado el código en avr studio , sigue la conexión  y para ello les recomiendo primero simularlo en una software como es  proteus nos sirve para realizar distintos circuitos electrónicos  Y  visualizar algo similar a lo que sucederá en el circuito físico en algunos casos como por ejemplo en este, el circuito en proteus  va estar conectado distinto que en el circuito ,físico esto se debe que en el software no importa que numero de pin tenga las columnas y las filas  solo lo simula conforme al código de programación.

FG

5.conexion en proteus.

Cuando tengamos el circuito conectado en el software de simulación cargamos el atmega ,

Le damos doble click  nos abrirá una ventana .

proteus 3

simulacion en proteus

Abrimos el icono de la carpeta donde dice program file.

Nos abrirá el buscador . buscamos en la carpeta donde guardamos nuestro proyecto y buscamos el archivo  .hex  y lo seleccionamosproteus 4

6.Una vez hecho esto le damos a el icono de simular

simu 1

7.vizualizacion de la letra H.

simu 2

8.vizualizacion de la letra E.

simu 3

9.vizualizacion de la letra T.

simu 4

10.vizualizacion de la letra P.

simu 5

11.vizualizacion de la letra R.

simu 6

12.vizualizacion de la letra O.

Después de haber simulado y aparentemente sin ningún error.

ahora nos enfocamos en la conexión en físico

para ello les dejare los pines que van conectados al microcontrolador como ya les había mencionado

la conexión en la simulación y la conexión en físico serán distinta.

Utilizaremos los tres puertos del microcontrolador atmega 8.

 lista de conexión a cada pin :

PORTD, PIN0 ——————PIN13 DE MATRIZ LEDS

PORTD, PIN1 ——————PIN03 DE MATRIZ LEDS

PORTD, PIN2 ——————PIN04 DE MATRIZ LEDS

PORTD, PIN3 ——————PIN10 DE MATRIZ LEDS

PORTD, PIN4 ——————PIN06 DE MATRIZ LEDS

PORTD, PIN5 ——————PIN11 DE MATRIZ LEDS

PORTD, PIN6 ——————PIN15 DE MATRIZ LEDS

PORTD, PIN7 ——————PIN16 DE MATRIZ LEDS

PORTB, PIN0 ——————PIN09 DE MATRIZ LEDS

PORTB, PIN1 ——————PIN14 DE MATRIZ LEDS

PORTB, PIN2 ——————PIN08 DE MATRIZ LEDS

PORTB, PIN3 ——————PIN12 DE MATRIZ LEDS

PORTC, PIN0 ——————PIN01 DE MATRIZ LEDS

PORTC, PIN1 ——————PIN07 DE MATRIZ LEDS

PORTC, PIN2 ——————PIN02 DE MATRIZ LEDS

PORTC, PIN3 ——————PIN05 DE MATRIZ LEDS

 

Nota: les recomiendo que busquen el datasheet del componente, Para estar más seguros de que pin estamos utilizando

 

pine

13.revision de los pines del 1 al 8.

pine2

14.revision de los pines del 9 al 16

 

Las imagen muestra la numeración de los pines

Es importante saber identificarlos , para ello tenemos 2 opciones,

La primera es leer el datasheet y la segunda identificar donde tiene el numero de componente etc .

Ya una vez hecho esto como se muestra en la imagen el pin numero 1 es el primero viéndolo desde el frente  a continuación en la siguiente imagen verán el componente de frente .

matpin

15.vista superior del componente.

No todos los componentes son iguales ya que hay distintas empresas que se encargan de fabricarlos por lo tanto les recomiendo que busca la hoja de datos con el numero de componente que este se encuentra por uno de los lados como se muestra en las imágenes .

matriz de leds

16.visualizacion de las letras en fisico.

Después de cargar el microcontrolador atmega hacemos el respectivo cableado el cual  ya les había dejado los pines de conexión y como se muestra en las imágenes, el código que decodificamos se muestra en físico.

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.