LEDで中間色を出す




マゼンダ→シアン→イエローの順で中間色を表示するようにしている。
プログラム


下記はPWM(後述)で徐々に明るさを変えるプログラム。

analogWrite(11,50); とすると、11番ピンの明るさを50にするという意味。
analogWrite(11,0); とすると、LEDは、まったく光らなくなる。
analogWrite(11,255); とすると、LEDは、最も明るく光る(最大で255まで)。
プログラム



通常デジタル出力端子は、on/offのデジタル情報しか送ることができない。PWMは、パルスの幅によって擬似的にアナログ情報を伝達する。LEDの場合は、パルスの幅によって明るさが変化する。PWMは0〜255の256段階でパルスの幅(明るさ)を調節することができる。厳密には点滅しているわけだが、点滅が早すぎて実際は明るさが変化しているように見える。



Arduinoは〜のついているデジタルピンのみでPWMを出すことができる。
具体的には、3/5/6/10/11のピンで利用できる


少しプログラムらしいものも書いてみよう

PWMを使い、11のLEDを徐々に明るく、10のLEDを徐々に暗くコントロールしている。
明るさ調節は、変数tの頻度で行われる。
tの値を小さくすればするほど、明滅のスピードは上がる。
プログラム

こういうくり返し処理には、もっと良い方法がある

PWMは0〜255まで、連続的に変化させることが出きる。
手書きで256段階書くとプログラムが長くなるので、forループを使うと良い。
プログラム



戻る