1

一度に 1 つのファイルで Arduino にデータを記録したいと思います。ファイル名は、経過したミリ秒数 + ID の組み合わせにしたいと思います。たとえば、GPS データは millis()+"GPS" になります。

次のコードを試してみましたが、String. char 配列を使用できますが、長さは常に動的になります。どういうわけか文字列でこれを行う方法はありますか?

static void writeToSD()
{
    String logEntry = " GPS: ";
    logEntry += GPSString;
    String filename = String(millis());
    filename += "GPS";
    Serial.println(logEntry);
    Serial.println(filename);

    File dataFile = SD.open(filename, FILE_WRITE);

    // If the file is available, write to it:
    if (dataFile) {
        dataFile.println(logEntry);
        dataFile.close();
        Serial.println("Closed");
    }
    // If the file isn't open, pop up an error:
    else {
        Serial.println("error opening file");
    }
}
4

2 に答える 2

1

次のことを試すことができます

char fileNameCharArray[filename.length()];
filename.toCharArray(fileNameCharArray, filename.length())
File dataFile = SD.open(fileNameCharArray, FILE_WRITE);
于 2012-12-07T18:56:45.820 に答える
0
sprintf (filename, "%ld-GPS", millis());

Arduino での String の使用は、十分に文書化されたメモリ リーク/フラグメンテーションの問題のため推奨されないことに注意してください。

于 2012-12-07T19:07:31.917 に答える