Arduinoでシリアル通信をしてみよう ~ Arduino LV3 ~
ArduinoはUSBケーブルでパソコンと接続しているが、簡単にシリアル通信が出来る。
Arduinoはもともとシリアル通信機能を搭載している。それをUSB-シリアル変換用のAVR(ATmega8U2)を搭載する事によりUSBデバイスでの開発を可能としているのだ。
とまあ、ちょっと難しい話はこれぐらいにして、以下のミッションをこなしLVアップしよう!
勇者Arduinoは、スライムを倒し、順調にLVアップしている。
そんな彼の前に、見たこともない敵が現れた!
町の人に聞いた事がある、ドラキーだっ!
画面上は真っ赤になっており、あなたはしにましたとか、レベルも1になっているが、ネットから拾って貼り付けているのだからツジツマが合わないのはしょうがない。
大志を抱いている勇者Arduinoにとってはネットの画像だからとか、そんなチッポケな事は気にしていられない。そんな事より今、目の前に迫っている怪物を倒す事に専念せよ!
バトル 開始っ!!
ではさっそくスケッチ(プログラム)を書く。
①ArduinoをUSBケーブルで接続して、Arduino解凍フォルダにあるarduino.exeを実行する。
② ファイル>新規ファイル で新しいファイルを作り以下のスケッチを書こう。
// 変数の定義 #define LED_PIN 13 // 初期化 void setup(){ pinMode(LED_PIN, OUTPUT); // シリアルポートを9600 bps[ビット/秒]で初期化 Serial.begin(9600); } // 繰り返し処理 void loop(){ int inputchar; // シリアルポートより1文字読み込む inputchar = Serial.read(); if(inputchar != -1 ){ // 読み込んだデータが -1 以外の場合 以下の処理を行う switch(inputchar){ case 'o': // 読み込みデータが o の場合 Serial.print("LED ON\n"); digitalWrite(LED_PIN, HIGH); break; case 'p': // 読み込みデータが p の場合 Serial.print("LED OFF\n"); digitalWrite(LED_PIN, LOW); break; } } else { // 読み込むデータが無い場合は何もしない } }
③スケッチを書いたら検証(コンパイル)して、Arduinoボードに転送しよう。
※転送が完了してもLEDは消灯したままだが、あせっちゃいけない。スケッチの内容からすると、現在setup()を完了しており、loop()処理を実行している状態だ。loop内では、シリアルデータで読み込んだデータが、o だったらLEDを点灯、p だったら消灯だ。
④シリアルモニターを起動してArduinoのLEDを点滅させる。
ツール>シリアルモニタ より シリアルモニタを起動する。
入力エリアに o と入れて送信ボタンをクリックすると、LEDが点灯し、モニターにLED ONと表示される。
入力エリアに p と入れて送信ボタンをクリックすると、LEDが消灯し、モニターにLED OFFと表示される。
Leave a comment