Arduino 日本語リファレンス



テキサス・インスツルメンツのTLC5940はPWM出力の数を増やしたいときに便利なICです。16チャネルのPWM出力を持ち、ディーティ比を12ビット(0-4095)で制御できます。また、6ビットの電流制御機構、デイジーチェーン接続が可能なシリアルインタフェイスなどを備えています。データシートは次のURLから取得できます。http://www.ti.com/lit/gpn/tlc5940


【インストール方法】

次のURLから最新版をダウンロードしてください。
http://code.google.com/p/tlc5940arduino/downloads/list

ダウンロードしたzipファイルを展開すると現れるTlc5940フォルダを<Arduinoフォルダ>/hardware/libraries/に移動します。


【ハードウエアの接続方法】



この図は2つのTLC5940NTをデイジチェーン接続して、32個のLEDをコントロールする例です。TLC5940を1つだけ使う場合は、上のTLC5940は無視してください。
2個以上のTLC5940を接続するときは、tlc_config.hの定数NUM_TLCSを変更する必要があります。

2KΩの抵抗によって、各チャネルの出力は20mAに設定されます。電流値の求め方は次の式のとおりです。

l = 39.06 / R
例: 39.06 / 2000Ω = 0.020A

10KΩのプルアップ抵抗は、Arduinoボードがリセット状態のとき、出力をオフ(BLANK)にするためのものです。


【ライブラリの主な機能】

Tlc.init(int initialValue)

タイマを設定するため、最初に実行します。initialValueは0から4095の値で、デフォルトは0(全チャネルがオフ)です。

Tlc.clear()

全チャネルをオフにします。設定を反映させるために、Tlc.update()を実行する必要があります。

Tlc.set(uint8_t channel, int value)

デューティ比を設定します。LEDを接続する場合は階調データに相当します。channelは0から15です。2つ以上のTLC5940を接続する場合は、0から
NUM_TLCS * 16 - 1となります。valueは0から4095です。設定を反映させるために、Tlc.update()を実行する必要があります。

Tlc.setAll(int value)

すべてのチャネルの値をvalueに設定します。設定を反映させるために、Tlc.update()を実行する必要があります。

uint16_t Tlc.get(uint8_t channel)

指定したチャネルのデータを取得します。

Tlc.update()

Tle.setやTlc.clearによって行われた変更を反映させます。


【例】

 ナイトライダー風にLEDが点滅します。

#include "Tlc5940.h"

void setup() {
  Tlc.init(); // 初期化
}

void loop() {
  int8_t direction = 1;
  for (TLC_CHANNEL_TYPE channel = 0; channel < NUM_TLCS * 16; channel += direction) {

    Tlc.clear();   // 全出力のグレースケール値(明るさ)を0に設定
    Tlc.set(channel, 4095);  // グレースケールを設定する。0がオフ、4095で100%
    Tlc.update();  // この命令が実行されたときにLEDの状態が変化する
    delay(75);
    if (channel == NUM_TLCS * 16 - 1) direction = -1;
  }
}


[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]