こんにちは、細川です。

Arduinoを使ってフルカラーLEDを光らせました!

フルカラーLED発光

注意!
この記事を書いた人は電子工作の素人です。
実際に手を動かしてできたことを正直に書いていますが、
専門家の視点で見ると正しくないことがあるかもしれません。
ご了承ください。

 Arduinoとは 
Arduinoとはイタリアで生まれた小さなコンピュータです。
 arduinoサイズ感ビリヤード
弊社地下室にあるビリヤードの玉と同じぐらいのサイズでした

名前の由来はArduino開発者行きつけのパブ「Bar di Re Arduino」にちなんでいます。

小さくて、安くてマイコンとしては普及している商品のため簡単に手に入れることができます。
専用の開発環境と初心者向けに設計されたプログラミング言語が用意されているので、
すぐに開発を始められます。

ハードウェア寄りの開発を手軽に始めるのにとても便利です。

フルカラーLEDを手に入れる
マイコン工作を始めたとき、 最初にLEDを光らせました。Lチカです。
そしてLEDには、フルカラーLEDというのがあるようです。
ただのLチカよりもきれいになりそうなのでArduinoを使ってフルカラーLEDを光らせることにします。
 
秋葉原にある「秋月電子通商」に行って、フルカラーLEDを買ってきました。

フルカラーLED


早速、配線をして光らせてみます。

 IMG_1632

無事に光りました! 

配線材を手に入れる 
無事動くことが確認できましたが、
一つだけ光っていても寂しいです。
たくさん光らせることにします。
 
たくさんのLEDを光らせる場所として、ブレットボードの上は狭いです。
外で動かすには、ブレットボードを使わないで電気を流す方法を考える必要があります。
 
こういうことのノウハウはないのですが、とりあえず電気の通る線が必要だと思い、
近所のホームセンターで電気が流れそうな見た目のケーブルを買ってきました。
 3色ケーブル

1mが50円ほどでした。3色を3mずつ買ってきました。

LED以外のところに色を出さないために、本当は全部黒にしたかったのですが、
作業ミスを防ぐために3色に分けることにしました。

組み立てる 
材料が揃ったので組み立てます。
そういえば、以前、キットを組み立てるために買った半田付けセットが押入れにありました。

半田ごてとハンダ



半田付けをするためにケーブルを一本ずつ切って両端の皮膜を丁寧に剥きます。
 
3色ケーブルピース
 
そして、丁寧に一つ一つ半田付けを行い配線しました。 

ハードウェアが完成


4時間ぐらいかかりました。

コーディング 
手探りでしたがハードウェアが無事に完成しました。
制御するためのソフトウェアを書きます。

フルカラーLEDを制御する信号を作成してくれるAdafruit NeoPixel Libraryを使っています。
#include <Adafruit_NeoPixel.h>

#define LED_OUTPIN  2
#define LED_LENGTH 18

Adafruit_NeoPixel RGBLED = Adafruit_NeoPixel(LED_LENGTH, LED_OUTPIN,
NEO_RGB + NEO_KHZ800);
int time = 0;
void setup()
{
  RGBLED.begin();
  RGBLED.setBrightness(255);
  RGBLED.show();
}
void loop()
{
  if (time == 100*LED_LENGTH) time = 0;
  for (int i = 0; i <= LED_LENGTH ; i++) {
    switch ((((time + i) % LED_LENGTH)) / 3) {
      case 0:
        RGBLED.setPixelColor(i, 255, 0, 0) ;
        break;
      case 1:
        RGBLED.setPixelColor(i, 255, 127, 0);
        break;
      case 2:
        RGBLED.setPixelColor(i, 255, 255, 0);
        break;
      case 3:
        RGBLED.setPixelColor(i, 0, 255, 0);
        break;
      case 4:
        RGBLED.setPixelColor(i, 0, 255, 255);
        break;
      case 5:
        RGBLED.setPixelColor(i, 0, 0, 255);
        break;
    }
  }

  RGBLED.show();
  delay(1000);
  time += 1;
}

完成
完成しました。早速動かして見ます。
 

rainbow

他にも色々とコードを書きました。
眩しくなってしまうのでスペースを空けて載せます。








spiral












rflower












mobility








まとめ
普段の開発とは違ったことをたくさん経験できて面白かったです。
材料を買いに外に出たり、手を動かして組み立てたり、
完成後のサイズをどれくらいにするか、どの材料をどのように使うか考えたり
半田ごてで火傷をしかけたり等々。

そして、完成したものが部屋の隅っこに転がっているというのが新鮮です。