Arduino-fading-led

提供:Dev Guides
移動先:案内検索

Arduino-フェージングLED

この例は、LEDをフェードオフする際にanalogWrite()関数を使用する方法を示しています。 AnalogWriteは、パルス幅変調(PWM)を使用して、デジタルピンをオンとオフの異なる比率で非常に迅速にオンとオフにし、フェージング効果を作成します。

必要なコンポーネント

次のコンポーネントが必要になります-

  • 1×ブレッドボード
  • 1×Arduino Uno R3
  • 1×LED
  • 1×330Ω抵抗
  • 2×ジャンパー

手順

以下の画像に示すように、回路図に従って、ブレッドボード上のコンポーネントを接続します。

ブレッドボード上のコンポーネント

-LEDの極性を調べるには、よく見てください。 電球の平らな端に向かう2本の脚のうち短い方がマイナス端子を示します。

LED

抵抗器などのコンポーネントは、ブレッドボードソケットに適切に適合するために、端子を90°の角度に曲げる必要があります。 端子を短く切断することもできます。

抵抗器

スケッチ

コンピューターでArduino IDEソフトウェアを開きます。 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の輝度が徐々に変化します。