PR

【マイクロビット】LEDの明るさを連続的に変える

ブログ

LEDの明るさを制御する方法は?

こうした悩みを解決します。

立プロ

新卒でメーカーに入り、10年間組み込みの現場で設計を行う。
今は個人事業主として自作の組み込み機器開発や、エージェント様に紹介いただき業務委託を行っています。
C,C#,JavaScript, Vue, PHP, VBA, GAS, Kotlinなど、扱う言語が増えゆく日々。

立プロをフォローする

はじめに

こんな感じでハートがキュンキュンするプログラムを作ります!

microbitやるならこのキットが断然オススメ!

これからmicrobit本体を購入するならケーブルや電池ボックスもそろったこちらをどうぞ

LEDの明るさを連続的に変えるプログラム

作りたいプログラム:

LED全点灯させておき、明るさを0に設定(=消灯)
最小から最大まで少しずつ明るくします。
最大まで到達したら、今度は少しずつ暗くしていきます
最小まで到達したら、今度は少しずつ明るくしていきます
以降、これを繰り返します

はじめにコードを示します。

ソースコードを共有しているので、自分のmicrobitに書き込んで動作を確認してみましょう!

LEDの明るさを連続的に変えるプログラム
...

動作説明

初期化(最初だけ)

はじめに”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となっています。
・変数で明るさを制御して、最大値以上で暗く、最小値以下で明るくなるよう動作します。

microbitやるならこのキットが断然オススメ!

これからmicrobit本体を購入するならケーブルや電池ボックスもそろったこちらをどうぞ

コメント

タイトルとURLをコピーしました