En este tutorial vamos a diseñar una pantalla de desplazamiento de matriz de LED de 8x8 utilizando Arduino Uno, que mostrará alfabetos de desplazamiento.
8x8 LED Matrix contiene 64 LED (diodos emisores de luz) que están dispuestos en forma de matriz, de ahí el nombre es LED matrix. Vamos a hacer esta matriz soldando estos 64 LED en la placa de circuito impreso o PCB DOT. Los LED pueden ser de cualquier color, elija los que estén disponibles con usted. Luego escribiremos un programa para que Arduino controle esta matriz de 64 LEDs. El UNO, según el programa, enciende los LED apropiados para mostrar los caracteres en forma de desplazamiento.
Componentes requeridos:
- Arduino Uno
- 64 LEDs
- Perfboard con otras herramientas de soldadura
- Resistencia de 1KΩ (8 piezas)
- Fuente de alimentación (5v)
Circuito y explicación de trabajo:
Hay 64 LED dispuestos en forma de matriz. Entonces tenemos 8 columnas y 8 filas. Sobre esas filas y columnas, se juntan todos los terminales positivos de una fila. 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 figura, 8 LED de D57 a D64 tienen un terminal positivo común y se indican con 'POSITIVO0'. Ahora, si queremos encender uno o todos los LED en la primera FILA de la matriz, entonces debemos encender el PIN0 de la matriz de LED. Del mismo modo, si queremos encender cualquier LED (o todos) en cualquier FILA, entonces necesitamos alimentar el Pin de terminal positivo común correspondiente de esa fila respectiva.
Esto aún no ha terminado y simplemente dejar las FILAS MATRIZ con suministro positivo no dará nada. Necesitamos conectar a tierra los LED negativos para que brillen. Entonces, en la matriz de LED de 8x8, todos los terminales negativos de los LED en cualquier columna se unen para formar ocho terminales negativos comunes, al igual que todos los terminales negativos en la primera columna están conectados al PIN-A1 (NEGATIVO7). Esto se muestra en la siguiente figura:
Uno debe prestar atención a estos pines mientras suelda los LED en Perfboard.
Ahora, si necesitamos conectar a tierra cualquier LED en la primera columna, conectaremos a tierra el PIN-A1 (NEGATIVO7) de la MATRIZ, y conectará a tierra todos los LED de la primera columna. El mismo proceso se aplica a las otras siete columnas negativas comunes.
Desde ahora sabes cómo funciona el positivo común y el negativo común. Vamos a juntarlos para ver cómo funcionan juntos y el circuito final para la pantalla de matriz LED de desplazamiento 8x8 se verá así:
Conducción de matriz LED 8x8 mediante multiplexación:
Ahora digamos que queremos ENCENDER LED57 y luego necesitamos encender el PIN0 de UNO y conectar a tierra el PIN-8 de UNO. Ahora para encender tanto LED57 como LED50, necesitamos encender PIN0, PIN1 y conectar a tierra el PIN8, PIN9. Pero hacerlo no solo encenderá D57, D50 sino también D49, D58. Para evitar eso usamos una técnica llamada Multiplexación. Ya hemos discutido esta Técnica Multiplex en Matriz de LED 8x8 en detalle; lea ese artículo para obtener una explicación detallada. Aquí estamos explicando brevemente la multiplexación.
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, este no es el caso y el LED se encenderá y apagará constantemente. Esta técnica se llama multiplexación.
Digamos, por ejemplo, que solo queremos encender LED57 y LED50 sin encender D49 y D58. El truco es que primero proporcionaremos energía a la primera fila para encender el LED57 y esperar 1mSEC, y luego lo apagaremos. Luego proporcionaremos energía a la segunda fila para encender el LED50 y esperar 1mSEC y luego lo apagaremos. El ciclo va continuamente con alta frecuencia y el LED57 y el LED50 se encenderán y apagarán rápidamente y ambos LED parecerán estar continuamente ENCENDIDOS a nuestro ojo. Significa que solo estamos proporcionando energía a una fila a la vez, eliminando las posibilidades de encender otros LED en otras filas. Usaremos esta técnica para mostrar todos los personajes.
También hay una biblioteca llamada LedControlMS.h para encargarse de toda esta complejidad de multiplexación, donde solo necesita ingresar el carácter o número que desea imprimir en la matriz LED, consulte este proyecto Arduino LED matrix con MAX7219 para más detalles.
Explicación de programación:
En nuestro Código, hemos escrito un valor decimal para cada carácter y programamos estos valores en el Arduino. El programa ha escrito para cambiar estos valores a la siguiente fila cada 0.2 segundos, esto se verá como un desplazamiento de caracteres hacia arriba, es muy simple.
Para cambiar los caracteres que se mostrarán, simplemente reemplace el valor en la matriz char ALPHA de acuerdo con los valores de caracteres que se indican a continuación, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Por ejemplo, si desea mostrar DAD en la matriz LED, primero reemplace los valores de los caracteres en la matriz de caracteres ALPHA colocando valores para los caracteres D, A y D de la lista anterior:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Los valores totales ahora son 5 * 10 = 50 valores, entonces
Reemplazar, por (int x = 0; x <142; x ++) // 150-8 (para detener el desbordamiento) {…….. Con, por (int x = 0; x <42; x ++) // 50-8 (para detener el desbordamiento) {……..
Entonces solo necesitas cambiar el número.
Con esto, ha realizado la programación y ahora puede desplazarse por cualquier texto en la matriz de LED de 8x8, verifique el código completo a continuación con un video de demostración.