csv形式でコマンドを書いてそれをArduinoでパースしたのでコードを共有します。パース部分はこちら(カンマ区切りのデータをarduinoのシリアルで受け取り配列に入れたい - Qiita)の記事を参考にParseElements関数に切り出しました。
呼び出し側のReadCommnadFromSD関数では改行コード毎にParseElements関数を呼び出す仕組みにしています。while文の中で必要な処理を書いてました。
void ReadCommandFromSD() { File myFile = SD.open("test.txt"); while (myFile.available()) { String source = myFile.readStringUntil('\n'); String elements[9]; ParseElements(source, elements, 9); } } void ParseElements(String sourceStr, String *elements, unsigned int elements_size){ int beginIndex = 0; for (int i = 0; i < elements_size; i++) { unsigned int endIndex; endIndex = sourceStr.indexOf(',', beginIndex); if (endIndex != -1) { elements[i] = sourceStr.substring(beginIndex, endIndex); beginIndex = endIndex + 1; } else { elements[i] = sourceStr.substring(beginIndex); break; } } }
サンディスク microSD 32GB UHS-I Class10 Nintendo Switch メーカー動作確認済 SanDisk Ultra SDSQUA4-032G-EPK エコパッケージ
- 発売日: 2020/11/01
- メディア: Personal Computers