プロジェクト2 ブリージングLED

1. 説明

ArduinoのブリージングLEDは、オンボードのプログラム可能なPWMを利用してアナログ波形を出力します。電源を入れると、波形のデューティサイクルを調整することでLEDの明るさを変化させ、最終的にブリージングLEDの効果を実現します。

この方法により、時間経過に伴ってLEDの明るさを変化させることで環境光をシミュレートできます。また、ブリージングLEDはカラフルなミニライトとして、落ち着いた暖かい雰囲気を作り出すことができます。

2. PWMとは?

PWMはデジタル手段でアナログ出力を制御するもので、波形のデューティサイクル(高レベルと低レベルが周期的に切り替わる信号)を調整できます。

Arduinoの場合、電圧出力のデジタルポートはLOWとHIGHで、それぞれ0Vと5Vに対応します。一般的にLOWを0、HIGHを1と定義します。Arduinoは1秒間に500回の0または1の信号を出力します。もしそれらがすべて「1」であれば5Vが出力されます。逆にすべて0なら0Vが出力されます。あるいは0101010101…のように交互であれば、平均出力は2.5Vになります。

つまり、0と1の出力比率が電圧値に影響し、単位時間あたりに出力される0と1の信号が多いほど制御はより正確になります。

3. 配線図

4. テストコード

「for」文を使って変数を0から255まで増加させ、その変数をPWM出力(analogWrite(pin, value))として定義します。なお、遅延時間を設けることでLEDの点灯時間の制御を強化できます。次に、別の「for」文で255から0まで減少させ、遅延時間を設けてLEDの減光プロセスを制御します。

  1. 2つのコードブロックをドラッグします。

  1. 「変数」パートから以下のブロックをドラッグし、名前を「item」、初期値を「0」に設定します。このブロックを「ずっと」ブロック内に入れます。

  1. 「制御」パートから以下のブロックをドラッグし、繰り返し回数をPWMの最大値である255に設定します。

  1. 「変数」パートから以下のブロックをドラッグし、変更対象を「item」、モードを「++」に設定します。

  1. 「LED」パートから以下のブロックをドラッグし、LEDピンをIO5に設定します。さらに「変数」ブロックを追加し、空欄に「item」を入力します。

  1. 「制御」パートから以下のブロックをドラッグし、時間を0.01秒(10ms)に設定します。

  1. これまでの手順に従い、変数モードが「– –」だけ異なるもう一つのコードブロックを作成します。

完成コード:

5. テスト結果

コードをアップロードすると、LEDが徐々に暗くなり、均等に「呼吸」しているように見えます。

6. コード説明

  1. このブロックは変数の使用範囲、変数の種類、名前、初期値を設定するためのものです。

  1. この繰り返しブロックの空欄に繰り返し回数を指定できます。

  1. 空欄に変数名を入力すると、コード実行ごとにその値が1ずつ増加します。「++」は「– –」に変更可能です。

  1. 空欄に変数名を入力すると、コード実行ごとにその値が1ずつ減少します。「– –」は「++」に変更可能です。

  1. これはPWM出力モジュールで、白いボックスが出力PWMの値を示します。