昨日に続き、LEDドライバーの調光まわりを探る。
CL6807って言うこのICは、PWMでも電圧でも調光出来る
らしいので、データシートとか読み込んでみる。
データシートによると、
「アナログ電圧の場合は0.5V~2.5Vの間で制御できるよ、
PWMだと、500Hz以下なら1%~100%で調光できるけど、
10Khz以上だと25%~100%の範囲だよ。PWMの場合は
オープンコレクタかオープンドレイン使ってね」
と読み取れる。
本当かどうかちょっと自信なかったので、もうちょっと
調べてみると、
http://akizukidenshi.com/catalog/g/gK-06300/
このキットも同じIC使ってるようで、キット組み立て
説明書を読んでみると、やっぱり同じ内容で書かれてる。
あってるみたい。
で、使用目的は、ブツ撮りするときの光源なので、500Hz
くらいで瞬かれると困る。まぁ、ICのチョッパ動作自体は
500Hzでホントに瞬くのか、それともIC内部の発振回路の
周波数で瞬くのか、その辺がよく判らないので、実験
してみたくなる。
サクッと、GNDとAJD端子を引っ張り出してみた。
(この右下の緑の2本線)
ちなみに、1W出力ならこの程度の放熱板で、充分用が足りる
みたい。触ってみても、ほんのり、ちょっとだけ温かいかも
しれない…って程度に放熱できてる。
(放熱板つけてないと、それなりにあったかくなる)
arduino(5V)のPWM出力を、10kΩ+10kΩで分圧してピークを
2.5Vにして、それをさらに10kΩと0.1uFで160HzのLPFを組んで、
AJD端子に入れてみる。
その際、アナログ入力の値は0.5V~2.5Vで変化するように、
以下のようなスケッチで動かしてみた。
/* power led fading */
#define low_vol 0.5
#define high_vol 2.5
#define pwm_range 256.0
#define input_vol 5.0
#define divide_num 0.5
int ledPin = 9; // LED connected to digital pin 9
float vol_unit;
int high_num;
int low_num;
void setup() {
vol_unit = input_vol / pwm_range;
high_num = int( ceil(high_vol / vol_unit / divide_num) );
low_num = int( (low_vol / vol_unit / divide_num) );
high_num = min(high_num, 255);
}
void loop() {
for(int i = low_num ; i analogWrite(ledPin, i);
delay(20);
}
delay(2000);
for(int i = high_num ; i > low_num; i--) {
analogWrite(ledPin, i);
delay(20);
}
delay(2000);
}
ちなみにdivide_numって定数は、抵抗で分圧した時の
分圧の割合の意味。
動かしてみると、確かに明るさは変化するし、最大輝度
側はちゃんと出てるみたいなんだけど、暗いほうは
消灯しないし、なんか明るい。
define文の一番上「low_vol」をもっと小さくしていって
みると、0.23とか0.22とかを指定すると、最小値に至った
時に消灯はできた。スレショルド値が少し幅があるみたい。
(ちなみにこのときのAJD端子の入力電圧は、テスターで
計って0.26V)
うーーーん。なんか釈然としないんだけど。もうちょっと
低い明るさにできないの?
というわけで、LPFを通さずに、PWM出力を半分に分圧した
ところを、オープンコレクタにせず、そのままAJDに繋いで
みる。
…うん。とりあえず動く。かなり暗いところまで表現できてる。
ただし、このLEDの光量、arduinoのアナログ出力の490Hz
でフリッカ出てないのかな?目で見ても490Hzはさすがに
判らんからな…。
テスターじゃなく、オシロを引っ張り出して、LEDの
両端電圧を測れば判るんだけどな。困ったな。もしかして
オープンコレクタにしてないからかなぁ?
まぁ、この辺はまた今度にしよう。
ちなみに、PWMだと、出力値を0にしても、ものすごく暗く
点ってしまうんだな。もしかして、arduinoのアナログ
出力で既知の問題になってる、一部の端子は出力を完全に
ゼロには絞れませんっていうアレかと思って調べてみた。
http://arduino.cc/en/Reference/analogWrite
どうやら5番と6番だけみたい。9番だから、ちゃんと
絞れるんだな。ってことは、PWMのせいじゃないな。
490Hzでフリッカ出ちゃってるとしたら、カメラ用照明として
使えるのは、せいぜい1/60とかかなぁ。1/125より速いと、
コマによって輝度ムラが目立ちそうな気がするな。
フリッカが出てなければ別にいいんだけどな。できれば、
数Khzで発振できればなぁ。1/125は使いたいし、1/250が
使えればなおよしなんだけどな。LEDドライバ内部の
降圧チョッパ自体は最大1MHzとかみたいなんだけどな。
それにしても、秋月は、0.1Ωのカーボン抵抗袋、売ってる
んだなぁ。知らなかった。これ買っておこうかな。
http://akizukidenshi.com/catalog/g/gR-07949/
http://www.kohgakusha.co.jp/books/detail/4286
I/O届いたので眺める。
Spineって、へぇ。こういうことできるのか。面白い。
今回の説明読んでわかった。
http://ja.esotericsoftware.com/
こういう風に、ストーリーにしたがって自分で2次元空間
に何か配置して、映像化していくようなソフトを、昔
作りたいと思ってたんだよな。で、Video For Windowsの
開発キット買って投げたという…。
CloudBitも載ってた。
そうですね。悉くAJDって書いてしまってますね。ADJ端子でした。