arduinoでTLC5940+74595を使ったLED制御
前回はTLC+74138を使ってのLED制御でしたが今回は74595を使用してのテストです。わかりやすい違いは、74138では最大8chでしたが74595ではその制限が無いことです。(デイジーチェイン)
ただし、人間の目を誤魔化すのに60hz位必要らしいので、そんなにつなげないとおもいますけれど。
■基板イメージ
■回路図(抜粋)
■テストコード
[cpp]
#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);
}
}
}
[/cpp]
どちらがいいかはその時にやりたいこと次第ですが、大電流流したいなら74138ですね。部品点数減らしたい or 8ch以上なら74595でしょうか。ラッチアップとかが不要なので、切り替えスピードは74138の方が早いです。
コメントはまだありません。