どうも、なかしーです。
僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
Arduino IDEのツールタブにシリアルプロッタっていうのがあるんだけど、どんな機能なの?使い方を知りたいなぁ
という疑問を解決します。
Arduino IDEはArduinoでプログラミングを行うための開発環境で電子工作に役立つ機能がたくさんあります。
その機能の1つがシリアルプロッタです。
シリアルプロッタを使うとセンサのデータをグラフ化することができます。
シリアルモニタやLCDでもデータを表示することはできますが、データの変化を目視で確認したいときにシリアルプロッタが役立つと思います。
シリアルプロッタを使うとデータの変化が分かりやすい!
この記事では「Arduino IDEのシリアルプロッタの使い方」について解説します。
まだArduino IDEをインストールしていない方は「Arduinoの使い方【初期設定から動かすまでを一挙に紹介】」をご覧ください。
Arduinoの使い方【初期設定から動かすまでを一挙に紹介】Arduino IDEのシリアルプロッタの使い方
シリアルプロッタはArduino IDEのツールタブから開くかCtrl+Shift+Lの同時押しで開くことが出来ます。
Arduino IDEでシリアルプロッタを使うには、Arduinoのシリアル通信を使い、ルールに沿ってデータを送信する必要があります。
そのデータを送るときのルールを解説します。
表示したいデータが1個の場合
シリアルプロッタでデータを表示したいときはこのようにプログラミングします。
unsigned char data = 0; //送信するデータ
void setup() {
Serial.begin(9600); //ボーレートの設定
}
void loop() {
data++;
Serial.println(data); //データを送信
}
実行すると変数dataをひたすらインクリメントして、オーバーフローしたらゼロに戻るノコギリ波のようなグラフを表示します。
データの後に改行コードを送信すると、Arduino IDE側で次のデータとして処理してくれます。
次のようにプログラミングしても同じ結果が得られます。
Serial.print(data); //データを送信
Serial.print("\n"); //改行コードを送信
表示したいデータが2個以上の場合
データが2個以上の場合はデータの送り方が変わります。
unsigned char data_a = 0; //送信するデータA
unsigned char data_b = 0; //送信するデータB
void setup() {
Serial.begin(9600); //ボーレートの設定
}
void loop() {
data_a++;
data_b--;
Serial.print(data_a); //データAを送信
Serial.print(",");
Serial.println(data_b); //データBを送信
}
データを区切りたいところでカンマ(,)を送信してあげる必要があります。
データが一巡したところで改行コードを送信すると2個以上のデータを表示することが出来ます。
上のプログラムを実行するとこんな感じになります。
グラフの凡例を表示したい場合
実は赤枠で囲った部分に凡例を表示することが可能です。
凡例を表示する方法はデータの個数だけ文字列を送るだけです。
2個以上のデータを表示する場合のプログラムに凡例を追加するなら、次のようになります。
void setup() {
Serial.begin(9600); //ボーレートの設定
Serial.print("data_a"); //データAの凡例を送信
Serial.print(",");
Serial.println("data_b"); //データBの凡例を送信
}
このプログラムをコンパイルして実行すると
左上にdata_aとdata_bの凡例が表示されているのを確認できます。
シリアルプロッタを使う上で注意すること
Arduino IDEのシリアルプロッタを使う時に注意したいことは2つあります。
- シリアルプロッタのボーレート(通信速度)設定
- Y軸は1つしか表示されない
シリアルプロッタのボーレート(通信速度)設定
シリアルプロッタの左下にボーレートが表示されています。
(赤枠内の9600bps)
ここの設定とプログラムのシリアル通信の設定を合わせないとデータが表示されません。
void setup() {
Serial.begin(9600); //ボーレートの設定
}
Y軸は1つしか表示されない
シリアルプロッタは複数のデータをグラフ化できますが、Y軸は1つしか表示されません。
そのため、かけ離れた値のデータを表示すると小さい方が0として表示されているように見えるかもしれません。
その場合はシリアルモニタを使った方が良いと思います。
シリアルプロッタの利用例
Arduinoに加速度センサを繋いでX軸とY軸の傾きをシリアルプロッタに表示してみました!
加速度センサの使い方は「Arduinoで加速度センサを使う方法【傾きを検出できる】」もしくは下の動画を見てください。
Arduinoの使い方をYouTubeで解説しています!
>>エンジニアが教えるArduino入門シリーズを見る
Arduinoの人気記事
>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】
>>Arduinoをゼロから勉強する方法を紹介【参考書は不要】
>>Arduinoのプログラムの書き方【基本的なルールは4つある】
当ブログで人気のArduino入門キット