Inconveniente con datalogger usando RTC DS1307, Memoria SD (Solucionado)

Bueno el codigo lo he forzado hasta registrando cada segundo en veces anteriores y no mostraba falsa interrupcion o quizas en las lineas que se perdia de las 288 ocurria una falsa interrupcion, aunque con el codigo con booleano como indico noter solo fueron solo 4 lineas con falsa interrupcion. Ahorita estoy forzando el codigo para que tambien envie los datos cada 5 minutos, y esta registrando y enviando los datos sin problema cada 5 minutos y por los momentos cero falsa interrupcion. Estoy usando booleano, (now.minute()%5)==0 y agregue el codigo para borrar cualquier interrupcion pendiente antes del arrachInterrupt y creo que quizas si desactivo la interrupcion justo despues del if que controla el tiempo de registro habra menos riesgo de falsa interrupcion. Ahora empezare a forzarlo a registrar cada minuto.

Explica un poco que es tu sensor? Si ya lo dijiste dime que post# porque no me acuerdo

Para el sensor ahorita estoy usando un pulsador, pero de forma definitiva sera el reed switch.

Un pulsador te esta dando interrupciones fallidas? No puedo creerlo!!
Como esta conectado ese interruptor?
Busca un esquema que lo describa o dibuja algo le tomas una foto y lo posteas debidamente.

Repito.. no podemos llevar 42 post con un tema que luce como simple y como de costumbre estamos obviando algo. Lo digo en tu beneficio no porque no se puedan tener 100 post. Yo busco que tu problema se resuelva como todos en el foro a la brevedad.

Ademas no entiendo para que quieres una interrupción para ver un pulsador.
Es un evento LENTO, que puedes controlar solo con millis() y un debounce sin usar interrupciones y sin estar sujeto a situaciones que no controlas.

Cada 5 min quieres saber el estado del pulsador. No hace falta una interrupcion.
El concepto de la interrupcion es para cosas que se registran a alta velocidad no al revés.

El pulsador esta conectado con PULL-UP porque la interrupción está definida x FALLING.
Una R conectada entre 5V y el pin que va a GND.

O sea de este modo, por favor confirma esto?

Exactamente asi esta configurado, con resistencia pull-up, pero ya aclare que el codigo esta perfecto ya realice pruebas en un protobard y registra sin problemas y cero falsa interrucion.

Considero que el problema esta en un codigo de envio de datos que le agregue o quizas en la PCB alguna interferencia pero dudo que un mosfet o un dispositivo inalambrico sea capaz de generar falsas interrupciones pero no lo descarto y la primera prueba que hice con el booleano tan solo ocurrieron de 1 a 2 falsas interrupciones en unos 4 registros de un total de 288 registros como se ve en el archivo .txt

Estoy haciendo otra prueba con bandera iniciada en true y solo deje el booleano con (minute()%5)==0, tambien agregue lo de limpiar interrupciones pendientes antes de volver a activar las interrupciones, ya en pocas horas verifico si esta registrando sin falsa interrupcion. Pero ya se puede dar por concluido el inconveniente en la memoria SD con la perdida de lineas y las falsas interrupciones, ya que estan siendo ocasionadas por el codigo de comunicacion o la PCB.

Como conclusion para evitar interrupciones fantasmas aplicar el codigo de la siguiente manera:

void Setup()
{
attachInterrupt(0, interrupcion_sensor, FALLING); //ultima linea del setup
}



void loop()
{
detachInterrupt(0);
EIFR |= (1 << INTF0); // borrar cualquier interrupcion pendiente         
booleano=true; // En caso de usar booleano 
attachInterrupt(0, interrupcion_sensor, FALLING);  
}