LEDの点滅周期を変える

~if文以外の条件処理を学ぶ~


const int ledpin = 13;
int counter = 0;
void setup(){
pinMode(ledpin,OUTPUT);
}
void loop(){
for(counter = 100; counter <= 1000; counter += 100){
digitalWrite(ledpin,HIGH);
delay(counter);
digitalWrite(ledpin,LOW);
delay(counter);
   }
counter = 100;
while(counter <= 1000){
digitalWrite(ledpin,HIGH);
delay(counter);
digitalWrite(ledpin,LOW);
delay(counter);
counter += 100;
   }
counter = 100;
do{
digitalWrite(ledpin,HIGH);
delay(counter);
digitalWrite(ledpin,LOW);
delay(counter);
counter += 100;
} while(counter <= 1000);
}

新出したものを解説していきます

新出したものを解説していきます
2     int counter = 0;
厳密には新出ではありませんが今までの変数には”const”がついて定数化されていました。
今回の”counter”変数は定数化されていませんのでプログラムの途中で値を変更することができます。
7        for(counter = 100; counter <= 1000; counter += 100){
12      }
“for”は(初期化式; 条件式; 変化式){…}というように記述します。
“for”はカウントアップ・ダウンなどによく使います。
他の条件処理文でもできるものですが初期化、条件式、変化式を一度に指定できるので大変便利です。
13      counter = 100;
プログラミングにおける”=”は等しいという意味ではなく、左辺に右辺を代入するという意味です。
19         counter += 100;
“+=”は右辺に(代入前の)右辺+左辺を代入します。
14      while(counter <= 1000){ 
20      } 
“while”は(条件式)のみ記述します。if文との相違点は、条件式がtrueだった場合に中身を実行してから再び先頭に戻るということです。
22      do{ 
28      } while(counter <= 1000); 
“do”は殆ど“while”と同じです。ただtrueかfalseか評価するタイミングが中身を実行してからなので、“do”は必ず一回は中身が実行されます。
因みにこのプログラムでは100msから段々とLEDの点滅間隔が長くなっていき1000msまで達すると100msに戻ります。


まとめ

for

for(/*初期化式*/;/*条件式*/;/*変化式*/){
//主に初期化式で指定した変数を使った文を書きます
//変化した変数が条件式に当てはまる間ループし続けます
}

while

while(/*評価式*/){
//評価式がtrueの場合ループし続けます
//文の初めで評価します
}

do

do{
//評価式がtrueの場合ループし続けます
//文の終わりで評価します
}while(/*評価式*/);

其の参はこれで終わりです。ありがとうございました。

前回

ホームページ

サイトマップ