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