こんにちは、エンジニアのオオバです。

ArduinoIDEに付属しているスケッチ例を、今まであまり見てきませんでした。
先日試しにチラ見した所、とても勉強になったので、改めて気になったものを1つ1つ確認していこうと思います。

→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら

必要なもの

Arduino LEDをジワジワと明るく暗くを繰り返させてみる_0

LEDをチカチカさせる時、明るい暗いを単純にON/OFFさせるだけならdigitalWriteメソッドを使って以下のように書きます。

/**  
 * 0.1秒ごとにLEDがチカチカする  
 */  
void loop()  
{
    digitalWrite(ledPin, HIGH);  
    delay(100);  
    digitalWrite(ledPin, LOW);  
    delay(100);  
}

1つのLEDの明るさを滑らかにアニメーションさせる場合はanalogWriteメソッドを使用します。

analogWriteメソッドで明るさを変化させる

digitalWriteメソッドは0(LOW)と1(HIGH)を切り替えますが、analogWriteメソッドは0〜255の256段階の変化をさせることができます。

これは、流れる電圧の大きさを変化させており、例えばanalogWirte(128)とすると、5V * 128/256 = 2.5Vが流れます。

今回作ったもの

Arduino LEDをジワジワと明るく暗くを繰り返すサンプル - YouTube
明滅が滑らかなアニメーションになりました。

ソースコード

0.15秒単位で、2ずつLEDの明るさがアニメーションするサンプルです。

FadeLed.ino · GitHub

オススメ記事
検証環境
参考サイト