Edited at

ArduinoIDEのシリアルプロッタで2個以上のデータを表示させる

More than 1 year has passed since last update.


ArduinoIDEのシリアルプロッタってご存じですか?

Arduino 1.6.6 あたりでつかされた機能だそうで、数字をシリアルで流すと、そのグラフを書いてくれる機能です。グラフのスケールもある程度自動的に変更してくれるので、とりあえずセンサーで計測した数字をリアルタイムに見たいって時にとても便利!

こんな感じにグラフが表示されます。

シリアルプロット1つ.png


1個のデータのグラフを書く方法

簡単でシリアル通信で「数字(改行)」を送るだけです。たとえばこんなスケッチです。

このスケッチで、先のグラフを描いています。


serial-plot1.ino

double angle = 0;

void setup() {
Serial.begin(250000);
}

void loop() {
angle++;
Serial.print(sin(angle / 180 * PI));
Serial.println("");
delay(50);
}


Arduino UNOに書き込んで、「ツール」→「シリアルプロッタ」を選択します。

serialプロッタ.png

シリアルプロット1つ.png


2個のデータのグラフを書く方法


serial-plot2.ino

double angle = 0;

void setup() {
Serial.begin(250000);
}

void loop() {
angle++;
Serial.print(sin(angle / 180 * PI));
Serial.print(",");
Serial.print(sin(angle + 30 / 180 * PI));
Serial.println("");
delay(50);
}


こんな感じで、カンマ区切りでデータを送信すると・・・

シリアルプロット2つ.png

2つのグラフが同時に書けます。

右上にある凡例?は左から順に色が割り振られています。

第1項目:青

第2項目:オレンジ


もうおわかりでしょうが、3個のデータのグラフを書く方法


serial-plot3.ino

double angle = 0;

void setup() {
Serial.begin(250000);
}

void loop() {
angle++;
Serial.print(sin(angle / 180 * PI));
Serial.print(",");
Serial.print(sin(angle + 30 / 180 * PI));
Serial.print(",");
Serial.print(2 * cos(angle / 180 * PI));
Serial.println("");
delay(50);
}


シリアルプロット3つ.png

こんな感じで、3つめの項目が赤色でプロットされています。

Y軸のスケールが一つしかないことに注意が必要ですが(1万付近をウロチョロするデータと、0付近をウロチョロするデータを一緒に書くと直線にしか見えないとか・・・)、簡単にセンサーの値を確認することができたりしますので是非活用してはいかがでしょうか。

最後まで読んでいただき、ありがとうございました。