Arduino-フェージングLED
この例は、LEDをフェードオフする際のanalogWrite()関数の使用法を示しています。AnalogWriteは、パルス幅変調(PWM)を使用して、デジタルピンをオンとオフの比率を変えて非常にすばやくオン/オフし、フェード効果を作成します。
必要なコンポーネント
次のコンポーネントが必要になります-
- 1×ブレッドボード
- 1×ArduinoUno R3
- 1×LED
- 1×330Ω抵抗
- 2×ジャンパー
手順
回路図に従い、下の画像に示すようにブレッドボードにコンポーネントを接続します。
Note− LEDの極性を調べるには、LEDをよく見てください。電球の平らな端に向かって、2つの脚のうち短い方が、マイナス端子を示します。
抵抗器などのコンポーネントは、ブレッドボードソケットを適切に取り付けるために、端子を90°の角度に曲げる必要があります。端子を短くすることもできます。
スケッチ
コンピューターでArduinoIDEソフトウェアを開きます。Arduino言語でコーディングすると、回路が制御されます。[新規]をクリックして、新しいスケッチファイルを開きます。
Arduinoコード
/*
Fade
This example shows how to fade an LED on pin 9 using the analogWrite() function.
The analogWrite() function uses PWM, so if you want to change the pin you're using, be
sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with
a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/
int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(300);
}
注意すべきコード
ピン9をLEDピンとして宣言した後は、コードのsetup()関数で何もする必要はありません。コードのメインループで使用するanalogWrite()関数には、2つの引数が必要です。1つは関数に書き込むピンを指示し、もう1つは書き込むPWM値を示します。
LEDをフェードオフおよびフェードオンするには、PWM値を0(完全にオフ)から255(完全にオン)に徐々に増やしてから、0に戻し、サイクルを完了します。上記のスケッチでは、PWM値は明るさと呼ばれる変数を使用して設定されています。ループを通過するたびに、変数の値だけ増加しますfadeAmount。
明るさがその値のいずれかの極値(0または255)にある場合、fadeAmountは負に変更されます。つまり、fadeAmountが5の場合、-5に設定されます。-5の場合は、5に設定されます。次にループを通過するときに、この変更により、明るさも方向を変更します。
analogWrite()PWM値を非常に速く変更できるため、スケッチの最後の遅延がフェードの速度を制御します。遅延の値を変更してみて、フェード効果がどのように変化するかを確認してください。
結果
LEDの明るさが徐々に変化するはずです。