Paso 6: Código Arduino: secuencias
El código de Arduino que se puede descargar aquí está configurado para un Adafruit TrinketPro 5v. Usted puede utilizar cualquier microcontrolador Arduino, elegí el Adafruit uno porque es pequeño y barato. Traté de anotar el código para que un principiante como yo pudiera ver lo que hacen las diferentes líneas de código. Estos son algunos aspectos destacados para un completo principiante:
Secuencias: La numitron y los LEDs están controlados por secuencias a los registros de cambio. Hay 9 LEDs y 7 filamentos de numitron = 16 cosas para iluminar. Cambio de registro 1 asas 8 de los LEDs. Registro de desplazamiento 2 maneja el último LED y la numitron. Los bits se cargan en los registros de cambio en 2 grupos de 8 (un sistema para cada registro de desplazamiento) y luego los 16 bits de información son enviados a los LEDs y el numitron.
La secuencia de bytes 1 va para el 2 º registro de desplazamiento que es la numitron. En realidad, entra en el primer registro de cambio pero luego obtiene 'desplazado' a la segunda cuando llega el 2 º conjunto de 8 bytes.
Suponga que usted desea encender todos los 9 LEDs y el número 9 en la numitron. En este caso, todos los bytes en el primer registro de desplazamiento tienen que estar 'en' y todos ellos en el segundo tienen que estar en excepto la última de ellas (véase nuevamente el esquema de la numitron si esto es confuso para usted). Así, tenemos dos juegos de 8 bits, que podemos representar así:
B11111111 y B11111110 (donde el B11111110 se envía primero pero extremos para arriba en el 2 º registro de desplazamiento)
La frase anterior deberá encenderse casi todo y es lo más impuesto que estamos pidiendo el sistema para hacer - en ~ 20 miliamperios por LED o de filamento, pedimos el microcontrolador para salida 15 x 20 = 300 miliamperios. No mucho, pero es 2 x lo que el TrinketPro está diseñado para. Por lo tanto, mi código hace hincapié en el tablero del microcontrolador para 600 milisegundos; funciona muy bien, pero tal vez se quemará sí mismo más rápidamente que normal, no sé todavía.
A la luz de 8 LED ' s y el número 8 en el numitron hacemos esto:
B1111111 y B01111111
porque queremos que los primeros 8 LEDs en pero no la 9 (que es representado por el 0 que viene después de la segunda B anterior). El resto de la secuencia es así:
7: B01111111 y B00001110
6: B00111111 y B11111100
5: B00011111 y B01111100
4: B00001111 y B00110110
3: B00000111 y B01101110
2: B00000011 y B11101010
1: B00000001 y B00000110
0: B00000000 y B11011110
Comprobar el código para ver las cosas de arriba como adruino código. La rompí en dos secuencias separadas. Hay un total de 4 secuencias del código; dos que se utilizan durante el tiempo de 'esperar el botón para empujar' y 2 que se utilizan para la cuenta regresiva de 9 a 0 durante el tiempo de medición. Por cierto, hay otras formas de código esto, simplemente no los conozco todavía.