【Arduino】Lチカやってみた③
明るくなったり暗くなったり
今回はArduinoのスケッチ例から「fade」を使って動かしていきたいと思います。
これもLチカと呼んでいいのかな…?
まぁ、LEDが何かしら動作してればいいや😏
プログラム
//LEDを明るくしたり暗くする //intでそれぞれ定義する int led = 9; //LEDの初期値が9 int brightness = 0; //brightnessの初期値が0 int fadeAmount = 5; //fadeAmountの初期値が5 void setup() { //デジタルピン9番をLED出力設定 pinMode(led, OUTPUT); } void loop() { //PWM波をデジタルピン9番にデューティ比brightness/255で出力 analogWrite(led, brightness); //次のloop()実行時のbrightnessの値 //fadeamountを加算していく brightness = brightness + fadeAmount; //brightnessの値が0以下または255以上であるときfadeAmountの符号反転 if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } //最後に30ミリ秒待つ delay(30); }
こんな感じです。
PWM(Pulse Width Modulation)波とは、スイッチのオンとオフのスピードを切り替える電圧の制御をする波のことです。
制御は、デューティ比という比率によって行われます。
このスケッチのデューティ比は、周期の最大値255÷brightnessの値と決められています。
brightnessの値は、ループ関数の中に書かれた条件と式によって変化を続けます。
このおかげでデューティ比もまたずっと変化するので、電力が強くなったり弱くなったりが繰り返されます。
そのためLEDも、明るくなったり暗くなったりし続けます。
回路図
「Lチカやってみた①」とほとんど同じ回路ですが、つないでいるピンが違います。
今回はデジタル9番ピンを使っています。
実際のようす
gif動画ですが…。
もわ~と明るくなったり暗くなったりを繰り返しています。
ホタルの光みたいですね。
感想
最初は難しいプログラムなのかなと思ったけど、わかれば簡単でした。
スケッチ例、他にもいろいろ試していきたいです。