En esta sesión vamos a diseñar una pantalla LED 8x8 con matriz LED 8x8 y microcontrolador ATmega8, que puede mostrar alfabetos o nombres. A continuación se muestra una matriz de LED típica de 8x8:
Una matriz de LED de 8x8 contiene 64 LED (diodos emisores de luz) que están dispuestos en forma de matriz, de ahí el nombre de matriz de LED. Estas matrices se pueden hacer conectando 64 LED; sin embargo, ese proceso lleva mucho tiempo. Ahora un día están disponibles en formas compactas como se muestra en la figura. Estos módulos compactos están disponibles en diferentes tamaños y muchos colores. Uno puede elegirlos según su conveniencia.
El costo del módulo es el mismo que el costo de 64 LED, por lo que para un aficionado es más fácil de trabajar. La configuración del PIN del módulo es como se muestra en la figura. Los PIN deben tener el número exacto que se muestra en la imagen para evitar errores. Discutiremos la configuración del circuito interno del módulo en detalle en la descripción.
Componentes
Hardware: ATMEGA8, fuente de alimentación (5v), PROGRAMADOR AVR-ISP, condensador de 100 uF (conectado a través de la fuente de alimentación), resistencia de 1KΩ (8 piezas).
Software: Atmel studio 6.1, progisp o flash magic.
Diagrama de circuito y funcionamiento
Las conexiones que se realizan entre ATMEGA8 y el módulo de matriz LED se muestran en la siguiente figura.
PORTD, PIN0 ------------------ PIN13 del módulo LED
PORTD, PIN1 ------------------ PIN03 del módulo LED
PORTD, PIN2 ------------------ PIN04 del módulo LED
PORTD, PIN3 ------------------ PIN10 del módulo LED
PORTD, PIN4 ------------------ PIN06 del módulo LED
PORTD, PIN5 ------------------ PIN11 del módulo LED
PORTD, PIN6 ------------------ PIN15 del módulo LED
PORTD, PIN7 ------------------ PIN16 del módulo LED
PORTB, PIN0 ------------------ PIN09 del módulo LED
PORTB, PIN1 ------------------ PIN14 del módulo LED
PORTB, PIN2 ------------------ PIN08 del módulo LED
PORTB, PIN3 ------------------ PIN12 del módulo LED
PORTC, PIN0 ------------------ PIN01 del módulo LED
PORTC, PIN1 ------------------ PIN07 del módulo LED
PORTC, PIN2 ------------------ PIN02 del módulo LED
PORTC, PIN3 ------------------ PIN05 del módulo LED
El diagrama de circuito de la pantalla de matriz LED de 8x8 se muestra en la siguiente figura.
Hay 64 LED dispuestos en forma de matriz. Entonces tenemos 8 columnas y 8 filas como se muestra en la figura. Sobre esas filas y columnas, todas las terminales positivas de una fila se juntan. Para cada fila, hay un terminal positivo común para los 8 LED de esa fila. Se muestra en la siguiente figura,
Entonces, para 8 filas tenemos 8 terminales positivos comunes, considere la primera fila. Como se ve en la imagen, los LED de D1 a D8 tienen un terminal positivo común y se sacan del MÓDULO LED como PIN9.
Debe verse que todos los aspectos positivos comunes de las filas no se extraen del MÓDULO LED de manera ordenada. Existe una gran irregularidad en los terminales comunes en todos los casos. Hay que tener esto en cuenta al conectar el terminal.
Digamos que si queremos que uno o todos los LED de la primera FILA de la matriz estén ENCENDIDOS, entonces deberíamos encender el PIN9 del MÓDULO DE MATRIZ DE LED, no el PIN0.
Digamos que si queremos que uno o todos los LED de la tercera FILA de la matriz estén ENCENDIDOS, entonces deberíamos encender el PIN8 del MÓDULO DE MATRIZ DE LED, no el PIN2.
Entonces, siempre que queramos que uno o todos los LED en una FILA estén ENCENDIDOS, se debe alimentar el pin correspondiente del MÓDULO LED.
Esto aún no ha terminado con solo dejar el poder ROWS no rinde nada. Necesitamos conectar a tierra el otro extremo. Lo discutiremos a continuación.
Ahora, para este caso, ignoramos las filas positivas comunes y nos enfocamos en columnas negativas comunes.
Entonces, en ese módulo, todos los terminales negativos de la primera columna se unen al PIN13. Esto se muestra en la siguiente figura.
Aquí también hay una irregularidad en el PIN OUTAGE del módulo. El negativo común de los LED de la primera columna se muestra en el PIN13. El negativo común de los LED de la segunda columna se muestra en el PIN3.
Uno debe prestar atención a los pines mientras se conecta. Ahora, si alguno o todos los LED de la primera columna deben conectarse a tierra, el PIN13 del MÓDULO MATRIZ debe conectarse a tierra. De esta manera se dirige a las otras siete columnas negativas comunes. Cuando se juntan ambos casos, nos encontramos con un circuito como se muestra a continuación,
El circuito de arriba es el diagrama interno completo del MÓDULO LED. Digamos que si queremos encender el LED D10 en la matriz, necesitamos encender el PIN14 del módulo y conectar a tierra el PIN3 en el módulo. Con esto, el D10 se encenderá. Esto se muestra en la siguiente figura. Primero debe verificar que MATRIX sepa todo en orden.
Digamos que si queremos encender D1, necesitamos encender el PIN9 de la matriz y conectar a tierra el PIN13. Con ese LED D1 brillará. La dirección actual para este caso se muestra en la siguiente figura.
Ahora, para la parte complicada, considere que queremos encender tanto D1 como D10 a la vez. Entonces alimentamos tanto PIN9, PIN14 y conectamos a tierra tanto PIN13, PIN3. Con eso tendremos D2 y D9 ON junto con D1 y D10. Es porque comparten terminales comunes. Entonces, si queremos encender los LED a lo largo de la diagonal, nos veremos obligados a ENCENDER todos los LED a lo largo del camino. Esto se muestra en la siguiente figura.
Entonces, para eliminar este problema, encenderemos solo un LED a la vez. Digamos que en t = 0m SEC, el LED D1 está encendido. En t = 1m SEC, el LED D1 se apaga y el LED D2 se enciende. Nuevamente en t = 2 m SEC, el LED D2 se apaga y el LED D1 se enciende. Esto continúa.
Ahora el truco es que el ojo humano no puede capturar una frecuencia superior a 30 HZ. Eso es si un LED se enciende y apaga continuamente a una velocidad de 30 HZ o más. El ojo ve el LED continuamente encendido. Sin embargo, éste no es el caso. El LED se encenderá y apagará constantemente. Esta técnica se llama multiplexación.
Al usar la multiplexación, giraremos solo una fila a la vez, y habrá un ciclo alrededor de las 8 filas continuamente. Esto se visualiza como una matriz completamente encendida a simple vista.
Ahora digamos que queremos mostrar "A" en la matriz.
Como se dijo, activaremos una fila en un instante, En t = 0m SEC, PIN09 se establece en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 1m SEC, PIN14 está configurado en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 2m SEC, PIN08 se establece en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 3m SEC, PIN12 se establece en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 4m SEC, PIN01 está configurado en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 5m SEC, PIN07 está configurado en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 6m SEC, PIN02 está configurado en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
En t = 7m SEC, PIN05 se establece en ALTO (otros pines de FILA están BAJOS en este momento) en este momento, PIN13, PIN3, PIN15, PIN16 están conectados a tierra (otros pines de COLUMNA están ALTOS en este momento)
A esta velocidad, la pantalla se verá mostrando continuamente el carácter "A". Se muestra en la figura.
Así es como se muestran todos los caracteres en pantalla. Después de conectar el circuito de manera adecuada, como se muestra en el diagrama del circuito. Podemos dar directamente al controlador instrucciones para realizar la multiplexación de manera ordenada para que se muestre el nombre.