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

Arduino PWM出力を拡張する方法–TLC5940チュートリアル

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

基本機能
  • VCC =3V〜5V
  • 16チャンネル
  • 12ビット(4096ステップ)PWM制御
  • 駆動能力
    – 0 mA〜120 mA(VCC> 3.6V)
    – 0 mA〜60 mA(VCC <3.6V)
  • シリアルデータインターフェース
  • 30MHzのデータ転送速度
  • デイジーチェーン

デイジーチェーン接続は優れた機能です。つまり、複数のTLC5970ICを直列に接続できます。これにより、ArduinoのPWM機能を16を超える出力(たとえば、32、48、または64のPWM出力)に拡張し、1つのTLC5940ICを制御する場合と同じ4つのピンをArduinoボードで使用できます。

このチュートリアルのコンポーネントは、以下のいずれかのサイトから入手できます。

  • ArduinoNano………………………..
  • 超高輝度赤色LED……………
  • TLC5940LEDドライバー……………

ArduinoとTLC5940の配線

TLC5940を制御するには、Arduinoボードの4つのピンを占有する必要があります。 AlexLeone製のTLC5940Arduinoライブラリを使用するため、ライブラリ構成に従って、または次の回路図を使用して、ICをArduinoに接続する必要があります。

上記の回路図は、LEDに電力を供給するために外部電源を使用していますが、引き出される電流の合計量がArduinoの制限(絶対最大定格、DC電流VCC)を超えない場合は、ArduinoVCC自体を使用して接続することもできます。およびGNDピン– 200mA)。

また、TLC5940は定電流シンクであるため、電流は出力ピンに向かって流れることに注意する必要があります。つまり、LEDを接続するときは、負のリード線(カソード)をICの出力ピンに接続し、正のリード線(アノード)を5VVCCに接続する必要があります。

また、デカップリング用に2つのコンデンサと、出力を流れる電流の量を制御するための抵抗が必要です。抵抗の値は、制御するコンポーネントによって異なり、TLC5940のデータシートから次の図を使用して選択できます。

したがって、図によると、20mAの電流を必要とするLEDを制御するには、2Kの抵抗が必要です。

ソースコード

AlexLeone製のTLC5940Arduinoライブラリをダウンロードしてインストールすると、彼の「BasicUse」デモの例を使用して、ICの出力を制御する方法を理解できます。

これは、このライブラリを使用して16個のLEDを制御するためにこのチュートリアル用に作成した簡単なコードです。関数がどのように機能するかを理解するために、コード内のコメントを読んでください。

/*
 * Arduino and TLC5940 Tutorial - Simple Example
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include "Tlc5940.h" 

void setup() {
  Tlc.init(0); // Initiates the TLC5940 and set all channels off
}
 
void loop() {
  Tlc.set(0,4095); //(Output Pin from 0 to 15,PWM Value from 0 to 4095)
  // Note: The previous function doesn't activates the output right away. The output will be activated when the Tlc.update() function will be executed!
  
  Tlc.update(); // Activates the previously set outputs
  delay(1000);

  // For activating all 16 outputs at the same time we can use a for loop for setting all of them to be set to PWM value of 4095. Then  the Tlc.updata() function will active them all at the same time.
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
  }
  Tlc.update();
  delay(1000);

  //The Tlc.clear() function clears all the outputs, or sets the PWM value of all outputs to 0
  Tlc.clear();
  Tlc.update();
  delay(1000);

  // This for loop will active all 16 LEDs one by one
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
    Tlc.update();
    delay(200);
    Tlc.clear();
    Tlc.update();
    delay(200);
  }
}Code language: Arduino (arduino)

複数のTLC5940を制御する

これらのICの1つ以上を直列に接続するために、上記と同じ回路図を使用できます。唯一の違いは、最初のICのSOUT(信号出力–ピン17)を2番目のICのSIN(信号入力–ピン26)に接続する必要があることです。

プログラミングの部分に関しては、いくつかの変更を加える必要があります。 TLC5940ライブラリフォルダで、tlc_config.hファイルを変更し、変数NUM_TLCSの値を直列に接続されたTLC5940 ICの数に変更する必要があります。この場合、値は2です。これで、すべてに簡単に対処できます。 LEDは0から31で、前述と同じプログラミング方法を使用します。

例として、次のリンクで、私のDIY LEDハートフォトフレーム–Arduinoプロジェクトをチェックできます。ここでは32個のLEDを制御するために2つのTLC5940ICを使用しています。


製造プロセス

  1. OpenSensorsで空気の質を測定する方法
  2. ArduinoRFIDロックチュートリアル
  3. IRリモコンをハックする方法
  4. あなたの身長はどれくらいですか?
  5. サーミスタの使い方は簡単ですか?!
  6. Arduinoで音楽を作る方法
  7. Arduino指紋センサーチュートリアル
  8. ArduinoでModbusを使用する方法
  9. Arduinoチュートリアル:ミニピアノ
  10. Arduinoチュートリアル:JARVIS v1 |ホームオートメーションの作り方
  11. Arduinoチュートリアル01:はじめに