Arduinoでシリアル通信をしてみよう その2 ~ Arduino LV3 ~
前回のスケッチに少し処理を追加して、”b”と入力されたら10回LEDを点滅して消灯する処理を作る。
点滅が終了するまでどんなデータが来ても処理はとめる事が出来ない。処理終了後は実施可能だぞ←ここがミソ
ドラキーを倒して経験値アップの勇者Arduino。
少し町から離れた場所を歩いていると、またもや見かけない怪物がっ!
んっ 何だかいつもと違う!?
体がLEGOで出来ているようだ! Google先生にお願いして画像を探したが、戦闘シーンの画像が見つからなかったからだ。人気が無いのかっ ゴースト。。
そんな事を言っていても戦いは始まる。
バトル開始っ!
①前回のスケッチを以下のように改良する。
// 変数の定義 #define LED_PIN 13 void blink10() { int i; for(i=0; i<10; i++){ digitalWrite(LED_PIN, HIGH); delay(200); digitalWrite(LED_PIN, LOW); delay(200); } } // 初期化 void setup(){ pinMode(LED_PIN, OUTPUT); // シリアルポートを9600bpsで初期化 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; case 'b': // 読み込みデータが b の場合 Serial.print("LED Blinking\n"); blink10(); } Serial.print("Ready\n"); } else { // 読み込むデータが無い場合は何もしない } }
② マイコンボードに書き込み、シリアルモニタを起動する。
③ b を入力して送信をクリックする。
10回点滅中は、モニター LED Blinking と表示され、o や p などの処理は受け付けない点に注目。 点滅終了後は、 Ready が表示されコマンド受け付け可能になっている。
出来たかな?
さてっ 次はLV4にアップだ!
Leave a comment