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とのシリアル通信を紹介したと思います。
関連記事