LEDの明るさを制御する方法は?
こうした悩みを解決します。
はじめに
こんな感じでハートがキュンキュンするプログラムを作ります!
LEDの明るさを連続的に変えるプログラム
はじめにコードを示します。
ソースコードを共有しているので、自分のmicrobitに書き込んで動作を確認してみましょう!
動作説明
初期化(最初だけ)
はじめに”LED画面に表示”ブロックで、ハートのLEDを設定します。
続けて2行目で、明るさを0に設定します。
変数ブロックで「暗→明フラグ」を宣言し、3行目では初期値として真(=TRUE)にします。
「暗→明フラグ」は明るくするのか暗くするのかの状態を示す変数として宣言しており、TRUEで明るく、FALSEで暗くするということにしています。
繰り返し(ずっと)
予め変数として「明るさ変数」を宣言しておきます。
明るさはLEDの光の強さを表し、その範囲は0〜255となっています。
明るさに関する資料詳細は公式を参照ください。
明るくする
明るくする(暗→明フラグ == TRUE)なら、明るさ変数を現在値から4大きくします。
もし明るさ変数が最大値の255以上(明るさ≧ 255)になったら、暗→明フラグをFALSEにします。これ以降暗くなっていきます。
暗くする
暗くする(暗→明フラグ == FALSE)なら、明るさ変数を現在値から4小さくします。
もし明るさ変数が最小値の0以下(明るさ≦ 0)になったら、up=1にします。これ以降明るくしていきます。
課題
上図のコード例にはいくつか問題があります。
①明るさが0と255になりません。なぜですか。
②明るさを0と255で往復するにはプログラムをどのように変更すればよいですか。
③コード例のプログラムで明るく(暗く)していく時に、もし明るさ> 255(明るさ< 0)とした場合、動作はどうなりますか。
応用問題
まず下の動画をご覧ください。
・最も明るい時に音が鳴る
・ボタンAを押せば押すほどドキドキが速くなる
・ボタンBを押せば押すほどドキドキが遅くなる
・ボタンA+Bを押すとドキドキが最初の速度に戻る
さて、このプログラムはどのように作ればよいでしょうか。
まとめ
・明るさはLEDの光の強さを表し、その範囲は0〜255となっています。
・変数で明るさを制御して、最大値以上で暗く、最小値以下で明るくなるよう動作します。
コメント