赤と緑それぞれのLEDの点滅周期を独立して変えてみます
この、課題を通して変数の使い方と簡単な条件分岐をマスターすることが目的です。
まずは、プログラムの目標を
「赤色LEDは1[s]周期で緑色LEDは5[s]周期で点滅すること」
としましょう
つまり
赤は500[ms]点灯したら500[ms]消灯
緑は2500[ms]点灯したら2500[ms]消灯
をそれぞれ繰り返すことになります。
だからといって、§2の最後に完成したプログラムを
void loop() {
digitalWrite(R_LED, HIGH);
delay(500);
digitalWrite(R_LED, LOW);
delay(500);
digitalWrite(G_LED, HIGH);
delay(2500);
digitalWrite(G_LED, LOW);
delay(2500);
}
のようにすればいい、なんてことは全くありません
こんなプログラムを組んだらどうなるかは
賢明な皆さんなら分るはずです
試しに、書き込んで試してみてください。
想像通りの動作をしましたか?
赤:点灯 緑:消灯 (500ms)
赤:消灯 緑:消灯 (500ms)
赤:消灯 緑:点灯 (2500ms)
赤:消灯 緑:消灯 (2500ms)
つまり、delayでただ時間を待っているだけでは
並列して複数のことを行わせる動作を実現できない
ということになります。
0 件のコメント:
コメントを投稿