
ArduinoIDEのシリアルモニタ/プロッタの使い方を使用サンプルと一緒に簡単にまとめておきます。
概要
ArduinoIDEにはシリアル通信でデバックできる機能が搭載されてます。プログラムのデバッグや、取得したセンサー値の表示などちょっとした確認が簡単に可能。シリアルモニタは文字列(数値)表示、シリアルプロッタはグラフ表示で使用できます。
順にサンプルソースとともに使い方を見ていきます。
シリアルモニタ
シリアル通信を使用して文字列(数値)を表示してくれる機能です。使い方も簡単なのでさくっとサンプルソースで実際に使ってみます。
サンプルスケッチ(送信)
まずはArduinoからの情報を受け取ってシリアルモニタに表示してみます。
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("LED:");
Serial.println("ON");
delay(500);
}
シリアル送信しているだけのスケッチ、ボーレートは適当。.println
は改行コード付きで、Serial.print("ON\n");
と記述しても同様です。このスケッチをArduinoに書き込んでそのままPCと接続しておきます。

書き込みが完了後、IDE右上にある「虫眼鏡」?のようなアイコンをクリックしたらシリアルモニタが開始されます。

IDE下側、「シリアルモニタ」タブでArduinoからの送信文字列が確認できます。次に送受信を試してみます。
サンプルスケッチ(送受信)
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("LED:");
Serial.print("ON\n");
if (Serial.available() > 0) {
if (Serial.read() == 's') Serial.println("LED:OFF");
}
delay(500);
}
PCからの文字列受信をポーリング監視。受け取った文字列が「s」ならば「LED:OFF」を表示しています。

メッセージ送信ボックスで「s」を入力して「enter」で送信。シリアルモニタに「LED:OFF」が表示されたら成功です。PCなどからArduinoを制御することも可能になるのでいろいろ工作の幅が広がります。
シリアルプロッタ
次にシリアルプロッタを使ってみます。シリアルプロッタはリアルタイムのグラフ表示の機能になります。使い方はシリアルモニタとほぼ同じです。こちらもサンプルスケッチで使い方を見てみます。
サンプルスケッチ
int16_t deg;
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(sin(deg * PI / 180.0));
deg == 360 - 6 ? deg = 0 : deg += 6;
delay(50);
}
ArduinoでSIN関数を計算してシリアル送信しているスケッチです。これをArduinoに書き込んでそのままPCと接続しておきます。

シリアルプロッタはモニタの隣にある信号モニタのようなボタンです。クリックするとシリアルプロッタが開始されます。当然このスケッチでシリアルモニタも可能です。

このような形でリアルタイムでグラフ表示してくれます。センサー値などを確認するときにかなり便利です。次に複数のグラフ表示してみます。
サンプルスケッチ(複数プロッタ)
カンマ区切りで送信することで複数同時にプロッタできます。
int16_t deg;
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("sin0:");
Serial.print(sin(deg * PI / 180.0));
Serial.print(",");
Serial.print("sin120:");
Serial.print(sin((deg + 120) * PI / 180.0));
Serial.print(",");
Serial.print("sin240:");
Serial.print(sin((deg+240) * PI / 180.0));
Serial.print("\n");
deg == 360 - 6 ? deg = 0 : deg += 6;
delay(50);
}
120度ずつ位相をずらしたSINグラフを3本シリアル送信してます。カンマ区切りで系列ごとに複数値をグラフ表示することができます。Arduinoに書き込んでシリアルプロットで見てみます。

上部に系列ごとチェックボックスで表示/非表示を切り替えることができます。Arduinoから取得したセンサー値などを確認するときに簡単に確認できるので便利です。
シリアルモニタ/プロッタともにちょっとした確認するときにほんとによく使用してます。
コメント