Tabla de contenido:

Despertador binario DIY Arduino: 14 pasos (con imágenes)
Despertador binario DIY Arduino: 14 pasos (con imágenes)

Video: Despertador binario DIY Arduino: 14 pasos (con imágenes)

Video: Despertador binario DIY Arduino: 14 pasos (con imágenes)
Video: Practica Arduino Reloj Digital 2024, Mes de julio
Anonim
Reloj despertador binario Arduino DIY
Reloj despertador binario Arduino DIY
Reloj despertador binario Arduino DIY
Reloj despertador binario Arduino DIY
Reloj despertador binario Arduino DIY
Reloj despertador binario Arduino DIY

¡Es el clásico reloj binario de nuevo! ¡Pero esta vez con aún más funciones adicionales! En este instructivo, le mostraré cómo construir un reloj despertador binario con Arduino que puede mostrarle no solo la hora, sino también la fecha, el mes, ¡incluso con funciones de temporizador y alarma que también se pueden usar como lámpara de noche! ¡Sin más preámbulos, comencemos!

Nota: Este proyecto no utiliza un módulo RTC, por lo que la precisión depende de la placa que utilizó. He incluido un mecanismo correctivo que corregirá la desviación del tiempo durante un cierto período de tiempo, pero deberá experimentar para encontrar el valor correcto para el período de tiempo (más sobre esto a continuación), e incluso con el mecanismo correctivo, seguirá desviándose durante mucho tiempo (en comparación con sin uno). Si alguien está interesado, no dude en implementar el uso del módulo RTC en este proyecto

Suministros

LED de 5 mm (de cualquier color, utilicé 13 LED blancos con un LED RGB como indicador) --- 14 piezas

Arduino Nano (otros pueden funcionar) --- 1 pc

Microinterruptor --- 1 pieza

Pequeño trozo de papel de aluminio

Tablero de montaje (para gabinete, pero siéntase libre de diseñar el suyo)

Trozo de papel blanco (o de cualquier otro color)

Alguna película plástica (la que se usa como tapa del libro)

Manojo de alambres

Zumbador --- 1pc

Transistor NPN --- 1 pieza

Resistencias 6k8 --- 14 piezas, 500R --- 1 pieza, 20R (10Rx2) --- 1 pieza, 4k7 --- 1 pieza

Fuente de alimentación para el proyecto (usé batería de litio)

Tira de LED 5050 y un interruptor deslizante (opcional)

Paso 1: ¡Conecte el circuito

¡Conecte el circuito!
¡Conecte el circuito!

Dividiré este paso en:

1) La parte del timbre

2) El panel LED

3) El interruptor (pulsador)

4) tira de LED

5) El sensor de capacitancia

6) fuente de alimentación

7) Conéctelos todos a Arduino

La mayoría de las veces, esto es solo un paso de "seguir el esquema". ¡Así que mira el esquema de arriba o incluso descárgalo e imprímelo!

Paso 2: preparación de la pieza del zumbador

Preparación de la pieza del zumbador
Preparación de la pieza del zumbador
Preparación de la pieza del zumbador
Preparación de la pieza del zumbador
Preparación de la pieza del zumbador
Preparación de la pieza del zumbador

Si ha usado zumbador con Arduino antes, sabrá que si lo conectamos directamente a Arduino no será lo suficientemente alto. Entonces necesitamos un amplificador. Para construir el amplificador, necesitamos un transistor NPN (básicamente cualquier NPN funcionará, usé S9013 porque lo obtuve de un proyecto anterior) y alguna resistencia para limitar la corriente. Para comenzar, primero identifique el colector, el emisor y la base del transistor. Un poco de búsqueda en Google de la hoja de datos funcionará para esto. Luego, suelde el colector del transistor al terminal negativo del zumbador. En el terminal positivo del zumbador, simplemente le soldamos un trozo de cable para poder soldarlo a nuestro Arduino más tarde. Después de esto, suelde la resistencia 500R (o cualquier resistencia de valor similar) a la base del transistor y, de la resistencia, suelde otro trozo de cable para uso futuro. Finalmente, suelde las dos resistencias 10R en serie al emisor del transistor y conecte otro cable de las resistencias.

Realmente, consulte el esquema.

p / s: todavía no sé cómo elegir la resistencia para el transistor en el momento de escribir esto. El valor que utilicé se selecciona empíricamente.

Paso 3: preparación del panel LED

Preparación del panel LED
Preparación del panel LED
Preparación del panel LED
Preparación del panel LED
Preparación del panel LED
Preparación del panel LED

Conecte los LED y la resistencia en la placa de creación de prototipos en consecuencia y suelde. Eso es todo. Siga el esquema. En caso de que le interese el espaciado que utilicé, con 3 orificios de separación para cada columna y dos orificios de separación para cada fila (consulte la imagen). ¿Y el LED indicador? Lo conecté al azar.

Después de soldar los LED y la resistencia a la placa, conecte todos los terminales positivos de los LED juntos. Luego, suelde los cables uno por uno a cada una de las resistencias en los terminales negativos de los LED para que podamos soldarlos a Arduino más tarde.

NOTA: Es posible que se confunda este paso. Recuerde que en lugar de conectar toda la tierra, conectamos todos los terminales positivos juntos y los terminales negativos al pin individual en Arduino. Por lo tanto, estamos usando el pin Arduino GPIO como tierra, no Vcc. En caso de que accidentalmente lo conecte al revés, no se preocupe. Puede modificar todos los valores de ALTO a BAJO y de BAJO a ALTO en la función de control de led.

Paso 4: preparación del interruptor (botón pulsador en realidad)

Preparación del interruptor (botón pulsador en realidad)
Preparación del interruptor (botón pulsador en realidad)
Preparación del interruptor (botón pulsador en realidad)
Preparación del interruptor (botón pulsador en realidad)
Preparación del interruptor (botón pulsador en realidad)
Preparación del interruptor (botón pulsador en realidad)

Para el interruptor (lo llamaré interruptor porque usé microinterruptor, pero sabes que es un botón), necesitamos una resistencia desplegable de 4k7 y, por supuesto, el interruptor en sí. Ah, no olvides preparar algunos cables. Comience soldando la resistencia y un trozo de cable a la tierra común (COM) del microinterruptor. Luego, suelde otro trozo de cable al normalmente abierto (NO) del microinterruptor. Finalmente, conecte otro cable a la resistencia. Asegúrelo con un poco de pegamento caliente.

Rincón del conocimiento: ¿Por qué necesitamos una resistencia desplegable?

"Si desconecta el pin de E / S digital de todo, el LED puede parpadear de forma errática. Esto se debe a que la entrada está" flotando ", es decir, devolverá aleatoriamente ALTO o BAJO. Por eso necesita un pull-up o resistencia pull-down en el circuito ". - Fuente: sitio web de Arduino

Paso 5: preparación de la tira de LED

Preparación de la tira de LED
Preparación de la tira de LED
Preparación de la tira de LED
Preparación de la tira de LED

La tira de LED es para la lámpara de lado de la cama, que es opcional. Simplemente conecte la tira de LED y el interruptor deslizante juntos en serie, nada especial.

Paso 6: preparación del sensor de capacitancia

Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia
Preparación del sensor de capacitancia

Ok, consulte la imagen. Básicamente, solo vamos a unir el cable a un pequeño trozo de papel de aluminio (porque el papel de aluminio no se puede soldar) y luego pegarlo con cinta adhesiva en un pequeño trozo de placa de montaje. Amable recordatorio, asegúrese de no pegar completamente el papel de aluminio. Deje una parte expuesta para el contacto directo.

Paso 7: preparación de la fuente de alimentación

Preparación de la fuente de alimentación
Preparación de la fuente de alimentación
Preparación de la fuente de alimentación
Preparación de la fuente de alimentación
Preparación de la fuente de alimentación
Preparación de la fuente de alimentación

Como utilicé una batería de litio como fuente de alimentación, necesito un módulo TP4056 para cargar y proteger, y un convertidor de refuerzo para convertir el voltaje a 9v. Si decidió utilizar un adaptador de pared de 9 V, es posible que necesite un conector de CC o simplemente conéctelo directamente. Tenga en cuenta que el valor de la resistencia para el amplificador está diseñado para 9 V y si desea utilizar otro voltaje, es posible que deba cambiar la resistencia.

Paso 8: conectándolos a Arduino

Conectándolos a Arduino
Conectándolos a Arduino
Conectándolos a Arduino
Conectándolos a Arduino
Conectándolos a Arduino
Conectándolos a Arduino

¡Sigue el esquema! ¡Sigue el esquema! ¡Sigue el esquema!

No conectes el pin incorrecto o las cosas se pondrán raras.

Paso 9: Recinto

Recinto
Recinto
Recinto
Recinto
Recinto
Recinto
Recinto
Recinto

La dimensión de mi diseño es de 6,5 cm * 6,5 cm * 8 cm, por lo que es un poco voluminoso. Consiste en una ventana frontal para pantalla LED y una ventana superior para la lámpara de noche. Para mi diseño, consulte las imágenes.

Paso 10: ¡Tiempo de programación

Image
Image
¡Tiempo de programación!
¡Tiempo de programación!

Descargue mi boceto a continuación y cárguelo en su Arduino. Si no sabe cómo hacer esto, ¡no se moleste en hacer este proyecto! No, es una broma, aquí hay un buen tutorial al respecto: Sube un boceto a arduino

Luego, abra el monitor en serie y debería ver que muestra la hora actual. Para establecer la hora, aquí se explica cómo hacerlo.

Para configurar la hora: h, XX - donde xx es la hora actual

Para configurar los minutos: min, XX - xx es el minuto actual

Para configurar el segundo: s, XX

Para configurar la fecha: d, XX

Para configurar el mes: lun, XX

Cuando se ejecuta el comentario anterior, debería devolverle el valor que acaba de establecer. (Por ejemplo, cuando configura la hora con h, 15, debería devolver Hora: 15 en el monitor de serie.

Para el sensor de capacitancia, es posible que deba calibrarlo antes de que funcione. Para hacer esto, presione el microinterruptor dos veces y observe el monitor en serie. Debería generar un montón de números. Ahora ponga su dedo en el sensor de capacitancia y observe el rango del número. A continuación, modifique la variable "captrigger". Digamos que obtiene 20-30 cuando se presiona, luego establece el gatillo de activación en 20.

El boceto usa la biblioteca ADCTouch, asegúrese de haberlo instalado.

Paso 11: Mecanismo correctivo

El período de tiempo para el mecanismo correctivo en mi código se establece en el que sea preciso para mí. Si la hora aún no es precisa, debe cambiar el valor de la variable "corrdur"

El corrdur ahora está predeterminado a 0 en la última actualización.

El valor de corrdur significa cuántos milisegundos se tarda en desacelerar un segundo

Para averiguar el valor de corrdur, use la fórmula:

2000 / (y-x) / x)

donde x = duración real del tiempo transcurrido e y = duración del tiempo transcurrido del reloj, ambos en segundos

Para encontrar el valor de xey, necesitas hacer un pequeño experimento.

Ajuste la hora del reloj a la hora real y registre la hora inicial (la hora inicial real y la hora inicial del reloj deben ser la misma). Después de un tiempo (unas horas), registre la hora real final y la hora final del reloj.

x = tiempo final real-tiempo inicial ey = tiempo final del reloj-tiempo inicial

Luego, cambie el valor de corrdur en el código y vuelva a cargarlo en Arduino.

Luego repita la prueba y esta vez la fórmula cambió a:

2000 / ((2 / z) + (y-x / x))

Donde xey es lo mismo que antes, mientras que z es el valor de corrdur actual.

Sube de nuevo y haz la prueba una y otra vez hasta que sea lo suficientemente precisa para ti.

En caso de que su reloj aún se esté acelerando, incluso corrdur está configurado en 0 (significa que no hay mecanismo correctivo), debe cambiar el segundo ++ a segundo, en la parte del mecanismo correctivo del código (lo comenté), establezca corrdur en 0, luego busque el no. de milisegundos que se tarda en acelerar un segundo.

Paso 12: Cómo utilizar todas las funciones

Image
Image

Puede cambiar el modo presionando el microinterruptor.

En el primer modo, simplemente muestra la hora. Si la luz indicadora parpadea 1 vez por segundo, la alarma está apagada. Si 2 veces por segundo, la alarma está activada. Puede posponer la alarma durante 10 minutos en el primer modo presionando el sensor de capacitancia.

En el segundo modo, muestra la fecha. Presionar el sensor de capacitancia no hace nada.

En el tercer modo, puede configurar el temporizador. Al presionar el sensor de capacitancia se encenderá el temporizador y debería ver que la luz indicadora comienza a parpadear. El sensor de capacitancia también se usa para configurar el tiempo del temporizador. El rango del temporizador es de 1 minuto a 59 minutos.

En el cuarto modo, puede configurar la hora de la alarma mediante el sensor de capacitancia

En el quinto modo, puede configurar los minutos de alarma mediante el sensor de capacitancia.

En el sexto modo, al presionar el sensor de capacitancia se restablecerá el minuto a 30 y el segundo a 0 sin cambiar la hora. Eso significa que siempre que su reloj no se desvíe más de 30 minutos, puede recalibrarlo usando este modo.

El séptimo modo es el modo de no hacer nada en caso de que el sensor de capacitancia falle durante la carga.

Oh, para descartar la alarma, simplemente presione el microinterruptor. (ÚLTIMA ACTUALIZACIÓN INCLUYE ALARM SNOOZE)

Bueno, ¿qué tal leer el reloj? ¡Es fácil! Lectura del reloj binario - Wikihow ¡Puede que te sientas raro al principio, pero te acostumbrarás!

Paso 13: Conclusión

Conclusión
Conclusión
Conclusión
Conclusión

Por qué comencé este proyecto. Inicialmente es porque tengo un reloj digital viejo que está por ahí y quiero convertirlo en un despertador. Desafortunadamente, el viejo reloj resultó estar roto. Entonces pensé por qué no construir uno usando Arduino. Con un poco de búsqueda en Google, encontré este proyecto de reloj binario sin RTC en instructable por Cello62. Sin embargo, no tiene la función de despertador que quiero, así que tomo el código y lo modifico yo mismo. Y nace el proyecto. Además, vi el concurso de relojes funcionando en instructable recientemente, lo que me motivó aún más para hacer esto. De todos modos, este sigue siendo mi primer proyecto con Arduino, así que hay un montón de posibles mejoras.

Mejora futura:

1) Utilice RTC

2) ¡Configure la alarma, la hora o el temporizador de forma inalámbrica!

3) Cualquiera que sea la característica que piense

Paso 14: Actualización: después de una semana de uso

Actualización: después de una semana de uso
Actualización: después de una semana de uso
Actualización: después de una semana de uso
Actualización: después de una semana de uso
Actualización: después de una semana de uso
Actualización: después de una semana de uso

Aparte del problema obvio: la desviación del tiempo, el siguiente, diría, es el consumo de energía. Primero, paso el voltaje a 9v, que luego será reducido por el regulador lineal en Arduino. El regulador lineal es muy ineficaz. El reloj solo dura UN DÍA. Eso significa que tengo que recargarlo todos los días. Ese no es el problema más importante hasta que se da cuenta de que todo el sistema tiene solo un 50% de eficiencia. Dado que mi batería es de 2000 mAh, podría calcular la energía desperdiciada todos los días.

Energía desperdiciada = (7.4Wh * 10%) + (7.4Wh * 90% * 50%) = 4.07Wh al día

¡Eso es 1,486 kWh por año! ¿Eso se puede usar para hervir, eh, 283 g de agua (de 25 C a 100 C)? Pero de todos modos, voy a mejorar la eficiencia del reloj. La forma de hacer esto es no usar el regulador lineal en absoluto. Eso significa que tenemos que ajustar el convertidor de refuerzo para generar 5 V directamente en el pin de 5 V en Arduino. A continuación, para minimizar aún más el desperdicio de energía, tengo que quitar los dos LED integrados (pin 13 y alimentación), ya que desperdiciarán 0,95 Wh por día. Desafortunadamente, soy un novato en la soldadura SMD, por lo que la única forma de hacerlo es cortar el riel en la placa. Después de esto, tengo que quitar la resistencia del emisor en el zumbador y la lámpara de noche (la tira de LED no funciona a 5V). ¿Pero eso significa que tienes que renunciar a esa característica asombrosa? ¡No! Tiene dos opciones aquí: use el diodo LED normal de 5 mm o use una tira de LED de 5V. Pero para mí, ya me sentía cansado de hacer este proyecto durante toda la semana pasada, así que decidí renunciar a esta función. Sin embargo, usé el interruptor originalmente para la función de luz para encender o apagar el panel del reloj para ahorrar más energía, pero el LED termina parpadeando cuando lo apago. ¿Bug convertido en característica? No lo sé (cualquiera lo sabe, por favor dímelo a continuación).

¡Al final de la modificación, el reloj ahora dura más de 2 días!

A continuación, tengo un problema menos grave con el reloj. Durante la carga, el sensor de capacitancia se volvería loco, así que agrego otro modo que no hace nada.

En cuanto a la desviación del tiempo, dado que es muy inconveniente enchufarlo a la computadora todos los días para restablecerlo, he agregado otro modo que establecerá el minuto en 30 y el segundo en 0. ¡Eso significa que puede restablecerlo a la mitad de cualquier hora!

Recomendado: