Reloj en Tiempo Real

 

Un reloj en tiempo real (RTC, por sus siglas en inglés "Real-Time Clock") es un dispositivo electrónico que proporciona la hora y la fecha actuales de manera precisa y confiable. Los RTCs son utilizados en una amplia variedad de aplicaciones donde se requiere una gestión precisa del tiempo, como sistemas de control de acceso, dispositivos médicos, registradores de datos o sistemas de seguridad. Estos dispositivos son capaces de mantener un seguimiento preciso del tiempo durante largos períodos, incluso cuando el dispositivo principal está inactivo lo que los convierte en componentes esenciales en muchos sistemas electrónicos.

El ESP32 incluye un RTC (Real-Time Clock) interno integrado en el chip. Utiliza un oscilador de baja frecuencia para mantener el tiempo. Este oscilador es capaz de funcionar con muy bajo consumo de energía, una de las interesantes características que ofrece este microcontrolador. Es capaz de proporcionar información sobre la hora y la fecha, sin embargo se resetea cuando quitamos la alimentación del ESP32.

Para utilizar el RTC interno del ESP32 se puede hacer uso de la librería ESP32Time que implementa varias funciones para configurar y obtener los datos del reloj. Esta librería hay que buscarla con el Gestor de Librerías del Arduino IDE (Aparece como ESP32Time by fbiego).

Las funciones más comunes se muestran a continuación:


FunciónDescripción
ESP32Time miRtc;Crea un objeto llamado miRtc de tipo ESP32Time que nos permite acceder a las funciones de la librería. Esto debe hacerse antes del Setup().
miRtc.setTime(s, m, h, D, M, A);
miRtc.setTime(epoch);
Configura la hora del RTC interno según los parámetros dados. Se puede pasar la fecha y la hora segmentada como se muestra (s: segundos, m: minutos, h: horas, D: día, M: mes y A: año, todos con números enteros) o utilizar una cadena Epoch.
miRtc.getTime();Devuelve la hora actual del RTC interno como un String.
Ejemplo: "15:24:38".
miRtc.getDate(formato);
Devuelve la fecha actual del RTC interno como un String. El argumento booleano formato es opcional, puede dejarse en blanco.
Si formato no se incluye, ejemplo de respuesta: "Sun, Jan 17 2021".
Si formato se incluye con valor true, ejemplo de respuesta: "Sunday, January 17 2021".
miRtc.getYear();Devuelve el año actual del RTC interno como un int.
Ejemplo: 2024.
miRtc.getMonth();Devuelve el mes actual del RTC interno como un int (de 0 a 11).
Ejemplo: 0 (Enero).
miRtc.getDay();Devuelve el día actual del RTC interno como un int (de 1 a 31).
Ejemplo: 13.
miRtc.getHour(formato);Devuelve la hora actual del RTC interno como un int. El argumento booleano formato es opcional, puede dejarse en blanco.
Si formato no se incluye, la respuesta estará entre 1 y 12.
Si formato se incluye con valor true, la respuesta estará entre 0 y 23.
miRtc.getMinute();Devuelve el minuto actual del RTC interno como un int (de 0 a 59).
Ejemplo: 25.
miRtc.getSecond():Devuelve el segundo actual del RTC interno como un int (de 0 a 59).
Ejemplo: 48.
miRtc.getMillis();Devuelve los milisegundos actuales del RTC interno como un unsigned long.
Ejemplo: 959.
miRtc.getMicros();Devuelve los microsegundos actuales del RTC interno como un unsigned long.
Ejemplo: 959645.
Vistas
0 Número de vistas
0 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.