渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。

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


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

必要なもの

  • Arduino UNO
  • ブレッドボード
  • 配線ケーブル
  • 抵抗
  • LED

環境

  • Arduino 1.8.9
  • macOS Mojave 10.14.5

f:id:esakun:20190819234712p:plain

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が流れます。

今回作ったもの


明滅が滑らかなアニメーションになりました。

ソースコード

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

参考

Arduino - Fade