Pls help me with my pluviometer

It not working

#include <string.h>
#include <Wire.h>
#include <virtuabotixRTC.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include <SPI.h>
#include <SD.h>

#define SSpin 10

File archivo;
virtuabotixRTC myRTC(6, 7, 8);
char fechastr[50];

const int buttonPin = 2; // the number of the pushbutton pin (Interrupcion del reed switch)
const int ledPin = 13; // the number of the LED pin
volatile int counter=0;
//////////////////////////////// SETUP ////////////////////////////////
void setup () {
pinMode(buttonPin, INPUT); // Ajusta buttonPin (pin 2) como una entrada.
attachInterrupt(digitalPinToInterrupt(buttonPin), countersub, FALLING);

Serial.begin(9600);

myRTC.setDS1302Time(00, 45, 15, 7, 9, 2, 2019);

if (!SD.begin(SSpin)) {
Serial.println("fallo en inicializacion !");
while(1);
}
Serial.println("inicializacion correcta");

lcd.init(); // Inicio del LCD (creacion del objeto)
lcd.backlight(); // Enciende la luz de fondo del LCD.
lcd.clear(); // Limpia el LCD.
}

// Rutina de la interrupcion que se ejecuta cuando la cuchara cambia de posicion.
void countersub(){
counter++; // Variable que acumula los cambios de la cuchara.
Serial.print(counter); // Escribe en el serial el valor de conteo para verificar que solo se haga una vez. (En version final se puede eliminar esto)
Serial.print("-"); //Escribe un guion para separar los conteos.
}

////////////////////////////////////// LOOP ////////////////////////////////////
void loop (){

myRTC.updateTime();

// Se imprime el resultado en el Monitor Serial
Serial.print("Fecha y hora actual: ");
Serial.print(myRTC.dayofmonth); // Se puede cambiar entre día y mes si se utiliza el sistema Americano
Serial.print("/");
Serial.print(myRTC.month);
Serial.print("/");
Serial.print(myRTC.year);
Serial.print(" ");
Serial.print(myRTC.hours);
Serial.print(":");
Serial.print(myRTC.minutes);
Serial.print(":");
Serial.println(myRTC.seconds);

// Un pequeño delay para no repetir y leer más facil
delay(1000);

if (myRTC.seconds()%30==0){ // Verifica que cuando los segundos sean 0 o 30 se escriba a la memoria SD
archivo = SD.open("DATOS.txt", FILE_WRITE); // apertura para lectura/escritura de archivo DATOS.TXT.
if (archivo) {
sprintf(fechastr,"%d/%d/%d - %2d:%2d:%2d , %d\n",myRTC.dayofmonth(),myRTC.month(),myRTC.year(),myRTC.hours(),myRTC.minutes(),myRTC.seconds(),counter); // crea un mensaje FECHA - HORA - CONTEOS (string)
archivo.print(fechastr); // escritura de una linea de texto en archivo
Serial.println();
Serial.print(fechastr); // texto en monitor serie
archivo.close(); // cierre del archivo
//Serial.println("escritura correcta"); // texto de escritura correcta en monitor serie
counter=0; // Reinicializa el contador.
delay(1000); // Espera un segundo para no escribir mas veces en la SD.
lcd.clear(); // Borra los datos en la LCD.
} else { // En caso de no poder abrir el archivo.
Serial.println("error en apertura de prueba.txt"); // texto de falla en apertura de archivo
delay(1000);
}
}

if (fecha.second()%5==0){ // Verifica que cada 5 segundos se haga la actualizacion de datos en el LCD.
lcd.setCursor(0,0); // Escribe la fecha en la linea 0 del LCD.
lcd.print("D:");
lcd.print(fecha.year(), DEC);
lcd.print("/");
lcd.print(fecha.month(), DEC);
lcd.print("/");
lcd.print(fecha.day(), DEC);
lcd.print(" C:"); // Escribe el valor de conteo actual en el LCD.
lcd.print(counter, DEC);
lcd.setCursor(0,1); // Escribe la hora en la linea 1 del LCD.
lcd.print("T: ");
lcd.print(fecha.hour(), DEC);
lcd.print(":");
lcd.print(fecha.minute(), DEC);
lcd.print(":");
lcd.print(fecha.second(), DEC);
}

delay(0); // La informaci¢n se actualiza cada 1 seg.

}

I'm not surprised, there is a smiley in your code :smiley: Please read How to use this forum. Please read, specifically point #7 about posting code. Next edit your post and add the code tags around your code.

"It not working" does not tell us anything.
1)
Does it cpmpile?
2)
What do you expect it to do?
3)
What does it not do that you expect it to do.

This is not an "Installation and Troubleshooting" question. I will ask a moderator to move it to an appropriate section.