Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Después de varios años de uso, mi reloj analógico está definitivamente muerto.
Mientras tanto, estaba buscando un proyecto de reloj 3d para imprimir con mi Prusa, así que encontré un reloj de 7 segmentos que funciona con leds ws2812 y Arduino.
Pensé que el poder de esos leds es mostrar una amplia gama de colores, entonces la pregunta era, ¿cómo combinar varios colores en un reloj digital?
Entonces la idea de personalizar el reloj con las siguientes características:
- 7 transiciones de cambio de minutos diferentes
- 3 colores preestablecidos para franjas horarias
- atenuación automática de la intensidad de la luz ambiental
- apagado / inicio automático cuando no es necesario mostrar la hora
- ajuste automático del horario de verano
Suministros
El proyecto se puede ejecutar utilizando una impresora 3D o buscando en Google para proyectos de relojes de 7 segmentos. Alguien los hizo también con cartón.
También es necesario:
- Arduino nano
- foto chell
- pulsador momentáneo
- interruptor encendido / apagado
- Enchufe DC
- Transformador 5V
- n ° 30 WS2812 leds (modelo 30 leds / metro)
- tarjeta de circuito impreso
- Módulo DS3231
- cables finos para conexiones leds
- resistencias 10K, 550
- soldar
- pegamento
- saltadores
- encabezados hombre / mujer
Paso 1: Impresión y cableado…
El proyecto original en Thingverse tiene algunas modificaciones (gracias al usuario random1101).
Los dos puntos se ampliaron para adaptarse a la versión LED utilizada para este proyecto. También se modificó una de las tres contraportadas para adaptarse a la PCB. También cambió la base del reloj.
El trabajo principal es soldar leds. Primero, procedí a soldar leds fuera de la contraportada del dígito de impresión 3D, luego inserté en ella.
El 7º led del primer dígito empezando por la izquierda se conectará al primer led del siguiente dígito. Al final del 4º dígito, conecte los dos leds de puntos, se numerarán 28 y 29 dentro de la secuencia.
La secuencia de LED se puede modificar cambiando algunos parámetros a la biblioteca Arduino como se explica a continuación.
Una vez conectado, se habrá realizado la mayor parte del trabajo.
Paso 2: Montaje de PCB
Ahora es el momento de montar una pcb donde soldar algunas resistencias, cabeceras, etc. Los componentes para conectar Arduino son:
Pulsador conectado entre el pin 3 de Arduino y GND con resistencia pull-up interna.
Sensor de luz conectado como divisor de voltaje, entre el pin A7 de Arduino y GND. Agregue también una resistencia de 10K entre A7 y + 5V ……… GRAN ERROR
sensor de luz entre + 5V y pin A7 y resistencia de 10K entre pin A / y GND
Módulo DS3231 conectado a través de i2c y pin SQW al pin 2 de interrupción de Arduino
Leds conectados al pin 5 a través de una resistencia de 550Ohm.
Paso 3: el boceto
Hay muchas personalizaciones que se pueden hacer dentro del boceto.
El ahorro de la biblioteca de horario de verano se maneja mediante los parámetros TimeChangeRule, consulte la biblioteca JChristensen en Github para obtener más información.
El apagado automático dentro del bucle se maneja mediante la variable int gotosleep. En mi caso a las 0:00 Arduino entra en modo de suspensión, luego el reloj se apaga.
Al configurar ALARM en el módulo DS3231 a través de la variable int gotosleep, permite que Arduino se despierte del modo de suspensión. En mi caso a las 7:00 de la mañana.
Otra característica es cambiar el color del reloj durante el día dentro de la función:
void printDateTime (time_t t, const char * tz)
En mi configuración de h 0:00 a 12:00, la hora se muestra en rojo, de 12:00 a 17:00 en verde y de 17:00 a 0:00 principalmente en azul. Este es el mejor equilibrio de color encontrado hasta ahora para un buen contraste con la pared blanca detrás.
La función de transiciones permite tener una transición de color animada cuando cambia un minuto. Hay 6 diferentes que se pueden elegir presionando el botón momentáneo, la séptima opción es sin transiciones. El que me gusta se llama newrandom () que es el preestablecido (int mode = 1;).
Hice algunos cambios en la biblioteca para compatibilidad con la secuencia de led. Dentro del archivo segmento_display.cpp, al final, cambie (i) puede modificar su secuencia de led. Una vez hecho esto, sustituya el archivo dentro
/ Arduino / libraries / 7segment_NeoPixel-master
Bibliotecas requeridas:
- avr. sueño
- pantalla_segmento
- DS3231
- TimeLib
- Cable
- Adafruit NeoPixel
- Zona horaria
Paso 4: es hora de decir adiós
Me gusta este reloj, la hora actual es claramente visible desde lejos y se apaga cuando no la necesito.
¿Cómo podría pedir más a un reloj?