Fecha y hora con Arduino y módulo RTC DS1307

Si estás interesado en aprender sobre el uso de módulos de tiempo real (RTC) en proyectos de Arduino, ¡has llegado al lugar adecuado!

En esta entrada, te guiaré a través de la creación de un sencillo sistema de monitoreo de fecha y hora utilizando el popular módulo RTC DS1307 y la plataforma Arduino.

Materiales Necesarios

Antes de comenzar, asegúrate de tener todos los siguientes materiales a mano:

  • Arduino Uno
  • Módulo RTC DS1307
  • Cables de conexión
  • Ordenador con el software Arduino IDE instalado

Conexionado de los componentes

Comenzaremos conectando los componentes siguiendo un esquema de conexión claro y fácil de entender. Asegúrate de conectar los pines de forma correcta en el Arduino Uno. Una imagen detallada de la conexión se encuentra disponible en nuestro sitio web, lo que facilitará aún más el proceso.

Código y Explicación

A continuación, te proporciono el código necesario para el proyecto:

#include "RTClib.h"

RTC_DS1307 rtc;

char diasSemana[7][12] = {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"};

void setup () {
  // Inicia la comunicación serial a 9600 baudios.
  Serial.begin(9600);

  // Verifica si se puede iniciar la comunicación con el módulo RTC.
  if (!rtc.begin()) {
    Serial.println("No se encuentra el módulo RTC");
    Serial.flush();
    abort();
  }
}

void loop () {
  // Obtiene la fecha y hora actual del RTC.
  DateTime now = rtc.now();

  // Imprime la fecha y hora actual formateada en el Monitor Serie.
  Serial.print("Fecha actual: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  printDosDigitos(now.month());
  Serial.print('/');
  printDosDigitos(now.day());
  Serial.print(" (");
  Serial.print(diasSemana[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print("| Hora actual: ");
  printDosDigitos(now.hour());
  Serial.print(':');
  printDosDigitos(now.minute());
  Serial.print(':');
  printDosDigitos(now.second());
  Serial.println();

  // Espera 60 segundos antes de repetir el ciclo.
  delay(60000);
}

// Función para imprimir un número con dos dígitos, agregando un cero al inicio si es necesario.
void printDosDigitos(int numbero) {
  if (numbero < 10) {
    Serial.print("0");
  }
  Serial.print(numbero);
}

Puesta en marcha

  1. Asegúrate de que todas las conexiones estén realizadas correctamente según el diagrama de conexionado proporcionado.
  2. Abre el software Arduino IDE en tu ordenador.
  3. Copia y pega el código proporcionado arriba en un nuevo proyecto en Arduino IDE.
  4. Selecciona la placa Arduino que estás utilizando y el puerto COM correspondiente en la pestaña «Herramientas».
  5. Haz clic en el botón «Subir» para cargar el código en tu placa Arduino.

Después de cargar el código, abre el Monitor Serie (Ctrl+Shift+M) en Arduino IDE para ver la fecha y hora actual que se imprimirán con el formato deseado.

¡Felicidades! Ahora tienes un sistema funcional para monitorear y mostrar la fecha y la hora en tiempo real utilizando Arduino y el módulo RTC DS1307.

Este proyecto puede ser el punto de partida para aplicaciones más complejas que requieran seguimiento de tiempo y sincronización precisa. ¡Diviértete experimentando y mejorando este proyecto a medida que avanzas en tus habilidades de programación y electrónica!

Carrito de compra