Paso 8: Construcción de la electrónica y el código explicación
Aquí le damos el circuito completo y el código
Pongo también un 11, 1V 1000mAh Lipo batería recargable por lo que puedo poder el reloj sin cable DC externo.
Explicación del código:
Después de conectar todos los electrónicos descargando los archivos de zip zip 3 uno es el código de una las otras son las bibliotecas.
Primero tienes que poner ambas carpetas de bibliotecas para TLCs y módulo RTC en la carpeta de biblioteca de arduino lo contrario le sale error al abrir el código, o también puede descargar las bibliotecas desde la página de arduino.
El código incluye 3 carpetas:
La carpeta de SetTime con SetTime.ino: Utilice este archivo para ajustar la hora manualmente para su módulo RTC por primera vez, para esto tienes que cambiar las variables de byte en la función de setDateTime() con su hora local, luego cargar este código para el arduino y el módulo RTC almacenará su hora local, sólo tienes que hacer esto la primera vez para ajustar la hora o si se cambia la batería de su módulo RTC. El TestTimeFolder con
TestTime.ino: úsalo sólo para comprobar si el módulo RTC almacena la hora correcta, cargar este código y abra el serial monitor para comprobarlo.
La carpeta LED_Mega_Clock: con los 6 archivos, todo este 6 archivos tienen que estar en la misma carpeta, abrir sólo LED_Mega_Clock.ino y tendrás todos los 6 archivos en diferentes grifos.
- "LED_Mega_Clock Tap": aquí está la configuración de las clavijas y definición de variables globales y arreglos de discos para los registros y la función loop(). He hecho 3 funciones en la "pestaña programas" con 3 diferentes animaciones elegir uno de ellos y lo puso en la función loop.
- "Ficha RTC": aquí está la configuración de la RTC no necesita editar esta ficha pero para más información visite el sitio de arduino. Aquí hice el checkTime() de función para iniciar la transición entre el módulo RTC y arduino. Este uso antes de cada animación y también no olvide leer la hora antes de la animación y convertir este datos codificados binarios a decimal normal con la función de bcdToDec() de bytes que hice. Por ejemplo: int = segundo bcdToDec(Wire.read()); "RGB_LED_Strip Tap": aquí hice 2 funciones una que cambian todo el espectro de color de rojo a magenta muy 20 min y que cambian de cada color cada segundo uso salidas PWM de tu arduino para hacerlo. Usted puede hacer sus propias funciones.
- "blue_LEDs grifo": aquí he hecho 3 funciones utilizando multiplexación para establecer la matriz de LED azul con segundo, minuto, e indicador de la hora el otro hacer lo mismo pero con un punto de balanceo de derecha a izquierda como segundo indicador. y la función shift() para cambio de datos. Puedes hacer tus propias animaciones.
Cómo cambiar los datos: http://arduino.cc/en/tutorial/ShiftOut
- digit_display grifo: aquí hay 3 funciones uno para establecer los dígitos (ánodos o pines de arduino definidos en la matriz de [] de CA en el "toque LED_Mega_Clock") uno para establecer los segmentos (cátodos o pins de TLC a la corriente de una toma de tierra) y para restablecer el TLC que significa que tiene 4 dígitos que se establece en alto o bajo con tus pines de arduino y 7 segmentos de cada dígito que establece alta o baja con el TLC usando multiplexación. Cómo utilizar la biblioteca TLC: http://arduino.cc/en/tutorial/ShiftOut
Usted puede optimizar el reloj por ejemplo conectando un Foto Resistor en el circuito para controlar automáticamente la ligereza del reloj según la luz ambiente de tu habitación, o puede utilizar un 10 k potenciómetro para controlar el brillo manualmente.
También puede insertar un botón para cambiar programas betteew o poner otra tira de LED interior el reloj para iluminar la parte de plástico transparente en el panel frontal.