ArduinoとTLC5940で複数のRGB LEDを制御する

Arduinoで複数のRGBフルカラーLEDを制御してみようと思ったのですが、まずArduinoでPWM出力できるピンは6つしかなく、フルカラーLEDを1つ制御するには3つのPWM出力ピンを使う為、ArduinoだけだとフルカラーLED2つまでしか制御できないということになります。
そこで、もっと多量のPWM出力を制御できないか調べたところ、TLC5940というICから16ピン分のPWM出力を制御できるということが分かりました。さらにTLC5940どうしでデイジーチェーン接続していけば、32、48、、というようにPWM出力のピン数を増やしていけるみたいです。

さっそく購入したTLC5940

そしてLEDのカソード側とTLC5940のPWM出力を繋ぐので、RGB LEDはアノードコモンのものが必要になります。

角型フルカラーLED OSTA71A1D-A アノードコモン

このLEDの足をブレッドボードに4つの導線に分けて刺そうとすると、あと1穴分幅が足りなくてブレッドボードに刺さりません。むむむ、もどかしいです。
他に良さそうなアノードコモンのRGB LEDを見つけれなかったので、このLEDの足に銅線をはんだ付けしてブレッドボードに刺せるようにします。(もっと簡単な方法があったのでしょうかね?)

LEDの足をヒートクリップで挟んで熱からLEDを守る!あ、この写真は違う足を挟んでたw

足が長くなり、横たわるしかなくなったLED

お次は回路を組みます。
「Arduino 日本語リファレンス」のTLC5940のページにあった回路を参考に組みました。

2つのTLC5940をデイジーチェーン接続で繋いでいます。RGB LEDは10個

ランダムな色で順番に光るようにした動画です。

Arduinoのコードはこちら

// "tlc_config.h"の値を下記に変更
//    #define NUM_TLCS    2

#include "Tlc5940.h"

#define MAX_BRIGHTNESS 4095

void setup() {
  Tlc.init();
}

void loop() {

  int myR = random(4)*(MAX_BRIGHTNESS/3);
  int myG = random(4)*(MAX_BRIGHTNESS/3);
  int myB = random(4)*(MAX_BRIGHTNESS/3);

  //channelの 0 と 31 は未接続
  for (TLC_CHANNEL_TYPE channel = 1; channel < (NUM_TLCS * 16)-2; channel += 3) {

    Tlc.clear();
    Tlc.set(channel + 0, myR);
    Tlc.set(channel + 1, myG);
    Tlc.set(channel + 2, myB);
    Tlc.update();
    delay(70);
  }
}

今後はLEDの数をもっと増やしてテストを続けて行きたいと思います。
お金がかかります。ブルジョアの道楽です。

薬院のシェアオフィス

低山部の下村さんとこのシェアオフィスがオープンしたと聞きつけて、ちょっと見回りに行ってきました。

打ち合わせスペース

ワークスペース。木の床、味があります

ワークスペース その2

オフィスのメンバーでリノベーションの仕事も手掛けてるだけあってシャレています。かぶき者です。
部屋にでっかい植物があると落ち着きますな~。

現在入居者募集中だそうです。
サイトはこちら↓
 ・シェアオフィス #1 | LONDO

ABOUT

GAMES

サッカーピープル
スライムパズルストーリー

倉庫番ライクパズルと
冒険のゲームです
※制作中

止まるなコロッコ2
止まるなコロッコ2

止まるなコロッコの
続編です
iOS版 / Android版

止まるなコロッコ
止まるなコロッコ

石ころのコロッコが転がるように
セッティングする脱出ゲームです
iOS版 / Android版

コロッコトロッコ
コロッコトロッコ

石ころのコロッコを転がしながら
サラリーマンを会社へ運ぶゲームです
iPhone版 / Android版

TAGS

SNS

FEEDS