Tabla de contenido:

Reloj de matriz Arduino: 6 pasos
Reloj de matriz Arduino: 6 pasos

Video: Reloj de matriz Arduino: 6 pasos

Video: Reloj de matriz Arduino: 6 pasos
Video: Arduino desde cero en Español - Capítulo 38 - Reloj de Tiempo Real (RTC) DS3231 bus I2C 2024, Noviembre
Anonim
Reloj Matriz Arduino
Reloj Matriz Arduino

Descripción:

Construya su reloj usando un Arduino, una pantalla de matriz y un módulo de reloj en tiempo real (RTC). Este es un proyecto simple y divertido que creo que es ideal para principiantes. El reloj utiliza el módulo RTC para realizar un seguimiento preciso del tiempo, así como del día, mes y año. Además, el módulo tiene un sensor de temperatura incorporado. Puede obtener más información sobre el módulo DS3231 aquí, así como sobre el bus de comunicación I2C utilizado aquí. Por último, utilizaremos una pantalla de matriz de puntos para, por supuesto, mostrar la hora, el día de la semana, el mes, etc. Puede obtener más información sobre la pantalla aquí y el controlador IC MAX7219 en la hoja de datos a continuación.

También puede descargar la versión pdf de este proyecto aquí. Es prácticamente lo mismo que este instructable.

[ACTUALIZACIÓN: 22/02/19] No use la guía en pdf, he actualizado este instructivo pero esos cambios aún no se reflejan en el pdf.

Paso 1: Reúna los componentes

Los componentes que necesitará para este proyecto:

  • Pantalla de matriz de puntos Max7219 [Compre aquí] [Hoja de datos]
  • RTC DS3231 [Compre aquí] [Hoja de datos]
  • Batería 3V CR3032 (para DS3231)

Además, necesitará un Arduino de cualquier tipo (preferiblemente un Nano para minimizar el tamaño del proyecto), una placa de pruebas, cables de puente y el IDE de Arduino instalado en su PC.

Paso 2: Bibliotecas

Bibliotecas
Bibliotecas

Descargue las siguientes bibliotecas e instale el archivo.zip en el IDE de Arduino yendo a Sketch> Incluir biblioteca> Agregar biblioteca. Zip

NOTA: ¡¡¡LAS VERSIONES IMPORTAN !

* Verifique que tenga las versiones correctas antes de descargar. Recomendaría descargar cada biblioteca dentro del IDE de Arduino para estar seguro.

MD_Parola 3.0.1:

MD_MAX72XX 3.0.2:

DS3231 1.0.2:

Alternativamente, En el IDE de Arduino, vaya a Sketch> Incluir biblioteca> Administrar bibliotecas y en la barra de búsqueda escriba: "MAX72XX" y debería ver lo siguiente (Ver imagen):

Instale solo MD_MAX72XX y MD_Parola. NO se necesita MD_MAXPanel.

Paso 3: Prueba de sus componentes

Después de instalar las bibliotecas, pruebe sus componentes individualmente para asegurarse de que funcionan como deberían. Siga estos pasos antes de conectar todo

Para probar el módulo DS3231 RTC, conecte el DS3231 al Arduino (consulte Cableado a continuación). Luego, en el IDE de Arduino, vaya a Archivos> Ejemplos> DS3231> DS3231_Test y cargue el boceto. Abra Serial Monitor y verifique que esté obteniendo la fecha, hora, día, etc. correctos.

Para probar la pantalla de matriz, primero conéctela al Arduino (consulte Cableado a continuación). A continuación, en el IDE de Arduino, vaya a Archivos> Ejemplos> MD_Parola> Parola_HelloWorld y cargue el boceto. Debería ver HOLA impreso en la pantalla y puede o no estar impreso al revés. Si el texto está al revés, debe cambiar la siguiente línea:

#define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW

Para

#define HARDWARE_TYPE MD_MAX72XX:: FC16_HW

Vuelva a cargar el boceto y el problema se resolverá.

Ahora que hemos probado nuestros componentes, ¡estamos listos para conectar todo!

Paso 4: cableado

Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado

Consulte el diagrama o esquema o tabla

Paso 5: CÓDIGO

Obtén el código aquí

Nota: Usé un código originalmente de Electronic Projects pero lo modifiqué para admitir las bibliotecas actuales (en el momento de la finalización).

Funciones del reloj:

El reloj se configura automáticamente para indicar la hora en formato de 24 horas, pero se puede cambiar fácilmente a 12 horas. El reloj también mostrará la temperatura (tanto en grados Celsius como en Fahrenheit). También incluí una función llamada 'Modo de suspensión' que está configurada en "APAGADO" (consulte el Modo de suspensión a continuación para obtener más detalles).

Formato de 12 horas: para configurar el reloj para que indique la hora en formato de 12 horas, tendrá que comentar la línea 88

hora = Clock.gethour (h12, PM); // Formato de 24 horas

Y descomente las líneas 93 a 100

if (Clock.getHour (h12, PM)> = 13 || Clock.getHour (h12, PM) == 0)

{h = Clock.getHour (12, PM) - 12; } else {h = Clock.getHour (h12, PM); }

Modo de sueño:

Esta es una característica que ayuda a reducir el brillo del reloj, especialmente durante las horas en las que estamos dormidos. No creo que quieras despertarte en medio de la noche y cegado por este reloj. Es muy brillante incluso cuando está en la configuración más baja. Para habilitar el modo de suspensión, descomente las líneas 177 a 184

if (h == 12 || h <8) // Intervalos de tiempo (en este caso, de 12 a. m. a 8 a. m.) {P.setIntensity (0); // Establece el brillo de la pantalla en el valor más bajo} else {P.setIntensity (6); // Establece el brillo de la pantalla en 6 (15 es el más brillante)}

Nota: Me he encontrado con un problema al usar el modo de suspensión mientras el reloj está configurado en el modo de 12 horas. Notarás que se ejecutará dos veces al día, ya que las 8 a. M. Y las 8 p. M. Se interpretan como 8. Por lo tanto, si configuras el modo de suspensión para que esté activo de 9 p. M. A 7 a. M., También estará activo de 9 a. M. A 7 p. M. SIN EMBARGO, este problema no ocurre si el reloj está configurado en modo de 24 horas.

Paso 6: Conclusión

¡¡¡Felicitaciones!!! Tienes un reloj en funcionamiento. Así resultó el mío [Galería del reloj]. Espero que no solo haya aprendido un poco más sobre componentes y codificación, sino que haya disfrutado del viaje para llegar allí. Comparta conmigo sus pensamientos sobre esta guía en [email protected]. De hecho, esta es mi primera guía de proyectos y espero que les haya servido bien. Espero crear muchas más guías. Además, si tiene alguna pregunta, sugerencia o mejora en el proyecto, no dude en enviarme un mensaje.

Recomendado: