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 IDEのシリアルモニタで確認しても同じ結果になります。
以上です。最後までお読みいただきありがとうございます。