arduinoでTLC5940+74595を使ったLED制御
前回はTLC+74138を使ってのLED制御でしたが今回は74595を使用してのテストです。わかりやすい違いは、74138では最大8chでしたが74595ではその制限が無いことです。(デイジーチェイン)
ただし、人間の目を誤魔化すのに60hz位必要らしいので、そんなにつなげないとおもいますけれど。
■基板イメージ
■回路図(抜粋)
■テストコード
#include "Tlc5940.h" //74HC595 LED control pins int latchPin = 7; //Pin connected to ST_CP int clockPin = 6; //Pin connected to SH_CP int dataPin = 5; //Pin connected to DS void setup() { /* Call Tlc.init() to setup the tlc. You can optionally pass an initial PWM value (0 - 4095) for all channels.*/ Tlc.init(); //set pins to output because they are addressed in the main loop pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { int direction = 1; for (int channel = 0; channel < NUM_TLCS * 16; channel += direction) { Tlc.clear(); if (channel == 0) { direction = 1; } else { Tlc.set(channel - 1, 1000); } Tlc.set(channel, 4095); if (channel != NUM_TLCS * 16 - 1) { Tlc.set(channel + 1, 1000); } else { direction = -1; } Tlc.update(); for (int j = 0; j < 8; j++) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, 1<<j); digitalWrite(latchPin, HIGH); delay(100); } } }
どちらがいいかはその時にやりたいこと次第ですが、大電流流したいなら74138ですね。部品点数減らしたい or 8ch以上なら74595でしょうか。ラッチアップとかが不要なので、切り替えスピードは74138の方が早いです。
コメントはまだありません。