### プロジェクト2: LEDの明るさを調整する #### **(1)説明:** 前回のレッスンでは、LEDのオン・オフを制御し、点滅させました。 このプロジェクトでは、PWMを通じてLEDの明るさを制御し、呼吸のような効果をシミュレートします。同様に、コード内のステップ長と遅延時間を変更することで、異なる呼吸エフェクトを実現することができます。 PWMは、デジタル手段によってアナログ出力を制御する方法です。デジタル制御を使用して、異なるデューティサイクルの矩形波(高レベルと低レベルを常に切り替える信号)を生成し、アナログ出力を制御します。 一般に、ポートの入力電圧は0Vと5Vです。3Vが必要な場合はどうでしょうか?または1V、3V、3.5Vの切り替えが必要な場合は?抵抗を絶えず変更することはできません。そのため、PWMを利用します。 ![](media/bbcfcb9ae56abb7e80ee587246fc4be9.GIF) 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)パラメータ:** ![](media/0ea85307e1317c25f2a8d92f25319aa8.png) - 制御インターフェース: デジタルポート3 - 動作電圧: DC 3.3-5V - ピン間隔: 2.54mm - LED表示色: 黄色 #### **(3)配線図** ArduinoのPWMピンは3、5、6、9、10、11に接続されています。ピン9はそのままにしてください。 ![](media/8ad54723c1d6149952c730217a1861cd.png) #### **(4)テストコード:** 以下に示すように、ブロックをドラッグしてコードを編集することもできます。 ![](media/de8ccd3cb6621f0eb89a8514a9fd8452.png) ![](media/659b8a45b8e8d271226d9a25034aedfd.png) ![](media/3157917e305c01f1920cf4d06aff4ff9.png) **完全なテストコード** (**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用しており、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。) ![](media/aaab53a06684ab078936ee61f9abcbb3.png) #### **(5)テスト結果** テストコードのアップロードに成功すると、LEDは明るいところから暗いところへと徐々に変化し、人間の呼吸のように、すぐにオン・オフするのではなく、ゆっくりと変化します。 #### **(6)応用練習:** 遅延の値を変更し、ピンはそのままにして、LEDがどのように変化するかを観察しましょう。 **完全なテストコード** (**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用しており、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。) ![](media/2ff0d71c2688d39695b760a1d0f76965.png) 開発ボードにコードをアップロードすると、LEDがより遅くに点滅します。