Paso 2: El código
Usé 6 estructuras diferentes para el LED de control. Si bien tengo 8 picaduras en el techo que decidí seguir con las capacidades nativas de PWM de la ATMega328. Considerar el uso de la biblioteca de SoftPWM, pero decidió dejar para proyectos posteriores.
Utilizar un canal de serie para algunos comandos básicos y mostrar resultados. La versión final tiene unas pinzas en el tablero, pero no están conectadas a nada en este momento.
Por lo tanto un código de caminar a través de
La primera sección define constantes y variables, así como las 6 estructuras para controlar las cadenas de LED.
La sección de configuración abre el canal de serie e inicializa las estructuras definir las cadenas de LED
El bucle principal:
Comprueba el canal serial de entrada;
Si el modo de operación es NORMAL
Establece cada uno de los canales de LED para un brillo basado en tiempo, cada uno los ciclos más brillantes y dimmer a diferentes ritmos, que crea un efecto de 'centelleo' razonablemente al azar.
Si el modo de funcionamiento en ON, todos los LED de se establecen en
Si el modo de funcionamiento está desactivada, el LED está apagado.
Los procedimientos de finales administran el canal serie, buscando todas las entradas, cambiando el modo de funcionamiento si es necesario y mostrar el estado de algunas variables.
Todo el código sobre el canal de serie podría ser quitado de la interfaz en serie no se utiliza cuando está en uso, pero lo dejé en caso de que quería cambiar las cosas en el futuro.