Arduinoでエアコンの1時間タイマーを自作する

4素子RGBWLED(NeoPixel互換)をArduinoで制御する 1

 特に理由もなくLEDやマイコンを買ったりするのですが、最近こんなものを見つけました。

OST45050C1A-W(秋月電子)

マイコン内蔵のフルカラーLEDの存在は知っていましたが、こちらは三原色の「RGB」にさらに白の「W」を追加した物です。
RGBのみで白を表現するのが難しいので白素子も追加しちゃいましたということですね。


回路図です。
ArduinoとLEDとの接続は電源を除けばデータピン1本だけです。
OST45050C1A-Wを使ったマイコン制御の回路図

とりあえずユニバーサル基板で回路を組みました。
パスコンは裏に、それと回路図とは左右が逆になっています。
OST45050C1A-Wを実際に配線したところ

プログラムです。

#include <Adafruit_NeoPixel.h>

const int DIN_PIN = 6; // データピン
const int LED_COUNT = 5; // LEDの個数

Adafruit_NeoPixel strip(LED_COUNT, DIN_PIN, NEO_GRBW + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show();
}

void loop() {
  strip.setPixelColor(0, strip.Color(10, 0, 0, 0));  //赤
  strip.setPixelColor(1, strip.Color(0, 10, 0, 0));  //緑
  strip.setPixelColor(2, strip.Color(0, 0, 10, 0));  //青
  strip.setPixelColor(3, strip.Color(10, 10, 10, 0)); //白(RGB)
  strip.setPixelColor(4, strip.Color(0, 0, 0, 10));  //白
  strip.show();
}  

AdafruitのNeoPixelライブラリを使用しています。
またArduinoIDEの「ライブラリを管理」からもインストールできます。

setPixelColorでどのLEDをどのように光らせるかを指定します。
strip.setPixelColor(指定するLEDの場所, strip.Color(R, G, B, W));
明るさの数値は0~255

実際に光らせるとこんな感じ。
OST45050C1A-Wを実際にマイコン制御で光らせてみたところ

とりあえず今回はこんな感じで、次はもう少し凝ったことをやってみようかなと思います。