Tabla de contenido:
- Paso 1: ¿Cómo leerlo?
- Paso 2: ¿Qué necesitará?
- Paso 3: Componentes electrónicos - Antecedentes
- Paso 4: Electrónica - Fuente de alimentación
- Paso 5: Electrónica - Soldadura
- Paso 6: Software - Antecedentes
- Paso 7: Software - Código
- Paso 8: haz el reloj
- Paso 9: Dibuja en la madera
- Paso 10: Ensamblar
- Paso 11: Actualización - Fotorresistor
- Paso 12: ¡Disfruta
Video: LEDura - Reloj LED analógico: 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Proyectos Tinkercad »
Después de mucho tiempo de hacer varios proyectos, decidí hacer un instructable yo mismo. Para el primero, lo guiaré a través del proceso de creación de su propio reloj analógico con un increíble anillo LED direccionable. El anillo interior muestra las horas, el anillo exterior muestra los minutos y los segundos.
Además de mostrar la hora, el reloj también puede mostrar la temperatura ambiente y puede ser una decoración muy agradable en la habitación. Cada 15 minutos, el reloj también produce algunos efectos especiales: el video los muestra todos, asegúrese de verlo. Con la ayuda de 2 botones y potenciómetro, el usuario puede elegir entre diferentes modos y modificar colores según su propio deseo. También lo actualicé para atenuar automáticamente los LED si la habitación se oscurece, de modo que el usuario no sea molestado durante la noche.
El reloj se puede colocar en el escritorio, mesita de noche o colgar de la pared.
Nota: Las imágenes no son tan buenas como la vista en la realidad debido al alto brillo.
Paso 1: ¿Cómo leerlo?
El reloj tiene 2 anillos: uno más pequeño para mostrar las horas y otro más grande para mostrar los minutos y los segundos. Algunos LED brillan todo el tiempo, lo que se denomina brújula que indica las posiciones principales del reloj. En el anillo de las horas representa las 3, 6, 9 y 12 en punto, en el anillo de los minutos representa 15, 30, 45 y 0 minutos.
Paso 2: ¿Qué necesitará?
Materiales:
- 1x Arduino Nano (también puedes usar cualquier otro Arduino)
- 1x módulo DS3231 RealTimeClock
- 1x anillo LED direccionable - 60 LED
- 1x anillo led direccionable - 24 leds
- 2x botones (NO - normalmente abiertos)
- 1x potenciómetro de 100 kOhmios
- Fuente de alimentación 1x 5V (capaz de entregar 1 Amp)
- 1x conector de suministro
- Algunos cables
- 1 resistencia de 10 kOhmios
-
1x fotorresistencia
- Prefboard (opcional)
- Conectores de cable del bloque de terminales (opcional)
- Madera de 25 mm de espesor, tamaño mínimo de 22 cm x 22 cm
- Estera delgada de plástico de PVC de 1 mm de tamaño 20cmx20xm
Instrumentos:
- Herramientas básicas para la electrónica de la construcción (soldador, alicates, destornillador,…)
- Taladro
- Pistola de silicona
- Papel de lija y un poco de barniz para madera.
- Máquina CNC (tal vez algún amigo la tenga)
Paso 3: Componentes electrónicos - Antecedentes
DS3231
Podríamos determinar el tiempo usando el oscilador integrado de Arduino y un temporizador, pero decidí usar el módulo de reloj en tiempo real (RTC) dedicado, que puede realizar un seguimiento del tiempo incluso si desconectamos el reloj de su fuente de alimentación. La placa DS3231 tiene una batería, que proporciona energía cuando el módulo no está conectado a la fuente de alimentación. También es más preciso en períodos de tiempo más largos que la fuente de reloj de Arduino.
DS3231 RTC usa la interfaz I2C para comunicarse con el microcontrolador, muy simple de usar y solo necesitamos 2 cables para comunicarnos con él. El módulo también proporciona un sensor de temperatura, que se utilizará en este proyecto.
Importante: Si planea usar una batería no recargable para el módulo RTC, debe desoldar la resistencia de 200 ohmios o el diodo 1N4148. De lo contrario, su batería podría explotar. Puede encontrar más información en este enlace.
Anillo LED WS2812
Decidí usar un anillo de 60 LED para realizar un seguimiento de los minutos y un anillo de 24 LED durante horas. Puede encontrarlos en Adafruit (anillo neoPixel) o en algunas versiones económicas en eBay, Aliexpress u otras tiendas web. Existe una gran diversidad entre las tiras de led direccionables y si es la primera vez que juega con ellas, le recomiendo que lea algunas descripciones de uso; aquí hay algunos enlaces útiles:
https://www.tweaking4all.com/hardware/arduino/adr…
https://randomnerdtutorials.com/guide-for-ws2812b…
La tira de LED direccionable tiene 3 conectores: 5V, GND y DI / DO. Los dos primeros son para alimentar los LED, el último es para los datos. Tenga cuidado al conectar el anillo a Arduino: su línea de datos debe estar conectada al pin DI (entrada de datos).
Arduino
Estoy usando Arduino Nano porque es lo suficientemente pequeño y suficiente para este proyecto. Puede usar casi cualquier otro Arduino, pero luego debe tener cuidado al conectar todo a él. Los botones y los anillos LED pueden estar en los mismos pines, pero los conectores I2C (para el módulo RTC) pueden diferir de una plataforma a otra; consulte su hoja de datos.
Paso 4: Electrónica - Fuente de alimentación
Arduino y la tira de LED deben recibir una fuente de alimentación de 5 V para que sepamos qué voltaje se necesita. Dado que el LED suena, consume muchos amperios, no podemos alimentarlo directamente con Arduino, que puede soportar un máximo de 20 mA en su salida digital. Según mis mediciones, los anillos de LED juntos pueden generar hasta 500 mA. Por eso compré un adaptador que es capaz de suministrar hasta 1A.
Con la misma fuente de alimentación queremos alimentar Arduino y LED; aquí hay que tener cuidado.
¡Advertencia! Tenga mucho cuidado cuando esté probando la tira de LED: el adaptador de corriente NO debe estar conectado a Arduino, cuando Arduino también está conectado a la PC con un conector USB (puede dañar el puerto USB de su computadora).
Nota: En los esquemas a continuación, utilicé el interruptor normal para seleccionar si Arduino se alimenta a través de una fuente de alimentación o mediante un conector USB. Pero en el tablero de perfiles puede ver que agregué un encabezado de pin para seleccionar desde qué fuente de alimentación se alimenta Arduino.
Paso 5: Electrónica - Soldadura
Cuando reúna todas las piezas, es hora de soldarlas.
Como quería que el cableado estuviera limpio, utilicé una placa perfilada y un conector de bloque de terminales para los cables, para poder desenchufarlos en caso de modificaciones. Esto es opcional; también puede soldar los cables directamente al Arduino.
Un consejo: es más fácil si imprime los esquemas para tenerlos frente a usted mientras suelda. Y vuelva a comprobar todo antes de conectarlo a la fuente de alimentación.
Paso 6: Software - Antecedentes
IDE de Arduino
Vamos a programar Arduino con su software dedicado: Arduino IDE. Si está jugando con Arduino por primera vez, le recomiendo que consulte algunas instrucciones sobre cómo hacerlo. Ya hay muchos tutoriales en la web, por lo que no entraré en detalles.
Biblioteca
Decidí usar la biblioteca FastLED en lugar de la popular Adafruit. Tiene algunas funciones matemáticas ordenadas con las que puede hacer grandes efectos (¡Aprobado por los desarrolladores!). Puede encontrar la biblioteca en su repositorio de GitHub, pero agregué el archivo.zip de la versión que estoy usando en mi código.
Si se está preguntando, cómo agregar una biblioteca externa a Arduino IDE, puede consultar algunas instrucciones ya hechas
Para el módulo de reloj, utilicé la biblioteca Arduino para el reloj en tiempo real (RTC) DS3231 (enlace), que puede instalar fácilmente en Arduino IDE. Cuando esté en IDE, haga clic en Sketch → Incluir biblioteca → Administrar bibliotecas… y luego filtre su búsqueda con el nombre de arriba.
Nota: Por alguna razón, actualmente no puedo agregar archivos.zip. Puedes encontrar la biblioteca en mi repositorio de GitHub.
Paso 7: Software - Código
Estructura
La aplicación está construida con 4 archivos:
- LEDclokc.ino Esta es la aplicación principal de Arduino, donde puede encontrar funciones para controlar todo el reloj; comienzan con el prefijo CLOCK_.
- LEDclokc.h aquí son definiciones de conexión de pines y algunas configuraciones de reloj.
- ring.cpp y ring.h aquí está mi código para controlar los anillos LED.
LEDclock.h
Aquí encontrará todas las definiciones de reloj. Al principio, hay definiciones de cableado. Asegúrese de que sean los mismos que sus conexiones. Luego están las configuraciones de reloj: aquí puede encontrar la macro para el número de modos que tiene el reloj.
LEDclock.ino
En el diagrama, se representa el bucle principal. Code primero verifica si se presiona algún botón. Debido a la naturaleza de los conmutadores, debemos usar el método de eliminación de rebotes para leer sus valores (puede leer más sobre esto en el enlace).
Cuando se presiona el botón 1, el modo variable aumenta en 1, si se presiona el botón 2, se aumenta el tipo de variable. Usamos estas variables para determinar qué modo de reloj queremos ver. Si ambos botones se presionan al mismo tiempo, se llama a la función CLOCK_setTime () para que pueda cambiar la hora del reloj.
El código posterior lee el valor del potenciómetro y lo almacena en una variable, con esta variable el usuario puede cambiar los colores del reloj, el brillo, etc.
Luego hay una declaración de cambio de caso. Aquí determinamos en qué modo se encuentra actualmente el reloj y, mediante ese modo, se llama a la función correspondiente, que configura los colores de los LED. Puede agregar sus propios modos de reloj y reescribir o modificar las funciones.
Como se describe en la biblioteca FastLED, debe llamar a la función FastLED.show () al final, que cambia los LED al color que los configuramos previamente.
Puede encontrar descripciones mucho más detalladas entre las líneas de código
El código completo se adjunta a continuación en los archivos siguientes.
SUGERENCIA: puedes encontrar el proyecto completo en mi repositorio de GitHub. Aquí el código también se actualizará si le agrego algún cambio.
Paso 8: haz el reloj
Marco de reloj
Construí el marco del reloj usando una máquina CNC y madera de 25 mm de espesor. Puede encontrar el boceto dibujado en ProgeCAD adjunto a continuación. Las ranuras para el anillo LED son un poco más grandes, porque los fabricantes solo proporcionan las medidas del diámetro exterior, el interior puede variar bastante … En la parte trasera del reloj, hay mucho espacio para la electrónica y los cables.
Anillos de PVC
Debido a que los LED son bastante brillantes, es bueno difundirlos de alguna manera. Primero probé con silicona transparente, que hace el trabajo de difundir, pero es bastante desordenado y es difícil dejarlo liso en la parte superior. Por eso encargué un trozo de plástico PVC “leche” de 20x20 cm y corté dos anillos en él con una máquina CNC. Puede usar papel de lija para suavizar los bordes para que los anillos se deslicen en las ranuras.
Agujeros laterales
Entonces es el momento de perforar los agujeros para los botones, el potenciómetro y el conector de la fuente de alimentación. En primer lugar, dibuje cada posición con un lápiz y luego taladre el agujero. Aquí depende del tipo de botones que tengas; yo fui con botones pulsadores con cabeza ligeramente curvada. Tienen 16 mm de diámetro, así que usé un taladro para madera de ese tamaño. Lo mismo ocurre con el potenciómetro y el conector de alimentación. Asegúrese de borrar todos los dibujos a lápiz después.
Paso 9: Dibuja en la madera
Decidí dibujar algunos indicadores de reloj en la madera; aquí puedes usar tu imaginación y diseñar el tuyo propio. Quemé la madera con un soldador y la calenté a la temperatura máxima.
Para que los círculos fueran bien redondos, utilicé un trozo de aluminio, le hice un agujero y seguí los bordes del agujero con un soldador (mira la imagen). Asegúrese de sujetar el aluminio con firmeza, para que no se resbale mientras dibuja. Y tenga cuidado al hacerlo para evitar lesiones.
Si está haciendo dibujos y desea que estén bien alineados con los píxeles del reloj, puede usar el “Modo de mantenimiento” que le mostrará dónde se ubicarán los píxeles (vaya al capítulo Ensamblar).
Protege la madera
Cuando esté satisfecho con el reloj es el momento de lijarlo y protegerlo con barniz para madera. Usé papel de lija muy suave (valor de 500) para suavizar los bordes. Te recomiendo que uses barniz de madera transparente, para que el color de la madera no cambie. Ponga una pequeña cantidad de barniz en el pincel y tire de él en la dirección de las anuales en la madera. Repítelo al menos 2 veces.
Paso 10: Ensamblar
Los primeros colocan los botones y el potenciómetro en sus posiciones; si sus agujeros son demasiado grandes, puede usar un poco de pegamento caliente para fijarlos en su lugar. Luego coloque la tira de anillo en sus ranuras y conecte sus cables al Arduino. Antes de pegar el anillo LED en su lugar, es bueno asegurarse de que los píxeles LED estén en el lugar correcto, centrados y alineados con el dibujo. Para ese propósito, agregué el llamado modo de mantenimiento que mostrará todos los píxeles importantes (0, 5, 10, 15, … en el anillo de los minutos y 3, 6, 9 y 12 en el anillo de las horas). Puede ingresar a este modo presionando y manteniendo presionados ambos botones, antes de enchufar la fuente de alimentación al conector. Puede salir de este modo presionando cualquier botón.
Cuando tenga sus anillos LED alineados, aplique un poco de pegamento caliente y sosténgalos mientras el pegamento se vuelve firme. Luego tome sus anillos de PVC y nuevamente: aplique un poco de pegamento caliente a los LED, colóquelos rápidamente y sosténgalos durante un par de segundos. Al final, cuando esté seguro de que todo funciona, puede pegar en caliente la placa por placa (o Arduino) a la madera. Consejo: no aplique demasiado pegamento. Solo una pequeña cantidad para que se mantenga en un lugar, pero puede quitarlo fácilmente si desea cambiar algo más adelante.
Al final, inserte la batería de tipo botón en su soporte.
Paso 11: Actualización - Fotorresistor
Los efectos de reloj son especialmente agradables en la oscuridad. Pero esto puede molestar a su usuario durante la noche, mientras duerme. Es por eso que decidí actualizar el reloj con la función de corrección automática de brillo, cuando la habitación se oscurece; el reloj apaga sus LED.
Para ese propósito, utilicé el sensor de luz - fotorresistencia. Su resistencia aumentará significativamente; hasta unos pocos mega ohmios cuando está oscuro y tendrá solo unos pocos cientos de ohmios cuando haya luz brillando sobre él. Junto con una resistencia normal, forman el divisor de voltaje. Entonces, cuando la resistencia del sensor de luz cambia, también lo hace el voltaje en el pin analógico Arduino (que podemos medir).
Antes de soldar y ensamblar cualquier circuito, es aconsejable simularlo primero, para que pueda ver el comportamiento y hacer las correcciones. ¡Con la ayuda de Autocad Tinkercad puede hacer exactamente eso! Con solo unos pocos clics agregué los componentes, los conecté y escribí el código. En la simulación se puede ver cómo cambia el brillo de los LED según el valor de la fotorresistencia. Es muy simple y directo: puedes jugar con el circuito.
Después de la simulación, llegó el momento de agregar la función al reloj. Hice un agujero en el centro del reloj, pegué la fotorresistencia, la conecté como se puede ver en el circuito y agregué algunas líneas de código. En el archivo LEDclock.h, debe habilitar esta función declarando USE_PHOTO_RESISTOR como 1. También puede cambiar a qué brillo de la habitación el reloj atenuará los LED cambiando el valor CLOCK_PHOTO_TRESHOLD.
Paso 12: ¡Disfruta
Cuando lo encienda por primera vez, el reloj mostrará una hora aleatoria. Puede configurarlo presionando ambos botones al mismo tiempo. Gire el mando para seleccionar el momento adecuado y confírmelo pulsando cualquier botón.
Encontré inspiración en un proyecto muy bonito en Internet. Si decides construir el reloj por tu cuenta, ¡échales un vistazo también! (NeoClock, Wol Clock, Arduino Colorful Clock) Si alguna vez decides seguir las instrucciones, espero que lo disfrutes tanto como yo.
Si tiene algún problema durante el proceso de elaboración, no dude en hacerme cualquier pregunta en los comentarios. ¡Con gusto intentaré responderla!
Recomendado:
Control de 2 servos con joystick analógico: 5 pasos (con imágenes)
Controlando 2 Servos usando Analog Joystick .: Hola chicos, este es mi primer instructivo y en esta publicación comparto cómo usar Analog Joystick para controlar Servos usando Arduino UNO. Intentaré explicarlo de la manera más simple posible, espero que les guste. eso
Impresionante sintetizador / órgano analógico que utiliza solo componentes discretos: 10 pasos (con imágenes)
Increíble sintetizador / órgano analógico que utiliza solo componentes discretos: los sintetizadores analógicos son geniales, pero también bastante difíciles de hacer, así que quería hacer uno lo más simple posible, para que su funcionamiento sea fácilmente comprensible. Necesito algunos subcircuitos básicos: Un oscilador simple con resis
Cómo leer varios valores analógicos usando un pin analógico: 6 pasos (con imágenes)
Cómo leer múltiples valores analógicos usando un pin analógico: En este tutorial, le mostraré cómo leer múltiples valores analógicos usando solo un pin de entrada analógica
Fader LED analógico alterno discreto con curva de brillo lineal: 6 pasos (con imágenes)
Fader LED analógico alterno discreto con curva de brillo lineal: la mayoría de los circuitos para atenuar / atenuar un LED son circuitos digitales que utilizan una salida PWM de un microcontrolador. El brillo del LED se controla cambiando el ciclo de trabajo de la señal PWM. Pronto descubrirá que al cambiar linealmente el ciclo de trabajo
Circuitos GPIO de Raspberry Pi: uso de un sensor analógico LDR sin un ADC (convertidor analógico a digital): 4 pasos
Circuitos GPIO de Raspberry Pi: uso de un sensor analógico LDR sin un ADC (convertidor analógico a digital): en nuestros Instructables anteriores, le mostramos cómo puede vincular los pines GPIO de su Raspberry Pi a los LED e interruptores y cómo los pines GPIO pueden ser altos o bajo. Pero, ¿y si quieres usar tu Raspberry Pi con un sensor analógico? Si queremos usar un