🚨
フルカラーLEDの使い方
ランダム色にスムーズに変化する
仕様
色ごとに推奨電圧が異なる点と、カソード or アノードコモン型の違いに注意する。
抵抗値の求め方
わかっていること。
- 電源: 5V
- 推奨電圧: 赤2.0V 緑3.6V 青3.6V
- 推奨電流: 20mA
抵抗値を計算する。
- 赤 (5 - 2.0) / 0.02 = 150Ω
- 緑 (5 - 3.6) / 0.02 = 70Ω
これによって弱い赤を守るには 150Ω 以上の抵抗が必要だとわかる。もし 70Ω で統一してしまうと赤が死ぬ。(5 - 2.0) / 70 = 43mA となって推奨電流 20mA の倍以上になってしまう。
しかしなぜかキリの良い抵抗がないので 220Ω を使うことにする。この辺は適当でいいらしい。抵抗値を上げるぶんにはそんな問題ない。暗くなるだけである。下げすぎると LED が燃える。
220Ωだったときの実際の電流は、
- 赤 (5 - 2.0) / 220 = 14mA
- 緑 (5 - 3.6) / 220 = 6mA
となる。緑は 20mA ほしいところで 6mA しかないけど明るさはさほど変わらない。
配線
- なぜ3つある?
- フルカラー LED は 3 つの LED がぎゅうぎゅう詰めになったもの
- なので赤・緑・青を個別に接続したときの配線とまったく同じ
- カソードコモン型とは?
- ぎゅうぎゅう詰めの利点としてマイナス側の線は物理的に一本にまとめることができる
- 言い変えると「マイナス側を共用」なので「カソードコモン型」
- プラス側も一本になってない?
- それぞれに抵抗を与えないといけないので一本化できない
- もし LED 側に抵抗を内蔵していれば一本化できるはず
- でも電源電圧がわからないと抵抗値はあらかじめ決められない
- だから抵抗入りの LED はない(?)
- もしプラス側を一本化したら白黒になる?
- そもそも3つの電圧をそれぞれ変更しないと色味が表現できない
- 仮にプラス側を一本化できたとしたら暗いか明るいかだけになってしまう
- だから両端を一本化したフルカラー LED はない
- もし抵抗を右側というかマイナス側に繋ぐとしたら今度は「プラス側を共用」できるので「アノードコモン型」になる
- それぞれに抵抗を与えないといけないので一本化できない
足の意味
足 | 対応 |
---|---|
二番目に長い | R |
一番長い | GND |
中ぐらい | G |
一番短い | B |
コード
void setup() {
}
int count = 0;
void loop() {
analogWrite(6, 128 + sin(2 * PI / 60 * count * 0.5) * 127);
analogWrite(5, 128 + sin(2 * PI / 60 * count * 0.6) * 127);
analogWrite(3, 128 + sin(2 * PI / 60 * count * 0.7) * 127);
count++;
delay(1000 / 60);
}
コードからは一体型のフルカラー LED なのか3つの LED なのかはわからない。 LED かどうかもわからない。
疑念
これまで LED の色は樹脂の着色で決まっているのではないかと疑っていたが、フルカラー LED の樹脂は透明なのでつまり本当に発色していることがわかった。
Discussion