pb sur l'enregistrement avec horodatatage

Il est vrai que j'ai pas fait ces codes mais en essayant de les assembler voila ce que ca m'a donné mais ca ne fonctionne pas :

#include <SD.h>
#include <SPI.h>
#include <Servo.h>
#include "RTClib.h"

Servo myservo;
File monFichier;
RTC_DS1307 rtc;

const int buttonPin = 2;
int buttonState = 0;

rtc(SDA, SCL);

void setup() {
    
  Serial.begin(9600);
Serial.println("Initialisation de la carte SD..");

  if (!SD.begin(4)) {
    Serial.println("L'initialisation de la carte SD a echoué !");
    return;
  }
  Serial.println("L'initialisation de la carte SD a reussie !");

      //monFichier = SD.open("test.csv", FILE_WRITE);
  myservo.attach(4);
  myservo.write(1);
  }
     rtc.begin();    

void loop() {
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {
    myservo.write(90);
    monFichier = SD.open("test.csv", FILE_WRITE);
    if (monFichier) {    
        Serial.println("En train d ecrire dans le fichier test.txt");
        monFichier.println("fontionel");
        monFichier.print(",");
        monFichier.print(rtc.getTimeStr());
        monFichier.close();
        Serial.println("Fait");
        //myFile.println(int(rtc.getTemp()));
       monFichier.close(); // close the file
    }
      else {
    Serial.println("Erreur lors de l'ouverture de test.csv");
    }
  }
  else{
    myservo.write(9);
     } 
}
  // if the file didn't open, print an error:
  else {
    Serial.println("Erreur lors de l'ouverture de test.csv");
  }
      //delay(3000);

Mais il se trouve que j'avais mal compris le sujet et il faut non pas que j'enregistre a chaque mouvement mais chaque fois que l'on appuie sur un bouton ce qui simplifie la chose je suppose, le probleme est que je ne connais pas la commande qui enregistre