工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

概要

このArduinoチュートリアルでは、TLC5940 PWMドライバをArduinoボードで使用する方法を学びます。TLC5940は16チャンネルのLEDドライバでPWM出力を提供し、ArduinoのPWM機能を拡張するのに最適です。LEDだけでなく、サーボ、DCモータなどPWM信号で制御可能な電子部品にも使用できます。

TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

基本機能

  • VCC = 3V〜5V
  • 16チャンネル
  • 12ビット(4096段階)PWM制御
  • 駆動能力
    • 0〜120mA(VCC > 3.6V時)
    • 0〜60mA(VCC < 3.6V時)
  • シリアルデータインターフェース
  • 30MHz データ転送レート
  • デイジーチェーン接続対応

デイジーチェーンは優れた機能で、複数のTLC5940 ICを直列接続できます。これによりArduinoの同じ4ピンで16出力以上(32, 48, 64...)のPWM出力を制御可能です。

必要なコンポーネント

  • Arduino Nano
  • 超高輝度赤色LED
  • TLC5940 LEDドライバ

ArduinoとTLC5940の配線

TLC5940制御にはArduinoの4ピンを使用します。Alex Leone氏作のTLC5940 Arduinoライブラリに合わせて、以下の回路図のように接続します。

TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

上記回路図は外部電源でLEDを駆動していますが、総電流がArduinoの限度(絶対最大定格:VCC/GNDピン200mA)を超えないならArduinoのVCCからでも駆動可能です。

重要な注意点

  • TLC5940は定電流シンク(定電流吸い込み)タイプです。電流は出力ピンに向かって流れます。したがってLED接続時は、カソード(負極)をIC出力ピン、アノード(正極)を5V VCCに接続します。
  • デカップリング用に2つのコンデンサ、出力電流設定用に1つの抵抗が必要です。抵抗値は制御対象コンポーネントによりデータシートの以下の図で選択します。
TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

グラフによると、20mAが必要なLEDを制御するには2kΩ抵抗を使用します。

ソースコード

Alex Leone氏作のTLC5940 Arduinoライブラリをダウンロード・インストール後、付属の「BasicUse」デモ例で基本を理解できます。このチュートリアル用に16個のLEDを制御するシンプルなコードを作成しました。コメントを参照して関数の動作を理解してください。

/*
 * Arduino and TLC5940 Tutorial - Simple Example
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */
#include "Tlc5940.h"

void setup() {
  Tlc.init(0); // TLC5940初期化、全チャンネルOFF
}

void loop() {
  // チャンネル0を最大輝度(4095)に設定
  Tlc.set(0, 4095); // (出力ピン 0-15, PWM値 0-4095)
  // 注意: set()だけでは出力されない。update()で反映される!
  Tlc.update();
  delay(1000);

  // 全16チャンネルを同時に最大輝度で点灯
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
  }
  Tlc.update(); // 全チャンネル同時更新
  delay(1000);

  // 全チャンネルクリア(PWM値0)
  Tlc.clear();
  Tlc.update();
  delay(1000);

  // 16個のLEDを順番に点灯
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
    Tlc.update();
    delay(200);
    Tlc.clear();
    Tlc.update();
    delay(200);
  }
}

主要関数の説明

  • Tlc.init(初期値): 初期化、全チャンネルを指定値(通常0)に設定
  • Tlc.set(channel, value): 指定チャンネル(0-15)のPWM値(0-4095)を設定。**この時点では出力変化しない**
  • Tlc.update(): 設定された値を実際に出力に反映
  • Tlc.clear(): 全チャンネルを0(オフ)に設定

複数のTLC5940を接続する(デイジーチェーン)

複数のICを直列接続する場合、基本回路図は同じです。違いは最初のICのSOUT(信号出力・ピン17)を、次のICのSIN(信号入力・ピン26)に接続する点のみです。

TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

プログラミング側の変更

TLC5940ライブラリフォルダ内のtlc_config.hファイルを開き、NUM_TLCSの値を接続IC数(この場合2)に変更します。これで0〜31のチャンネル番号で全LEDをアドレス指定でき、プログラミング方法は単体時と同じです。

TLC5940でArduino PWMを拡張: 16チャンネルLEDドライバ完全ガイド

応用例として、2つのTLC5940で32個のLEDを制御した「DIY LEDハートフォトフレーム - Arduinoプロジェクト」も公開しています(リンク参照)。

以上でこのチュートリアルは終了です。ご質問はコメント欄でお気軽にどうぞ。

製造プロセス

  1. OpenSensorsで空気質を測定: ArduinoとPythonによるガイド
  2. Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド
  3. ArduinoでユニバーサルIRリモコンを自作:ステップバイステップガイド
  4. デジタル身長計の自作:Arduino Nanoとレーザー距離センサーで成長記録
  5. サーミスタを使った温度測定: Arduinoステップバイステップガイド
  6. Arduinoで楽器演奏:音階生成のステップバイステップガイド
  7. Arduino Nanoと指紋センサーで作るバイオメトリクス認証システム – 完全チュートリアル
  8. ArduinoでModbusをマスターする:ステップバイステップガイド
  9. Arduino UNOで作るミニピアノ - ステップバイステップチュートリアル
  10. Arduino Nanoで作るJARVIS v1 音声制御ホームオートメーション
  11. Arduino初心者チュートリアル01: 最初のプロジェクトを始めよう