Запись на SD-карту Arduino

У меня проблемы с моим Arduino. Я пытаюсь создать динамическое имя для моего файла и преобразовать его в массив символов, как я видел в некоторых постах на этом сайте.

Вот как я написал свою функцию:

void writeSD()
{
DateTime dt = RTC.now();

String temp = "DIVE";
temp += dt.day();
temp += dt.month();
temp += dt.year();
temp += ".txt";

Serial.println(temp);

char filename[temp.length()+1];
temp.toCharArray(filename, sizeof(filename));
myFile = SD.open(filename, FILE_WRITE);

if (myFile) {
Serial.print("Writing to txt file...");
myFile.print(dt.day(), DEC);
myFile.print('-');
myFile.print(dt.month(), DEC);
myFile.print('-');
myFile.print(dt.year(), DEC);
myFile.print(' ');
myFile.print(dt.hour(), DEC);
myFile.print(':');
myFile.print(dt.minute(), DEC);
myFile.print(':');
myFile.print(dt.second(), DEC);
myFile.println();
myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening txt file");
}
}

У меня только "error opening txt file" и я не знаю почему. Имя моего файла правильное и выглядит так, когда я печатаю его на консоли: DIVE652014.TXT

Заранее спасибо !

PS: извините за мой английский, это не мой родной язык

1

Решение

Я понял, почему это не сработало, когда прочитал более точную документацию о плате обсуждения SD от Adafruit:

Библиотека SD-карт не поддерживает «длинные имена файлов», такие как мы
использовал к. Вместо этого он использует формат 8.3 для имен файлов, поэтому сохраняйте файл
имена короткие! Например, IMAGE.JPG в порядке, а datalog.txt в порядке
«Мой файл журнала GPS.text» не является!

Таким образом, у меня было 10 символов, но он принимает только 8 символов в имени файла.

Спасибо за попытку помочь мне! 🙂

1

Другие решения


По вопросам рекламы [email protected]