Paso 4: Instalar (subir) el software
Viola - tenemos un reloj!
Usted puede presionar el botón para ajustar la hora. Mantenga presionado el botón establecer rápidamente. Si se mantiene por más de 5 segundos, irá 10 veces más rápido.
Colon centro hora: minuto parpadea durante los segundos.
El software tiene algunos comentarios que ayuden a descifrarlo, pero esencialmente realiza un seguimiento de tiempo comprobando el valor de millis(), y cada vez que han pasado 1000 millis incrementos de 1 segundo. Millis() devuelve el número de milisegundos desde el inicio.
Obviamente esto no será tan preciso como con un reloj de tiempo real (RTC), pero es lo suficientemente bueno para un montón de divertidos proyectos de tiempo.
Usted notará que eliminar 1.000 del tiempo de seguimiento variable, en lugar de reiniciar a la actual millis(), esto lo ayuda a permanecer absolutamente exacta. El código que actualiza la hora tomará algún tiempo para correr, y el reloj perdería unas milisegundos cada vez que lo hacemos. De esta manera mantiene frente a la hora de salida original y la exactitud depende la exactitud de millis(), que supongo es bastante decente.
También, usando un delay() contar al siguiente segundo bloquea el chip de otras cosas, como la detección de la pulsación.
PS, por el código del botón que prestado pesadamente del ejemplo botón básico que viene con el software de Arduino. Mi uso es un poco diferente, pero debounce de la misma manera.
También he notado que diferentes dígitos tenían brillos diferentes - por ejemplo, el dígito uno tiene 2 LEDs encendidos, mientras que 8 tiene 7 LEDs - iluminación 7 LEDs al mismo tiempo lo hace un poco más dévil. Para compensar, simplemente guardo cada dígito para una cantidad fija de tiempo multiplicado por el número de segmentos en ese dígito.
¡ Disfrute!