Всем привет, после подключения библиотеки сдФАТ. поскольку стандартная библиотека не хочет сохранять файл в папке, с сдфат начал зависать весь скетч, всегда на втором проходе, Код (C++): int IRMS[3]; choose=0; int voltage[3]; clock.read(); // сохраняем текущее время, дату и день недели в переменные // clock.getTimeStamp(time, date, weekDay); char s[16]; strcpy(s, "15.11.2014");//data если часы установлены) // выводим в serial порт текущее время, дату и день недели download++; download1++; Serial.println(download); Serial.println(s); for(int i=0;i<3;i++) { // perform measurements emon[i].calcVI(20,100); // 2 h.c. for buffering + 14 h.c. for measuring IRMS[i]=emon[i].Irms; //extract Vrms into Variable voltage[i]= emon[i].Vrms; // convert and pack data } digitalWrite(PIN_direction_TX_RX, HIGH);//Термопары delay(1); Serial.println('R'); delay(10); digitalWrite(PIN_direction_TX_RX, LOW); int i=0; if(Serial.available()){delay(100); while( Serial.available() && i< 21) {temp1[i++] = Serial.read();} temp1[i++]='\0';} if(i>0) { digitalWrite(PIN_direction_TX_RX, LOW); // читаем данные с порт delay(10); // Выводим что приняли с других устройств } digitalWrite(PIN_direction_TX_RX, HIGH);//Утечки delay(1); Serial.println('L'); delay(10); digitalWrite(PIN_direction_TX_RX, LOW); int k=0; if(Serial.available()){delay(100); while( Serial.available() && k< 21) {leak[k++] = Serial.read();} leak[k++]='\0';} if(k>0) { digitalWrite(PIN_direction_TX_RX, LOW); // читаем данные с порт delay(10); // Выводим что приняли с других устройств } digitalWrite(PIN_direction_TX_RX, HIGH);// Датчики воды delay(1); Serial.println('A'); delay(10); digitalWrite(PIN_direction_TX_RX, LOW); int j=0; if(Serial.available()){delay(100); while( Serial.available() && j< 51) {SensWater1[i++] = Serial.read();} SensWater1[i++]='\0';} if(i>0) { digitalWrite(PIN_direction_TX_RX, LOW); // читаем данные с порт delay(10); // Выводим что приняли с других устройств } dataString = String(time); dataString += " "; dataString += String(date); dataString += " "; dataString += String(voltage[0]); dataString += " "; dataString += String(voltage[1]); dataString += " "; dataString += String(voltage[2]); dataString += " "; dataString += String(abs(IRMS[0])); dataString += " "; dataString += String(abs(IRMS[1])); dataString += " "; dataString += String(abs(IRMS[2])); WaterString = String(time); WaterString += " "; WaterString += String(date); WaterString += " "; WaterString += String(SensWater1); TempString = String(time); TempString += " "; TempString += String(date); TempString += " "; TempString += " 5555reft"; //TempString += temp1; // создаём файл для записи sprintf(buf, "%s%c%c%s%s%c%s" ,"metropolis/",s[0],s[1], month[atoi(&s[3])-1], &s[8],'P',".txt"); //P-power electro choose=1; Serial.println(buf); Serial.println(dataString); delay(100); saveSD(); if(download>30)// установка времени передачи файла { if(doFTP()) { Serial.println(F("FTP OK")); download=0; } else Serial.println(F("FTP FAIL")); } choose=2; Serial.println(TempString); sprintf(buf, "%s%c%c%s%s%c%s" ,"metropolis/",s[0],s[1], month[atoi(&s[3])-1], &s[8],'R',".txt"); //R-refrigerators delay(100); saveSD(); if(download1>60)// установка времени передачи файла { if(doFTP()) { Serial.println(F("FTP OK")); download1=0; } else Serial.println(F("FTP FAIL")); } Код (C++): void saveSD() { //s адресует день, &s[3] - начало месяца, &s[8] - начало последних цифр года //strcpy(DateChanged,buf); File dataFile = SD.open(buf, FILE_WRITE); // создаём файл для записи //dataFile = SD.open(buf, FILE_WRITE); // если файл доступен для записи if (dataFile) { // сохраняем данные if(choose==1) { dataFile.println(dataString); dataFile.close(); } else if(choose==2) { dataFile.println(TempString); dataFile.close(); } else if(choose==3) { dataFile.println(CritErrorVOLT); dataFile.close(); } else if(choose==4) { dataFile.println(CritErrorAMP); dataFile.close(); } else if(choose==5) { dataFile.println(leak); dataFile.close(); } } else { // если файл не доступен Serial.print("Error opening "); Serial.println(buf); } delay(100); }