ArduinoIDEのシリアルモニタとシリアルプロッタ

シリアルモニタ正弦波表示

ArduinoIDEではデバッグツールとしてプログラム内の変数の値をPCに表示することができるシリアルモニタという機能があります。また、シリアルプロッタという機能を使えばその変数の値をグラフ表示することもできます。使い方はArduinoIDEのヘルプからSerial MonitorまたはSerial Plotterで検索するとマニュアルが出てきます。

目次

シリアルモニタの使い方

ソースプログラムの中で表示させたい変数を関数Serial.println(変数名)で出力します。M5StackからUSB経由でPCに値を送信され、Arduino IDEのシリアルモニタウィンドウに値が表示されます。表示方法は、ArduinoIDEのツールバーから、ツール>シリアルモニタを選択するとシリアルモニタのウインドウが表示されます。

ArduinoIDEのシリアルモニタのマニュアル:

https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-monitor

シリアルモニタ表示:

シリアルモニタ
シリアルモニタ

シリアルプロッタの使い方

ArduinoIDEで、ツール>シリアルプロッタを選択するとグラフのウィンドウが表示されます。シリアルモニタに出力した変数がグラフ表示されます。縦軸のスケールは値に合わせて自動的に調整されます。

  • 変数(ラベル)を表示したい場合・・・変数表示の直前で「ラベル:(コロン)」をprint出力します。
  • 複数の変数を表示したい場合・・・区切りとして「,(コンマ)」をprint出力します。

ArduinoIDEのシリアルプロッタのマニュアル:

https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-plotter

シリアルプロッタ表示:

シリアルプロッタ
シリアルプロッタ

ソースコード

上記のシリアルモニタ、シリアルプロッタのソースコードです。random1とrandom2の2つの変数にランダム関数から発生した値を入れてシリアルモニタ、シリアルプロッタにprint出力しています。

#include <M5Core2.h>

int random1;
int random2;

void setup() {
  M5.begin();
  Serial.begin(9600);//USB-serial

  M5.Lcd.clear();
  M5.Lcd.setCursor(0,0);
  M5.Lcd.setTextSize(2);
}

void loop() {
  
  random1 = random(0, 1000);//(min,max)
  random2 = random(1000, 2000);

  Serial.print("rand1:");//label
  Serial.print(random1);//value
  Serial.print(",");//delimiter
  Serial.print("rand2:");//label
  Serial.println(random2);//value+LF

  M5.Lcd.printf("rand1=%d  rand2=%d\n",random1,random2);//LCD
  delay(500);
}
Code language: C++ (cpp)

M5Core2のLCD表示:

まとめ

デバッグ時に変数の値を確認するためには、関数Serial.print()を追加するだけでArduinoIDEに表示することができます。また、そのままシリアルプロッタを起動すればグラフ表示ができます。

目次