Libreria time no funciona

tengo un problema con mi codigo si copilo y cargo solo el minuto funciona bien pero cuando agrego los segundos ya no funciona

#include <TimeLib.h>

void setup () {
Serial.begin(9600);
setTime(20,0,0,19,3,2021);
pinMode(13,OUTPUT);
}

void loop () {
time_t t = now();
if ( minute(t) == 01 && second(t) == 11){
digitalWrite(13,HIGH);
}
else if(minute(t)==02){
digitalWrite(13,LOW);
}
delay(3000);
}

publicaci√≥n movida en el foro en espa√Īol
usar inglés al publicar en los foros generales

@colatronik La librería funciona, lo que no funciona es tu código (al menos el ejemplo que has MAL subido).

Por favor edita tu post, selecciona todo el código y pulsa </> en la barra del editor.

Veamos tu código, si pones un delay de 3 segundos (en los que el procesador virtualmente se detiene), vas a poder controlar el tiempo solo cada 3 segundos, a saber: 0; 3; 6; 9; 12; 15... razón por la cual salteas (y no puedes detectar en la comparación) el segundo 11.

Saludos

1 Like

Muchas gracias tomare eso en cuanta entonces que recomendarías??? Soy nuevo y la idea es usar el código para 49 días

Moderador:
Lee las Normas del foro y edita tu código usando etiquetas de código.
Ve a edición, luego selecciona todo el error que has publicado, lo cortas y click en </>


No entiendo como dos personas te hacen observaciones y solo respodes por lo que te interesa.
En el foro, hay normas y primero debes cumpliarlas y luego si hacer tus consultas.
Ahora sin mas demoras por favor edita tu post.

Aprende a usar millis() y no delay como bien te dijo @gatul .
En la sección Documentacion y Tutoriales hay buenos ejemplos de cómo usarlo.

Que hagas el favor de postear de acuerdo a las Normas, entiende que es para tu beneficio.

Respecto a los 49 d√≠as, no se que decirte, yo hago programas para que duren 100 a√Īos... :crazy_face:

Considerando que sos nuevo y solo para aplicar en este código y ver que se puede hacer funcionar (hasta que aprendas a usar millis()), reduce el delay a 1000 así comparas cada 1 segundo (en lugar de cada 3) y no se te pierde ninguno en medio de la espera.
Pero ojo, ten en cuenta que durante ese segundo no vas a poder hacer otra cosa (como leer un botón) por eso te aclaro que es solo para que veas que este código puede ser funcional con una simple modificación.

Saludos