Actividad 4

 

Ejecutar tareas utilizando el RTC

Se utilizará en esta actividad el RTC del ESP32 para crear varias tareas programadas que se ejecutarán en diferentes momentos. El objetivo es, por un lado, encender un LED Rojo durante las horas pares del día, y, por otro lado, encender y apagar un LED Azul cada vez que se cambie de minuto. Para llevar a cabo este ejercicio, será necesario el siguiente material:


// Incluimos las librerías necesarias
#include <ESP32Time.h>

// Definir los pines de conexión de los LED
#define LEDROJO 27
#define LEDAZUL 26

// Crear instancia del objeto RTC del ESP32
ESP32Time rtc;

// Variable para almacenar el minuto anterior
int ultimoMinuto = 0;

void setup() {

    // Configurar fecha y hora en el RTC interno del ESP32
    rtc.setTime(0, 0, 8, 1, 1, 2024);

    // Configurar el modo de funcionamiento de los pines a utilizar
    pinMode(LEDROJO, OUTPUT);
    pinMode(LEDAZUL, OUTPUT);

    // Establecer el estado por defecto de los pines
    digitalWrite(LEDROJO, LOW);
    digitalWrite(LEDAZUL, LOW);

}

void loop() {

    // Obtener hora y minuto actual
    int hora = rtc.getHour(true);
    int minuto = rtc.getMinute();

    // Comprobamos la hora obtenida para encender el LED Rojo
    if(hora % 2 == 0) {

        digitalWrite(LEDROJO, HIGH);

    } else {

        digitalWrite(LEDROJO, LOW);

    }

    // Comprobamos el minuto obtenido para cambiar el estado del LED Azul
    if(minuto != ultimoMinuto) {

        int estadoActualDelLed = digitalRead(LEDAZUL);
        digitalWrite(LEDAZUL, !estadoActualDelLed);
        ultimoMinuto = minuto;

    }

    // Espera de 1 segundo antes de volver a comprobar
    delay(1000);

}
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.