Tabla de contenido:

Reloj de pared críptico: 27 pasos (con imágenes)
Reloj de pared críptico: 27 pasos (con imágenes)

Video: Reloj de pared críptico: 27 pasos (con imágenes)

Video: Reloj de pared críptico: 27 pasos (con imágenes)
Video: Que? #short 2024, Mes de julio
Anonim
Reloj de pared críptico
Reloj de pared críptico

El paso del tiempo es algo que no podemos controlar. Ocurre al mismo ritmo si estamos dormidos, despiertos, aburridos o comprometidos. Con los eventos actuales, es importante recordar que pasará el tiempo. Mientras esperamos que pase el tiempo, ¿por qué no hacer algo que haga que el paso del tiempo sea más atractivo de ver?

Este reloj se inspiró en el Mengenlehreuhr que se encuentra en Berlín, Alemania y se puede leer de la misma manera. Al igual que el original, indica la hora mediante campos de colores iluminados.

Cuenta con 96 LED que iluminan regiones de 52 'dígitos'. A diferencia del original, presenta un diseño circular que incluye un anillo de segundos, en lugar de un diseño de barra horizontal. La banda exterior indica los segundos junto con el punto del medio, las dos bandas siguientes indican los minutos, y las bandas internas finales indican las horas.

Si tiene algo de material de desecho y tiempo adicional en sus manos, ¿por qué no usar este tiempo para hacer algo que lo demuestre?

Hay algunos cambios que haría en este proyecto si tuviera que hacerlo de nuevo. Primero, pintaría el marco y la placa LED de blanco en lugar de negro. Esto reflejaría más luz a través de la lente grande en el frente. También esperaría hasta el final para insertar los LED. Necesitaba que la placa estuviera terminada antes para que pudiera ayudarme a escribir el código. Con eso fuera del camino, ¡primero aprendamos a leerlo!

Imagen
Imagen

Paso 1: Cómo leer el reloj

El reloj se lee desde los círculos internos hacia los externos. El anillo interior de cuatro campos denota cinco horas completas cada uno, junto con el segundo anillo, también de cuatro campos, que denotan una hora completa cada uno, mostrando el valor de la hora en formato de 24 horas. El tercer anillo consta de once campos, que denotan cinco minutos completos cada uno, el siguiente anillo tiene otros cuatro campos, que marcan un minuto completo cada uno. Finalmente, el anillo exterior de 29 campos denota segundos pares con la luz en el centro parpadeando para indicar segundos impares (cuando está encendida) o pares (cuando está apagada).

Imagen
Imagen

Por ejemplo, la imagen de arriba tiene 1 de los dígitos de cinco horas, 3 de los dígitos de una hora, 8 de los dígitos de cinco minutos, 4 de los dígitos de un minuto y 23 de los dígitos de dos segundos y el segundo dígito del medio iluminados.

1x5 + 3x1: 8x5 + 4x1: 23x2 + 1x1 = 8:44:47 = 8:44:47 AM

Imagen
Imagen

El tiempo que se muestra arriba es: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 3:17:11 PM

Imagen
Imagen

El tiempo que se muestra arriba es: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

Paso 2: herramientas y materiales

Herramientas y materiales
Herramientas y materiales
Herramientas y materiales
Herramientas y materiales
Herramientas y materiales
Herramientas y materiales

Materiales electrónicos:

  • Arduino Nano
  • Reloj en tiempo real
  • LED direccionables
  • Enchufe
  • Cable de energía
  • Enchufe de alimentación USB
  • Resistencia dependiente de la luz y resistencia balanceada (si desea que se atenúe por la noche)
  • Cable

Materiales para trabajar la madera:

  • 3/4 pulg. De madera contrachapada
  • Madera contrachapada fina
  • Madera de desecho (usé 2x4 pero la madera dura también funcionaría)
  • Pintura
  • Lámina de acrílico de 30 x 36 pulg. (Se puede encontrar en una tienda local de mejoras para el hogar)
  • Tinte de ventana (intente obtenerlo localmente. Si no hay ninguno disponible, puede encontrar una hoja lo suficientemente grande aquí)
  • Líquido de aplicación de tinte para ventanas (utilicé agua mezclada con champú para bebés en una botella rociadora)
  • Windex
  • Papel de envolver
  • Empulgueras
  • Spray pegajoso
  • Pegamento
  • Barra de pegamento

Instrumentos:

  • Gobernante
  • Cuchillo Xacto
  • Cinta
  • Cinta de dos lados
  • Brújula
  • Plantilla de corte circular
  • Rompecabezas
  • Sierra de banda
  • Lijadora de husillo
  • Lijadora de palma
  • Lijadora de disco
  • Tabla de enrutador
  • Punzón
  • Taladros y brocas / destornilladores
  • Abrazaderas
  • Soldador
  • Soldar
  • Pelacables

Paso 3: ensamblar plantillas

Ensamblar plantillas
Ensamblar plantillas
Ensamblar plantillas
Ensamblar plantillas

Para la plantilla grande, imprímala utilizando la configuración de póster en Adobe Reader. Recorta los márgenes de cada papel y pégalos con cinta adhesiva. Las líneas verticales, horizontales y diagonales ayudarán a alinear la plantilla. Todas las páginas tienen números pequeños para ayudar a mantenerlas organizadas si se estropean.

Todas las plantillas y archivos necesarios se encuentran en el Paso 26.

Paso 4: círculos de corte en bruto

Círculos de corte áspero
Círculos de corte áspero
Círculos de corte áspero
Círculos de corte áspero

Colocando las dos plantillas en una hoja de madera contrachapada de 3/4 de pulgada, dibuje círculos un poco más grandes de lo necesario con una brújula. Con una sierra de vaivén, corte la forma aproximada.

Paso 5: corte a la medida

Cortado a la medida
Cortado a la medida
Cortado a la medida
Cortado a la medida

Usando una plantilla para cortar círculos en la sierra de cinta, corte los círculos al tamaño final.

Paso 6: Aplicar plantilla

Aplicar plantilla
Aplicar plantilla
Aplicar plantilla
Aplicar plantilla
Aplicar plantilla
Aplicar plantilla

Con adhesivo en aerosol, aplique cada plantilla a un círculo. Inserte un clavo en el centro de la plantilla para centrarlo en el círculo.

Paso 7: Cortar plantilla

Plantilla de corte
Plantilla de corte
Plantilla de corte
Plantilla de corte
Plantilla de corte
Plantilla de corte

Con una sierra de calar, corte cada ventana individual de la plantilla. Si tiene acceso a un CNC, ¡este paso sería mucho más fácil! Perforé un agujero en cada ventana para ayudar con este proceso. Cuando empiece a cortar, la plantilla puede empezar a desprenderse. Si esto sucede, puede asegurarlo en su lugar con pequeños trozos de cinta.

Paso 8: lijado

Lijado
Lijado
Lijado
Lijado
Lijado
Lijado

Usando papel de lija aplicado a un palo, una lijadora de husillo y una lijadora de palma, lije y alise el corte áspero dejado por la sierra de vaivén.

Paso 9: Taladros para LED

Taladros para LED
Taladros para LED
Taladros para LED
Taladros para LED
Taladros para LED
Taladros para LED
Taladros para LED
Taladros para LED

Marque el centro de cada orificio con un punzón y taladre orificios de paso para los LED. Usé una guía para ayudar a mantener el taladro perpendicular a mi pieza de trabajo y una tabla de respaldo para evitar que la madera de la parte posterior soplara.

Paso 10: combinar tablas

Combinar tablas
Combinar tablas
Combinar tablas
Combinar tablas
Combinar tablas
Combinar tablas

Cambie las placas frontal y posterior y trace partes del marco en la parte posterior de la placa LED. Mueva el marco hacia la parte delantera de la placa de LED y taladre agujeros y atornille las piezas.

Consulte las notas de la imagen para obtener más información.

Paso 11: Inserte los LED

Insertar LED
Insertar LED
Insertar LED
Insertar LED

Empuje los LED a través de la parte posterior de la placa de LED. Los orificios deben estar lo suficientemente espaciados para que no necesite cortar ningún cable, excepto para pasar de un círculo al siguiente.

Desde la parte posterior, los LED comienzan en el centro y luego funcionan en sentido antihorario y luego hasta el siguiente anillo.

Paso 12: Adjunte el segmento 1

Adjuntar segmento 1
Adjuntar segmento 1
Adjuntar segmento 1
Adjuntar segmento 1
Adjuntar segmento 1
Adjuntar segmento 1

Recorte 9 segmentos de la plantilla "Segmento 1" adjunta en madera contrachapada de 3/4 de pulgada (que se encuentra en el paso 26). Adjuntar a la placa de LED con pegamento y abrazaderas. Si está impaciente, también puede usar clavos para sujetarlo en su lugar.

Una vez seco, lije el borde al ras con una lijadora de disco.

Paso 13: pintar

Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura

Rocíe la pintura tanto de la placa LED como del marco. Si estuviera haciendo esto nuevamente, habría elegido usar pintura blanca en lugar de negra, ya que sería más reflectante a través de la lente.

Paso 14: segmento 2

Segmento 2
Segmento 2
Segmento 2
Segmento 2
Segmento 2
Segmento 2

Corte 9 segmentos de la plantilla "Segmento 2" adjunta de madera de 2 3/8 pulgadas de grosor (que se encuentra en el paso 26). Usé algunos pedazos de 2x4 de la tienda. Coloque los segmentos en seco y asegúrese de que encajen bien con una abrazadera de banda. Si todo está bien, cubra el exterior con cinta de pintor para evitar que el pegamento se pegue y deje secar durante al menos una hora antes de continuar con el siguiente paso.

Paso 15: segmento 3

Segmento 3
Segmento 3
Segmento 3
Segmento 3
Segmento 3
Segmento 3

Corte 9 segmentos de la plantilla "Segmento 3" adjunta de madera de desecho de 3/8 pulg. De espesor (que se encuentra en el paso 26). Péguelas de modo que las costuras del segmento 2 queden en el medio de cada segmento 3. Esto fortalecerá el anillo.

Paso 16: anillo liso y pintura

Anillo liso y pintura
Anillo liso y pintura
Anillo liso y pintura
Anillo liso y pintura

Hice un bloque de lijado personalizado con la pieza sobrante del anillo grande. Lije el interior y el exterior del anillo y rellene las grietas que puedan haber aparecido durante el proceso de encolado.

Una vez que esté suave, aplique algunas capas de pintura negra y una capa transparente.

Paso 17: cortar acrílico

Cortar Acrílico
Cortar Acrílico
Cortar Acrílico
Cortar Acrílico
Cortar Acrílico
Cortar Acrílico
Cortar Acrílico
Cortar Acrílico

Corta el acrílico en un cuadrado que mida 30 x 30 pulgadas y marca el centro. Pega el acrílico con cinta adhesiva de doble cara. Con una broca de enrutador para molduras al ras, retire el exceso de acrílico

Paso 18: Aplicar tinte de ventana

Aplicar tinte de ventana
Aplicar tinte de ventana
Aplicar tinte de ventana
Aplicar tinte de ventana
Aplicar tinte de ventana
Aplicar tinte de ventana

En un ambiente libre de polvo, retire la película protectora del acrílico. Aplique spray y retire el respaldo del tinte de la ventana. Aplique tinte de ventana con el lado adhesivo hacia abajo. Con una escobilla de goma o una tarjeta de crédito, exprima todo el líquido debajo del tinte de la ventana. Una vez que se hayan eliminado todas las burbujas y arrugas, recorte el exceso de tinte de la ventana con un cuchillo afilado.

Paso 19: Adjunte Defuser

Adjuntar Defusor
Adjuntar Defusor
Adjuntar defusor
Adjuntar defusor

Utilicé un gran trozo de papel de estraza para que actuara como difusor. Extiende el papel sobre una superficie plana. Cubre la cara del marco con pegamento de una barra de pegamento. Antes de que se seque el pegamento, coloque el frente del reloj boca abajo sobre el papel y corte el exceso. Una vez seco, use un cuchillo afilado para recortar al ras.

Paso 20: aplique aislamiento

Aplicar aislamiento
Aplicar aislamiento

Usé cinta aislante para mantener separadas las líneas de energía y de datos.

Paso 21: Ensamblar

Armar
Armar
Armar
Armar
Armar
Armar

Retire la otra capa protectora del acrílico. Coloca el acrílico dentro del anillo con el tinte de la ventana hacia arriba. Desliza el resto del reloj en el anillo. Utilice una abrazadera para aplicar una ligera presión mientras se perfora un orificio a través del anillo y en la placa de LED. Debe estar aproximadamente a 1 1/8 pulg. De la parte posterior. Tenga cuidado de no perforar un LED. Atornille un tornillo de cabeza de celosía en el orificio. Repita para un total de ocho tornillos alrededor del perímetro del reloj.

Paso 22: Adjunte puntos de anclaje

Adjuntar puntos de anclaje
Adjuntar puntos de anclaje

Pegue los puntos de anclaje en la parte posterior del reloj para que se adhiera la cubierta posterior. Estos tienen 3/4 de pulgada de espesor y aproximadamente 2 pulgadas de largo.

Paso 23: Taladre los orificios del sensor de potencia y LDR

Perforación de orificios para sensores de potencia y LDR
Perforación de orificios para sensores de potencia y LDR

Taladre un orificio de alimentación en la parte inferior del reloj para el enchufe de alimentación y un orificio en la parte superior para el sensor de resistencia dependiente de la luz (LDR).

Paso 24: Instale el soporte de la electrónica

Instale el soporte de la electrónica
Instale el soporte de la electrónica
Instale el soporte de la electrónica
Instale el soporte de la electrónica

Instale el soporte impreso en 3D para RTC y Arduino Nano. Conecte todos los componentes electrónicos como se muestra en el esquema.

Paso 25: Contraportada

Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada

Corta una cubierta trasera de madera contrachapada delgada un poco más pequeña que la parte exterior del reloj. Taladre agujeros en los puntos de anclaje. Encuentre el centro de la parte posterior y mida 8 pulgadas en cualquier dirección para cortar los orificios de las cerraduras (estándar de 16 en el centro para los postes en los EE. UU.). Perforé el orificio principal un poco más grande que la cabeza de los tornillos que voy a usar y limité el orificio más grande en una dirección. Pinte de negro y coloque la cubierta en su lugar.

Paso 26: Código y archivos

Nuevamente, soy bastante nuevo en el uso de muchas de las bibliotecas de Arduino que se usan aquí, así que estoy seguro de que hay mejores formas de utilizarlas.

Escribí el código para que se actualice fácilmente en función de la cantidad de LED que esté utilizando si el proyecto se escala hacia arriba o hacia abajo. Todo lo que necesita hacer es actualizar las posiciones de inicio y finalización de los LED, así como cuántos LED forman parte de cada dígito.

Agregué algunas animaciones que se reproducen tanto al inicio como a la hora. Son sudo aleatorios según el generador de números aleatorios que tiene a bordo.

Puede configurar el reloj para alternar entre los colores o permanecer estático en uno. Incluso puede resaltar el dígito indicador para ayudar a leer la hora como se muestra en la introducción.

Siéntase libre de editar y cambiar el código como desee.

#include "RTClib.h"

#incluya #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; boolean timeChange = false; boolean printTime = false; // Configúrelo en verdadero si desea ver la salida en la consola. Útil para depurar. booleano redDown = true; booleano greenDown = falso; booleano blueDown = falso; ciclo booleano = falso; // Establezca verdadero si desea que los colores del reloj cambien de color booleano resaltado = verdadero; // Establezca verdadero para resaltar el 'último dígito'. // Ubicaciones del inicio y final de cada grupo de tiempo const int SECOND_1_LOCATION = 0; const int HOUR_2_START_LOCATION = 1; const int HOUR_2_END_LOCATION = 8; const int HOUR_1_START_LOCATION = 9; const int HOUR_1_END_LOCATION = 20; const int MINUTE_2_START_LOCATION = 21; const int MINUTE_2_END_LOCATION = 42; const int MINUTE_1_START_LOCATION = 43; const int MINUTE_1_END_LOCATION = 66; const int SECOND_2_START_LOCATION = 67; const int SECOND_2_END_LOCATION = 95; const int LEDS_PER_HOUR_1 = 3; const int LEDS_PER_HOUR_2 = 2; const int LEDS_PER_MINUTE_1 = 6; const int LEDS_PER_MINUTE_2 = 2; // Multiplicadores usados para dividir el tiempo const int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Cambie esto para acelerar o ralentizar la animación de inicio const int CYCLE_SPEED = 1; // Cambie la tasa aquí para el ciclo de cambio de color (debe estar por encima de 1) // Declare las variables int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int hora1 = 0; int hora2 = 0; int minuto1 = 0; int minuto2 = 0; int second1 = 0; int second2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t brillante = 255; int numberOfAnimations = 5; int aleatoriedad = 0; // Establecer colores uint8_t red = 0; uint8_t verde = 0; uint8_t azul = 255; uint8_t highlight_red = 60; uint8_t realce_verde = 60; uint8_t highlight_blue = 255; // Definir la matriz de leds leds CRGB [NUM_LEDS]; configuración vacía () {Serial.begin (19200); FastLED.addLeds (leds, NUM_LEDS); LEDS.setBrightness (brillante); FastLED.clear (); rtc.begin (); // Descomente la línea de abajo para establecer la hora. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Animación de inicio animada (aleatoriedad); } void loop () {// Obtener la hora DateTime ahora = rtc.now (); hora actual = hora.hora (); currentMinute = ahora.minuto (); currentSecond = ahora.segundo (); timeChange = false; // Úselos para configurar manualmente la hora sin RTC. Útil para depurar // currentHour = 5; // currentMinute = 30; // currentSecond = 30; // Restablece todos los bits a cero para (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Black; } // Establecer hora // Establecer hora 1 hora1 = (currentHour% MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Esto contará el total de LED de la unidad de tiempo para iluminar durante (int i = HOUR_1_START_LOCATION; i 0) // && hour1 <12) {for (int i = (HOUR_1_START_LOCATION + hour1 - 1); i> = (HOUR_1_START_LOCATION + hora1 - LEDS_PER_HOUR_1); i--) {leds = CRGB (resaltar_rojo, resaltar_verde, resaltar_azul); }} // Establecer hora 2 hora2 = (hora actual / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Esto contará el total de LED de la unidad de tiempo para iluminar durante (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {for (int i = (HOUR_2_START_LOCATION + hour2 - 1); i> = (HOUR_2_START_LOCATION + hour2 - LEDS_PER_HOUR_2); i--) {leds = CRGB (resaltar_rojo, resaltar_verde, resaltar_azul); }} // Establecer minuto // Establecer minuto 1 minuto1 = (currentMinute% MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Esto contará el total de LEDs de la unidad de tiempo para iluminar (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {for (int i = (MINUTE_1_START_LOCATION + minute1 - 1); i> = (MINUTE_1_START_LOCATION + minuto1 - LEDS_PER_MINUTE_1); i--) {leds = CRGB (resaltar_rojo, resaltar_verde, resaltar_azul); }} // Establecer minuto 2 minuto2 = (currentMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Esto contará el total de LED de la unidad de tiempo para iluminar durante (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {for (int i = (MINUTE_2_START_LOCATION + minuto2 - 1); i> = (MINUTE_2_START_LOCATION + minuto2 - LEDS_PER_MINUTE_2); i--) {leds = CRGB (resaltar_rojo, resaltar_verde, resaltar_azul); }} // Establecer segundo if (currentSecond! = LastSecond) {timeChange = true; } // Establecer segundo 1 segundo1 = segundo actual% MULTIPLIER_TWO; if (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (rojo, verde, azul); } // Establecer segundo 2 segundo2 = currentSecond / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0) // && second2 <29) {for (int i = (SECOND_2_START_LOCATION + second2 - 1); i> = (SECOND_2_START_LOCATION + second2 - 1); i--) {leds = CRGB (resaltar_rojo, resaltar_verde, resaltar_azul); }} lastSecond = currentSecond; // Cuente los ciclos del programa y llame a la función setColor para cambiar el color de los LED cada ciclo CYCLE_SPEED. si (cycleCount brillante) // {// fadeValue = brillante; //} // else if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Imprime la hora actual en la consola if (timeChange == true && printTime == true) {printToConsole (); }} // Función de animación agregue aquí más animaciones como desee void animate (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rojo verde azul); FastLED.show (); retraso (START_UP_DELAY); } para (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negro; FastLED.show (); retraso (START_UP_DELAY); }} else if (seleccionar == 1) {for (int i = 0; i <250; i ++) {int light = random (95); leds [luz] = CRGB (rojo, verde, azul); FastLED.show (); }} else if (seleccionar == 2) {leds [0] = CRGB (rojo, verde, azul); para (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION + i] = CRGB (rojo, verde, azul); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_START_LOCATION + i] = CRGB (rojo, verde, azul); } si (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_START_LOCATION + i] = CRGB (rojo, verde, azul); } si (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_START_LOCATION + i] = CRGB (rojo, verde, azul); } si (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_START_LOCATION + i] = CRGB (rojo, verde, azul); } retraso (34); FastLED.show (); }} else if (seleccionar == 3) {leds [0] = CRGB (rojo, verde, azul); para (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_END_LOCATION - i] = CRGB (rojo, verde, azul); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_END_LOCATION - i] = CRGB (rojo, verde, azul); } si (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_END_LOCATION - i] = CRGB (rojo, verde, azul); } si (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_END_LOCATION - i] = CRGB (rojo, verde, azul); } si (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (rojo, verde,azul); } retraso (34); FastLED.show (); }} else if (seleccione == 4) {for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); retraso (200); para (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rojo, verde, azul); } FastLED.show (); retraso (200); para (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negro; } FastLED.show (); retraso (200); para (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rojo, verde, azul); } FastLED.show (); retraso (200); para (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negro; } FastLED.show (); retraso (200); }} // Función de ciclo de color void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; verde--; si (verde <= 0) {rojo = 255; redDown = falso; greenDown = verdadero; }} más si (greenDown == true && blueDown == false) {green ++; azul--; si (azul <= 0) {verde = 255; greenDown = falso; blueDown = verdadero; }} más si (blueDown == true && redDown == false) {blue ++; rojo--; si (rojo <= 0) {azul = 255; blueDown = falso; redDown = verdadero; }}} más {rojo = 0; verde = 0; azul = 255; }} // Función de Imprimir en Serial Monitor void printToConsole () {Serial.print ("Hora actual:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); para (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); if (i% 2 == 0) {Serial.print (""); }} Serial.println (""); para (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); if (((i - HORA_1_START_LOCATION + 1)% 3) == 0) {Serial.print (""); }} Serial.println (""); para (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); if (((i - MINUTE_2_START_LOCATION) + 1)% 2 == 0) {Serial.print (""); }} Serial.println (""); para (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); if (((i - MINUTE_1_START_LOCATION) + 1)% 6 == 0) {Serial.print (""); }} Serial.println (""); para (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (leds ); Serial.print (""); } Serial.println (""); Serial.println (leds [SECOND_1_LOCATION]); Serial.println (); para (int i = 0; i <NUM_LEDS; i ++) {Serial.print (leds ); } Serial.println (); Serial.println (); }

Paso 27: ¡Disfruta

Imagen
Imagen

En conclusión, este reloj es maravilloso de ver y una vez que lo dominas, es relativamente fácil de leer. Si haces tu propio proyecto de reloj, ¡avísame!

Recomendado: