Paso 4: Notas sobre el algoritmo
Cada columna de la matriz de LED indica un dígito. De separación. las horas, minutos y segundos de dos dígitos únicos es trivial...
- Aislar el primer dígito entero-dividiendo las horas 10 (sin resto).
- Obtener a la segunda división módulo (el resto sólo) 10.
Nos iluminará el LED de la columna para que coincida con la representación binaria de la cifra correspondiente. Para ello, utilizamos la función setRow() de la ledcontrol.h biblioteca que requiere tres argumentos:
- Número de la matriz (la biblioteca maneja hasta 8 por ejemplo). La cuenta comienza en 0, y que es el número utilizado en este bosquejo, pues tenemos una única matriz.
- Número de columna (contando desde la izquierda, numerados 0-7). Como se utiliza, columnas 0 y 1 corresponden a los dígitos de la hora primeros y segundo, respectivamente.
- Bytes que describe, arriba a abajo, los LEDs a encender (1 = on).
Los dígitos de hora/minuto/segundo solos se devuelven como valores decimales (es decir, 0-9). Se debe convertir para ("molde", en el lenguaje de programación) los valores de bytes requerido (binario) utilizando la función byte().
SetRow(), en mi matriz, llena de LEDs en consonancia con los pines de entrada/salida y el bit menos significativo ("abajo") está más cercano a los pines de salida, yo lo llamaría montado boca abajo. (Probar con su propia matriz de LED). Tenga en cuenta que tendría que invertir el orden de matemáticas bit a bit para montar el LED matriz de lado derecho para arriba y utilice la función SetColumn si usted quiere montar lateralmente.