必要部品一覧
RGBLEDについて
-
赤、緑、青色のLEDを1つにまとめたLEDです。
種類としてアノードコモンとカソードコモンがあり、今回はカソードコモンを使用する。 カソードコモンは下記図の様に3つのLEDのカソード(-)が一つの端子にまとめられた部品である。
RGBの3色から様々な色を表現できるようになっている。
「光の三原色」
RGBLED電子回路
データシートで確認すると、G,BのVFの値が3.6Vなのに対しRだけVFの値は2Vとなっている。 実測値で抵抗をつけなかった場合G,Bの電流値が10mA、Rは27mAでした。 Rへの電流値を10mAにするためオームの法則によってR = V / I = (3.3 - 2) / 0.01 = 130Ω
130Ωとなるが、実際はVFに幅がありドキュメントでもIF20mAの時VFは2~2.5Vと記載されていてかなりアバウトなので抵抗値もおよそそのあたりの値であれば問題は無い。 色々記載したが、今回は57Ωを使用する。
回路図
ブレッドボード回路
プログラム
1秒間隔で赤⇒紫(マゼンタ)⇒青を繰り返すプログラム
LEDR = 15
LEDG = 16
LEDB = 17
pinMode(LEDR, 0)
pinMode(LEDG, 0)
pinMode(LEDB, 0)
while true
digitalWrite(LEDR, 1)
sleep(1)
digitalWrite(LEDB, 1)
sleep(1)
digitalWrite(LEDR, 0)
sleep(1)
digitalWrite(LEDB, 0)
end
ピンの動作を設定するためpinMode(ピン番号, 設定値)を使用する。
設定値は0が出力モード(LEDなど)、1が入力モード(スイッチなど)となっている。
例題:
- 「緑色→黄色→赤色」の順に点灯させる
- LEDの明るさを落とす
- LEDの明るさが変化する(PWM)
LEDR = 15
LEDG = 16
LEDB = 17
pinMode(LEDR, 0)
pinMode(LEDG, 0)
pinMode(LEDB, 0)
while true
digitalWrite(LEDG, 1)
sleep(1)
digitalWrite(LEDR, 1)
sleep(1)
digitalWrite(LEDG, 0)
sleep(1)
digitalWrite(LEDR, 0)
end
LEDR = 15
LEDG = 16
LEDB = 17
pinMode(LEDR, 0)
pinMode(LEDG, 0)
pinMode(LEDB, 0)
while true
digitalWrite(LEDR, 1)
sleep(0.001)
digitalWrite(LEDR, 0)
sleep(0.001)
end
LEDG = 16
pinMode(LEDG, 0)
PWM.new()
PWM.pin(LEDG)
PWM.start(2)
PWM.cycle(0x95A,4)
while true
for i in 0..100 do
PWM.rate(i,2)
sleep(0.03)
end
end