みなさんこんにちわ、こんばんわ。

SAIです。

 

コードを作成して動作が変な時に、デバックしたいですよね?

 

Arduinoでもそうですが、簡単なデバックの手段としてログ出力があります。

そう、UARTでのSystemLogです。


 

①PCとESP32でシリアル通信(主に出力)

 

https://docs.arduino.cc/learn/communication/uart/

 

Arduino環境では、USBのシリアル通信に関しては、

「Serial」クラスで行えますが、Arduino環境で単純な Serial は予約語になっていますね。

 

これはESP32でも同様に使えるようです。

使い方は、

(1)Seriarl.bigin()で、通信速度を設定

(2)Serial.print()で、PCのシリアルモニタに文字出力

(3)Serial.println()で、PCのシリアルモニタに文字出力後に改行

(4)Serial.available()では、PCからESP32へ送信があったかを確認する

  戻りがTrueなら受信ありですね。

(5)(4)を確認して受信があった場合に、Serial.read()を呼び出すことで、PCからのデータを受信

  (4)と(5)はセットで使用するイメージですね。

 

とりあえず、

デバックで使用するのは「Serial.println()」が多いでしょうね。

 

②シリアルログを埋め込む

使い方は簡単

setup()関数では、「Seriarl.bigin(115200)」でボーレート115200で設定

 

出力したいところで、「Serial.println("aaa")」で出力したい文字を出力

ですね。

 

それでは、前回のLEDチカチカのコードにログを埋めてみましょう。

※記事の最後にコードを記載しておきますので、コピペする方はそこからコピペしてね。

 

 

③シリアルモニタに出力する

 

それでは、書き込んでシリアルモニタに出力しよう。

 

シリアルモニタを表示するには、

ツール → シリアルモニタ を選びます

 

ArduinoIDE1.8の時は別画面に表示されていたのですが、

ArduinoIDE2.3では、画面の下部に表示されるようになってますね。

 

そして、シリアルモニタのボーレートを設定した数値と合わせましょう。

 

 

ちなみに、

USBを使ってシリアル通信をしていますので、

書き込みしたCOMポートと合わせておく必要があります。

ご注意ください。

 

上の絵のように、LEDのチカチカと合わせてシリアルログが出力されました。

 

 

余談ですが、シリアルログを出力するためには通信するための時間を使います。

なので、

1HzのLEDチカチカの中にこんな処理を埋め込むと、1Hzの点灯/消灯の時間が遅れますね。

 

その点は注意しましょう。

 

それでは、シリアルログ出力はここまで。

(入力はまたいつか)

 

Topへ戻る↓

https://ameblo.jp/saiduke/entry-12881307216.html

 

 

 

 

今回使用したコード

------------------------------------------

const int CGPIO_LED_PIN = 2;

 

// 起動時初期設定 //

void setup() {

  //GPIOの初期設定

  pinMode(CGPIO_LED_PIN, OUTPUT);

 

  Serial.begin(115200);

  Serial.println("Start ESP32 ");

}

 

// ぐるぐるループ //

void loop() {

  //LED点灯 //

  digitalWrite(CGPIO_LED_PIN, HIGH);

  Serial.println("LED ON");

  delay(500);

  digitalWrite(CGPIO_LED_PIN, LOW);

  Serial.println("LED OFF");

  delay(500);

}