Paso 6: NerdClock - el Software de Arduino
Un amigo mío hizo la mayor parte de la obra de impresionante software para conseguir este reloj funciona a la perfección. Una de las mejores cosas es que hizo el código fácilmente ampliable con código que puede Agregar a sí mismo para hacer el reloj tal vez hacer cosas que quieres que haga. Limpié un poco el software para lectura más cómoda. Usted también encontrará todas las explicaciones en el código.
Puedes...
- ... ajustar manualmente la precisión del reloj cambiando timeDivider
- ... Añadir más colores para el fundido de color se descolora a través de aumento de colorLength y añadiendo colores a la matriz int colores [] [3] = {{255 - R1, 255 - G1, 255 - B1}, {255 - R2, 255 - G2, 255 - B2}, {255 - Rn, 255 - Gn, 255 - Bn}}. Por defecto se descolorará por todo el espectro del arco iris sin problemas.
- ... ajustar el tiempo que se sienta en un color completo por cambio de colorDelay
- ... ajustar la rapidez que tendrá el proceso de transición
- ... Añadir más modos de color (verde por ejemplo estático) por aumento de ledModesNum y agregar tu propio if condiciones.
Aquí está cómo funciona más o menos la rutina bucle:
- Compruebe de qué modo LED está en. ¿Conjunto potenciómetro fade o manual?
- Verifica si alguno de la época establecer botones se presiona
- Compruebe si el usuario ha decidido parar el reloj pulsando el botón correspondiente
- Compruebe si el usuario ha decidido cambiar el modo LED presionando el botón respectivo
- Compruebe si ha pasado un segundo. Si -> segundos aumento por uno -> matriz de repintado
Problemas conocidos:
Inexactitud. El reloj utiliza la función millis() para calcular el tiempo y que es inexacto. La precisión creo que depende de la fuente de reloj y varía de cristal. Mina está apagado por un minuto cada 24 horas