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

Your email address will not be published.

*



(Spamcheck Enabled)