Paso 14: Funcionamiento (teoría)
El cerebro del dispositivo se embala en un microcontrolador ATTiny2313. Este chip es parte de la misma familia de dispositivos que el ATMega328 utilizado en la plataforma arduino. Como él es el primo más grande, el ATTiny2313 tiene pernos que pueden utilizarse como entrada para leer cosas como pulsar un botón o control cosas como LEDs de salida. Una pequeña cantidad de memoria no volátil almacena el código que ejecutará automáticamente cada vez que el chip está encendido.
La diferencia es que el AtTiny tiene menos pines y memoria que el AtMega328.
Un AtTiny es fácilmente capaz de conducir una pantalla de siete segmentos LED, pero hay 8 en este proyecto, dos dígitos para cada posición del jugador. Ya que cada pantalla tiene 8 LED (7 segmentos más un punto decimal) que significa que debe ser capaz de controlar por separado 64 diodos LED! Es posible con técnicas avanzadas, pero el cableado es complicado y requiere un número de transistores extras y resistencias. Estas técnicas también requieren el microcontrolador que pasan la mayor parte de es hora de actualizar la pantalla, les parpadea rápidamente enciende y apaga más rápido que el ojo humano puede ver.
Esto es donde entra el Max7219. Este chip está diseñado para hacer todo el trabajo de manejar hasta 64 LEDs que es exactamente el número necesitado de este circuito. El Max7219 tiene un conjunto de 8 pines que se conectan a cada uno de los segmentos de la muestra, y otro conjunto para aplicar energía a cada pantalla por separado. Así, puede establecer (por ejemplo) todos los leds que corresponden con el número 8, encender en pantalla 1 brevemente y luego paso a la creación de los LEDs para la visualización de 2. Si cambió los LED para la exhibición una 2 y rápidamente lo enciende y se apaga, alternando con pantalla 1, "28" se mostrará. Lo hace para todos 8 muestra (2 X 4 jugadores) tan rápido que parece que son todos al mismo tiempo.
El Max7219 realiza un seguimiento de qué número va en que pantalla y sigue repitiendo ese ciclo hasta que recibe una orden del micro-controlador para cambiar uno de ellos. El ATTiny2313 está conectado por 3 líneas y puede enviar comandos a través de los datos en serie como "cambiar el dígito 4 para mostrar un 'E', cambiar número 3 para mostrar una 'L'".
Con todo ese trabajo de control de los LEDs que se descargan para el Max7219, todo el ATtiny2313 tiene que hacer es ver de botones a presionar y enviar comandos al Max7219 cada vez que necesita cambiar lo que se muestra. En este caso, es realmente un poco dominado por lo que necesita hacer el ATtiny2313.
Eso es toda la teoría aburrida fuera del camino, al ver mis pensamientos y reflexiones en este proyecto.