マサルの備忘録

ハイオク仕様のトルクフルな備忘録

Arduinoで自作Hueを作り始めた

スポンサーリンク

フエじゃないです。Hueです。

前回はこちら。

Arduinoで自作Hueに挑んでみる - マサルの備忘録

あんまり認知度高くないんですかね

Hueでぐぐってもベトナムの都市が出てきたり、縦笛がでてきたり・・・笑
Hueとはこれのことです。念のため。
Meet hue | ja-JP

まずはLEDを準備

これ買いました

f:id:domomasarudesu:20150218234936j:plain
マイコン内蔵RGB 8mmLED PL9823-F8


マイコン内蔵RGB 8mmLED PL9823−F8: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販

一つ40円でございます。

マイコン内蔵・・・?

最初、カラフルなRGB表現可能なLEDは、内部的にR/G/BのLEDが各1つの計3つ入ってて、それらに対する電圧でRGBを表現するのかとおもいきや。

http://akizukidenshi.com/download/ds/rita/pl9823.pdf

シフトレジスタのように、01のインプットによって色が変化し、しかも数珠つなぎ可能で複数のLEDを制御可能らしい。すごいな・・・それが40円なのか。

とりあえず実装

ライブラリがあるようです


adafruit/Adafruit_NeoPixel · GitHub

今回は「Adafruit_NeoPixel」というライブラリを使いました。
サンプルコードもあってわかりやすかったです。

カラフルLチカ!

f:id:domomasarudesu:20150218235514j:plain

しかし、5Vを直でつなげていいのかしら・・・(笑)

こんな感じ

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUMLED 2

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_RGB + NEO_KHZ400);

void setup() {
  pixels.begin();
}

void loop() {
  for (int i = 0; i < 256; i++) {
    setColor( i, 0, 0);
  }

  for (int i = 0; i < 256; i++) {
    setColor( 255, i, 0);
  }

  for (int i = 0; i < 256; i++) {
    setColor( 255, 255, i);
  }
}

void setColor(int r, int g, int b) {
  for (int i = 0 ; i < NUMLED; i++) {
    pixels.setPixelColor(i, pixels.Color(r, g, b));
    pixels.show();
  }
  delay(10);
}

#000000になると消灯してました。