さて先晩作成のLEDCube3*3にArduinoを接続してみた。
接続は上図の通り。抵抗は1.1kΩ。Arduinoとは適当に繋いでいる。
とりあえずの点灯実験のソース。初めての独自Arduinoプログラムです。
層のPin(2,12,13)の内、点灯させたいPinをLowにすることで、電流が流れ込み点灯する。消したい層はHIGHにする点がポイント
// 3*3*3 LED cube 順次点灯実験
// 2,12,13 BasePinがどの層を点灯するか決定 HIGHにすると消灯 Lowにすると点灯
// (吸い込みPinを指定している)
// 3..11 Pinが層の点灯Pinで、HIHGにすると点灯
// 2014/8/27 H.shin My First Arduino Original Program
// ----------------- 各pinのIN/OUT設定 -----------------
void setup(){
int p ;
for (p=2; p pinMode(p,OUTPUT);
}
digitalWrite(2,HIGH); digitalWrite(12,HIGH); digitalWrite(13,HIGH);
for (p=3; p digitalWrite(p,LOW);
}
}
// ----------------- 9LEDを1層分 順次点灯させる -----------------
void dsp(){
int p; // Pin No.
int d = 100; // Delay ms
for (p = 3; p digitalWrite(p,HIGH); delay(d); digitalWrite(p,LOW); delay(d);
}
}
//----------------- MAIN Loop-----------------
void loop(){
digitalWrite(2,LOW);
digitalWrite(12,HIGH); // 上段
digitalWrite(13,HIGH);
dsp();
digitalWrite(2,HIGH);
digitalWrite(12,LOW); // 中段
digitalWrite(13,HIGH);
dsp();
digitalWrite(2,HIGH);
digitalWrite(12,HIGH); // 下段
digitalWrite(13,LOW);
dsp();
}
感想: あんまり綺麗じゃない。
下段の点灯光が上段に放射されるので、3段とも灯った様に見える
赤色はイマイチだ
27個では余りにもショボイ
ランダムダイナミック点灯もやってみたが、イマイチ訴えるところがワカラン
なんか、ちょっと夢がしぼんでしまった・・・
でも、せっかくここまでやったのだからもう少し頑張らねば。マイク端子とも繋いでみよう。
まずは1.1kΩを300kに変更しなくては暗すぎる!
8*8*8だと総数512個のLEDCubeを作ったとして、
ダイナミック点灯で追いつくのかなあ?
Arduinoの電流だけでは足らないのではないの?
母艦でDirectXなんかを使って、シュミュレートとした結果を格納するのかな?それともリアルタイムで3D計算させるのかな?
三角関数が用意されているけど、計算させて点灯するので間に合うのかなあ?コプロが有るわけでもなさそうだし
点灯パターンを格納するとしたらEEPROMでは容量が不安だし、ならばSDカードから読み込む?遅そうだなあ・・。ダイナミック点灯の隙を見ながらロードするのかな?
などなど、悩むことが多すぎるわ。
【2014/8/28追記】
その答えがこちら(上)でした。シフトレジスタを使うとこの場合3本の出力で64Bitの出力を一気に扱えるし、電力も供給アップしてくれるという優れもの。1個国内50円程度(海外は14円などの例も)かららしい。サイトはこちら
シフトレジスタの判りやすい解説にはこちらも なるほど、Arduinoには予め組み込み関数ShiftOutも用意されているのか。
74AC164の場合、2本の信号線で制御でき、74AC164を複数個連結できる。まとめてレジスタに書き込んで、一斉に出力可能だ。
従って、上の8^3Cubeは8個の74AC164を連結すれば良いのだ。(ただし配線がすごいことになる。電力供給もちゃんと考えた方が良いそうだ)
16*16LED制御とか 8*8*8LEDCube記事(しかもカラーLED版まで。ゴーストに悩まされた結果、カラーLED編でプルアップ抵抗で解決したとか。参考になるなあ)
このページは、どうも64個のLEDで1群として8層(群)のダイナミック点灯をしているらしい(こりゃ効率的です:推測)
会社の電気に詳しい人に聞いたらこの記事を教えてくれた。さすが専門です。勉強になりました。
本日から天候が回復するはずだったが、結構局地的には強い夕立でした。