Arduino

Arduino UnoとTeratermでシリアル通信

Arduinoとシリアル通信。Teraterm使用

ArduinoとパソコンはUSBで接続しますが、実際はArduino側でUSBをRS232Cに変換しマイコンと接続しています。

パソコン側でArduinoの状態を確認する際は、Arduino IDE上のシリアルモニタで状態を確認しているかと思います。

この記事では、Arduino IDEからではなく、Teratermを使ってパソコンとArduinoをシリアル通信させてみます。

Arduinoのシリアル通信の基本

そもそも、「Arduino IDEのシリアルモニタは使っているけど、パソコンとはシリアル通信しているの?USBケーブル繋いでいるだけだけど・・・?」と疑問を持たれる方がおられるかもしれません。

一般的にパソコンと機器をシリアル通信で接続する際は、USB-シリアル変換ケーブルを介します。
ArduinoではUSBケーブルを直接パソコンからArduinoへ接続するだけでシリアル通信が出来てしまいます。

なぜでしょうか?

実は、Arduinoの基板上に、USBをシリアル通信の電気信号に変換するATMEGA16U2というチップ(※Arduino互換機ではCH340Gの場合もあり)が存在します。
このチップがUSB信号をシリアル通信に変換し、そして変換された信号がArduinoのマイコンのシリアル通信端子につながっています。

Arduino基板上にUSBをシリアルに変化するチップがあるため、パソコンとUSBを繋ぐだけでもパソコンとArduinoのマイコンとはシリアル通信で繋がっています。

ArduinoとパソコンをTeratermでシリアル通信するには?

特別なことは不要です。

Arduino IDEのシリアルモニタに何か表示させるスケッチの場合、Teratermでも同じように表示されることになります。
実際にやってみましょう。

作成するArduinoスケッチ

2秒ごとにHello, world?と出力するシンプルなプログラムを作成し、Arduinoへ書き込みます。
ボーレートは9600bpsとします。

//シリアル通信でHello, world出力, 2秒ごと
void setup(){
  Serial.begin(9600);
}

void loop(){ // run over and over
  Serial.println("Hello, world?");
  delay(2000);
}

Teratemで結果確認

早速Teratermでシリアル通信します。
Teratermを立ち上げ、下のようにシリアル通信でArduinoが接続されているCOMポートを選択します。
ボーレートはArduinoのスケッチと合わせ9600bpsとする必要があります。
TeraTerm_Arduino

Teratermでの出力結果

下のアニメーションのような出力結果になります。
なお、Arduino IDEのシリアルモニタで確認しても同じ結果になります。

Teraterm_Arduinoシリアルモニタ

以上です。最後までお読みいただきありがとうございます。

-Arduino