void initSD(){ retrieveFloatsFromEEPROM(); mainSystem.epsTemperature = EEPROMDATA[1]; mainSystem.targetTemperature = EEPROMDATA[0]; Serial.println(mainSystem.epsTemperature); Serial.println(mainSystem.targetTemperature); Serial.println("starting SD init"); if (!SD.begin(chipSelect)) { Serial.println("SD card initialization failed!"); // pas de carte SD - STOP COMPLET lcd.setCursor(0, 0); // Set cursor to first column of first row lcd.print("SD PAS DETECTEE!"); lcd.setCursor(0, 1); // Set cursor to first column of first row lcd.print("ERREUR FATALE!!"); while (true); // Halt execution } } void retrieveFloatsFromEEPROM() { int address = eepromStartAddress; for (int i = 0; i < sdN; i++) { byte floatBytes[sizeof(float)]; for (int j = 0; j < sizeof(float); j++) { float data = EEPROM.read(address++); if(isnan(data)){ data = 5; Serial.println("no data in EEPROM"); } floatBytes[j] = data; } EEPROMDATA[i] = *((float*)floatBytes); } Serial.println(EEPROMDATA[0]); Serial.println(EEPROMDATA[1]); Serial.println("!!!!!"); delay(2000); } void updateParaData(){ int st = eepromStartAddress; byte floatBytes[sizeof(float)]; Serial.println("lalala"); for (int i = 0; i < sdN; i++) { *((float*)floatBytes) = EEPROMDATA[i]; for (int j = 0; j < sizeof(float); j++) { EEPROM.update(st, floatBytes[j]); st++; Serial.println("writing"); Serial.println(floatBytes[j]); } } } void LogBook(){ Serial.println("attempting to open SD"); String dataString = ""; for (int i = 0; i < NCAPTEURS ; i++) { dataString += String(tabTemperature[i]); dataString += ","; dataString += String(tabHumidite[i]); if (i < NCAPTEURS-1){ dataString += ","; } } Serial.println("attempting to open SD"); File dataFile = SD.open("datalog.csv", FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.println(dataString); dataFile.close(); // print to the serial port too: Serial.println(dataString); } // if the file isn't open, pop up an error: else { Serial.println("error opening datalog.txt"); } }