Paso 2: Programación
Teoría de la...
La pantalla es un poco estúpido, que funciona como un oldscool televisor, los píxeles de 32 de una línea se almacenan en cambio de registros, por lo U conducir en datos en serie para una línea, seleccione la línea con las conexiones de ABCD, estas son decodificadas en 1 de 16 líneas y tirando OE hacia abajo, la línea se enciende, luego U apagar la línea , serializar datos para la línea siguiente en, Active línea siguiente y así sucesivamente...
El ciclismo a través de las líneas necesita un poco de sincronización inteligente de lo contrario, parpadeo o consumir mucho tiempo de CPU. Por eso he cambiado el código para utilizar la interrupción del temporizador y el SPI.
La interrupción (desbordamiento de Timer1) asegura que la pantalla refresca no importa qué está ocupado con su programa y el SPI es a mejor manera de serializar los datos de un puerto, usando, es mucho más rápida luego alternar un pin 8 veces hacia arriba y hacia abajo ya que utiliza hardware (el SPI - SerialPeripheralInterface) que hace por nosotros y requiere solamente una operación de escritura por byte - Pin alternar requiere cerca de 24 llamadas digitalWrite por byte , poco desplazamiento y y y...
El botón es tan simple como en ciertos ejemplos de Arduino. Nada de lujo aquí. El botón se utiliza para activar el temporizador y a omitir las iniciales de las personas a la siguiente. En realidad utilicé un sensor de proximidad, sólo porque es más fresco cuando un botón se puede interactuar con un guiño... uuuhhhh tan coool.
El programa mostrará las iniciales de la persona que está hablando y un temporizador de cuenta regresiva, comienza a parpadear cuando está cerca de cero. En la parte superior de la fuente de listado le puede establecer el número de personas, sus iniciales y el tiempo para la reunión.
Se adjunta el código fuente...
- DailyStandupTimer.zip contiene el bosquejo, generalmente va a documentos/Arduino
- TimerAndLED_library.zip son las librerias parchadas usadas. suelo ir a documentos/Arduino/bibliotecas (reiniciar la interfaz Arduino después de copiar librerías allí)
Posibles mejoras:
- Modo de reposo verdadero cuando off - es donde algunos doc por que en la web.
- Gráfica más agradable, requeriría más pintura de la fuente del avance, por el momento la fuente simplemente copiado byte sabia, por eso sólo puede ser dibujado en posición 0,8,16,24. Para mayor flexibilidad, se debe cambiar de puesto a una posición de un píxel y Unidos en el búfer de pantalla.