この記事では、Arduinoで文字列をカンマなどの区切り文字で分割する方法をソースコード付きで解説します。
文字列を区切り文字で分割
Arduinoには、文字列を区切り文字で分割するsplit関数がありませんので、自分で関数を書く必要があります。
ソースコード
サンプルプログラムのソースコードです。
実行結果
サンプルプログラムの実行結果です。
【シリアルモニターの表示】
on off on

【Arduino入門】サンプル集
このページでは、Arduinoで電子工作する方法やサンプルプログラム(ソースコード)を入門者向けに解説しています。
コメント
サンプルでは、setup()内で1回のみの実行ですが、
loop()内で、cmdが更新される度に実行させています。
cmdsに出力される値が、過去のcmdの値を引きずる症状が出ますが、
どうしたら良いでしょうか。
void loop(){
//cmd更新処理
// 分割数 = 分割処理(文字列, 区切り文字, 配列)
int index = split(cmd, ‘,’, cmds);
// 結果表示
for(int i = 0; i < index; i++){
Serial.println(cmds[i]);
}
解決済みかもしれませんけど一応。
サンプルプログラムの13行目
else dst[index] += tmp;
を
else dst[index] = tmp;
にすることで値の追加ではなく値の上書きになるのでこの症状は解消されると思います。