こんばんは!
今回はRGB LEDという赤、緑、青の3つの基本色を混ぜることで異なる色を出すことができるLEDを使っていこうと思います。
RGB LEDとは
RGB LEDは、赤、緑、青の3つの基本色を混ぜることで好きな色を出すことができるLEDです。
ちなみにRGBはRed,Green,Blueの略です。単純に赤、緑、青の3つのLEDが合体しているものと思って下さい。
RGB LEDはRed,Green,Blueの3本のピンと、共通のGNDピンから構成されています。
左からRed,GND,Green,Blueピンです。
ArduinoではRGB LEDで好きな色を出すためにanalogWrite関数を使います。
analogWriteについてはこちらの記事をご覧ください。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・RGB LED(https://amzn.to/2CeO9Y2)
・100Ω抵抗(https://amzn.to/2Fvm9CA)
手順
まず、以下の図のように配線してください。
次にArduino IDEを起動して次のコードを記述してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | const int redPin = 9; const int greenPin = 6; const int bluePin = 5; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { setColor(255, 0, 0); delay(500); setColor(0, 255, 0); delay(500); setColor(0, 0, 255); delay(500); for (int j = 0; j < 256; j++) { setColor(j, 20, 30); delay(15); } for (int i = 0; i < 236; i++) { setColor(235 - i, 20 + i, 30); delay(15); } for (int k = 0; k < 226; k++) { setColor(k, 255, 30 + k); delay(15); } } void setColor(int red, int green, int blue) { analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); } |
コードの説明をしていきます。
まず、setup()以前ではRGB LEDのRed,Green,Blueの3本のピン番号をそれぞれ9,6,5と設定しています。
setup()内ではそれぞれのピンを出力に設定しています。
次にsetColor関数です。これは引数をred,green,blueとし、それぞれ入れられた値に応じてその色の濃さ(強さ?)を決定し、analogWrite関数により、LEDを点灯させる関数です。
loop()内ではこのsetColor関数を使い、赤、青、緑に点灯させたり、for文などを利用することによって徐々に色を変化させたりしています。
実際にArduino UNOに書き込みをしてみると以下の動画のようになります。
まとめ
今回はRGB LEDという、普段使っているような1つのLEDで1つの色を出すものではなく、多くの色を出すことができるLEDを使ってみました。
デューティー比次第で綺麗な色が出力できると思うので、イルミネーションなどにも使用できると思います。
今回はこれで終わります。
ではまた!