Arduinoでシリアル通信をする ~Windows編~

更新:2019/12/07
はじめに
最近Arduinoを使う機会が増えてきたので、今回からArduinoを使ってWindows PCやRaspberry Piとシリアル通信をする方法の基礎を2記事に分けて紹介します。
第1回目の本記事では、ArduinoとWindows PCでシリアル通信をして見ます。



環境
シリアル通信を試すにあたって必要になる機器は、ArduinoとWindowsPC、そしてこの二つを接続するUSBケーブルです。

この記事では、
●ELEGOOのArduino UNO互換機
     
●Windows10 PC
上記を使って実験して行きます。

また、プログラムを組んだり、シリアルに電文を送るためにArduinoの統合開発環境である、Arduino IDEを利用します。 Arduino IDEのインストールがまだの場合、こちら の記事にインストーラのリンクなどがありますので参照してください。

やりたいこと
今回のプログラムは、Windows側から文字をArduinoに送信して、
「1」が入力された時、LEDをオン
「0」が入力された時、LEDをオフ
にするプログラムを作ります。

また、LEDを光らせるにあたって、13番ピンで制御できるArduino上についているLEDを利用しました。

実際にやってみる
//光らせるLEDのピン番号
#define LED_PIN 13

//入力された文字を入れる変数
char input_char;

void setup(){
	pinMode(LED_PIN, OUTPUT);
	Serial.begin(9600);
}

void loop(){
	//文字を受信した時、処理をする
	if(Serial.available() > 0){
		//文字列を読み込む
		input_char = Serial.read();

		//読み込んだ文字が「1」であった場合、シリアルモニタに「ON」をさせ、LEDを点灯させる
		if(input_char == '1'){
			Serial.println("ON");
			digitalWrite(LED_PIN, HIGH);

		//読み込んだ文字が「0」であった場合、シリアルモニタに「OFF」をさせ、LEDを消灯する
		}else if(input_char == '0'){
			Serial.println("OFF");
			digitalWrite(LED_PIN, LOW);
		}else{
			//入力された文字が「1」か「0」ではなかった場合何もしない
		}
	}
}

実行動画

おわりに
ArduinoとWindowsとのシリアル通信の紹介でした。次回は、ArduinoとRaspberry Piとのシリアル通信を紹介したと思います。

関連記事