Actividad 4
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:

Solución en C/C++
// 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 por correo
Por favor iniciar sesión para compartir esto webpage por correo.