プロジェクト2: LEDの明るさを調整する

(1)説明:

前回のレッスンでは、LEDのオン・オフを制御し、点滅させました。

このプロジェクトでは、PWMを通じてLEDの明るさを制御し、呼吸のような効果をシミュレートします。同様に、コード内のステップ長と遅延時間を変更することで、異なる呼吸エフェクトを実現することができます。

PWMは、デジタル手段によってアナログ出力を制御する方法です。デジタル制御を使用して、異なるデューティサイクルの矩形波(高レベルと低レベルを常に切り替える信号)を生成し、アナログ出力を制御します。

一般に、ポートの入力電圧は0Vと5Vです。3Vが必要な場合はどうでしょうか?または1V、3V、3.5Vの切り替えが必要な場合は?抵抗を絶えず変更することはできません。そのため、PWMを利用します。

Arduinoのデジタルポートの電圧出力には、LOWとHIGHレベルしかなく、それぞれ0Vと5Vの電圧出力に対応しています。LOWを「0」、HIGHを「1」と定義し、Arduinoが1秒間に500個の「0」または「1」を出力するようにすることができます。500個の「1」を出力すれば5V、すべて「0」であれば0V、250個の「01」パターンを出力すれば2.5Vになります。

このプロセスは映画の上映に例えることができます。私たちが見る映画は完全に連続しているわけではありません。実際には、1秒間に25枚の画像を生成していますが、人間の目にはそれがわかりません。そのため、私たちは連続したプロセスと誤解してしまいます。PWMも同様の仕組みで動作します。異なる電圧を出力するためには、0と1の比率を制御する必要があります。単位時間あたりに出力する「0」または「1」が多いほど、制御がより精密になります。

(2)パラメータ:

  • 制御インターフェース: デジタルポート3

  • 動作電圧: DC 3.3-5V

  • ピン間隔: 2.54mm

  • LED表示色: 黄色

(3)配線図

ArduinoのPWMピンは3、5、6、9、10、11に接続されています。ピン9はそのままにしてください。

(4)テストコード:

以下に示すように、ブロックをドラッグしてコードを編集することもできます。

完全なテストコード

(注意: コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用しており、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。)

(5)テスト結果

テストコードのアップロードに成功すると、LEDは明るいところから暗いところへと徐々に変化し、人間の呼吸のように、すぐにオン・オフするのではなく、ゆっくりと変化します。

(6)応用練習:

遅延の値を変更し、ピンはそのままにして、LEDがどのように変化するかを観察しましょう。

完全なテストコード

(注意: コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用しており、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。)

開発ボードにコードをアップロードすると、LEDがより遅くに点滅します。