Paso 3: Programación - el boceto reloj
Empecé con el bosquejo de código abierto DS1302 RTC por "Krodal" como este ya había codificado la interfaz entre Arduino y ese módulo. Hay mucho en el sketch de ejemplo y es un trabajo maravilloso, un gran muchos agradecimiento a Krodal por esa fuente.
En la parte superior la fuente de Krodal, he añadido código para habilitar la matriz 8 x 8 matriz de LED y botón, pero también tuve que idear una manera de leer y mostrar los datos de tiempo con formato BCD como vectores de la matriz.
Mi vida hizo un poco más fácil la decisión de que el reloj se preocupan por horas, minutos y AM/PM sólo Estados. Yo no iba a atención sobre años bisiestos u hora de verano.
La función de displayTime obtiene las horas y minutos y luego, a través de una serie de instrucciones case , convierte el tiempo en un mapa de vectores de la matriz.
La función minuteString se utiliza la función displayTime para perfeccionar la visualización del tiempo de minutos.
Se utiliza la función plusTime para incrementar horas y minutos y alternar entre AM y PM.
Hay una función de minusTime a disminuir horas y minutos y alternar entre AM y PM.
Por último, he añadido un montón de gestión del tiempo y manejo del botón a la estructura de bucle .
Estoy usando 4 botones en el reloj de la palabra:
- Botón A - incrementos de horas
- Botón B - minutos de incrementos
- Botón C - alterna AM/PM
- Botón D - incrementa el brillo del LED
En todos los casos, el incremento es una estructura de bucle que vuelve a 0 cuando el valor es el valor máximo (HH = 0 - 12, m = 0 - 59, brillo = 0 - 16).