Buenas tardes.
Primeramente, les agradezco a todos por su amable colaboración. En el siguiente código lo que quiero es que se ejecute un código "x" de lunes a sábado y de 06:30 - 20:00 horas, lo de los días ya lo tengo resuelto, sin embargo, me está matando el horario de 06:30, si yo tuviera un horario de las 06:00 - 20:00 horas no hay problema, es la bendita media hora que me tiene que no se cómo hacerle, a continuación les remito parte del código:
#include <RTClib.h>
#include <LiquidCrystal.h>
#include <Wire.h>
RTC_DS3231 rtc; // Crea objeto del tipo RTC_DS3231
const int rs = 4, en = 5, d4 = 6, d5 = 7, d6 = 8, d7 = 9;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup () {
lcd.clear(); // Se limpia la pantalla primero
lcd.begin (16,2); // Inicializa el LCD, en este caso el LCD1602
if (! rtc.begin()) { // Si falla la inicializacion del modulo de reloj
lcd.setCursor (0,0); // Posiciona el cursor en la columna 0 fila 0
lcd.print("Modulo RTC"); // Muestra mensaje de error columna 1
lcd.setCursor (0,1); // Posiciona el cursor en la columna 0 fila 1
lcd.print("No encontrado!"); // Muestra mensje de error columna 2.
while (1); // Bucle infinito que detiene ejecucion del programa
}
//rtc.adjust(DateTime(2021,5,17,14,50,0)); // funcion que permite establecer fecha y horario
// Esta línea se usa solamente una vez, por esa razón está
} // Comentada.(Año, mes, día, hora, minutos, segundos)
void loop () {
DateTime fecha = rtc.now(); // Funcion que devuelve fecha y horario en formato
// DateTime y asigna a variable fecha.
if ((fecha.dayOfTheWeek() >= 1) && (fecha.dayOfTheWeek() < 7)){ // La venta trabaja de lunes a sábado
if (((fecha.hour() >= 6) && (fecha.minute() >=30))){ // Y en horario de las 06:00 - 20:00 horas
if (((fecha.hour() >= 7) && (fecha.hour() <20))){
[CODIGO.......]
}
}
}
A como pueden ver, el código solo funciona en cada hora de las 6 hasta las 20 en minutos despues o iguales a 30, osea que 06:01, 08:15, 15:29 no los muestra.
Muchas gracias!