4*4*4の LED CUBE 作りに挑戦してみようかな(5)

4×4×4のLEDキューブ製作、いよいよ佳境に差し掛かってきました。

前回、不安定だったLED1個を正常なLEDへと交換し(キューブの内側だったけど、まだ4*4*4だから何とかハンダコテが届いたけど、これ以上大きいと致命的な可能性も)、すべてのLEDが正常に配線されていることを確認し、これでハード的には完成。

Arduinoと接続するとこんな感じに。うーん、イメージと違う。なんか、2階建ての建物みたいになっちゃった。やっぱり基板にピンヘッダを直接ハンダ付けしてArduinoと接続、の方が美しいな。

キューブとArduino合体

続いていよいよArduinoのプログラム(スケッチ)に入っていきます。

先ずはLayer(階層)をHIGHにしておいて

今回の製作のお手本としている LED CUBE CODE GENERATOR には、キューブの制御プログラムがあるのですが、構造の確認も含め、先ずは自分でテストプログラムを組んでみようかと。

ということで、出来上がったLEDキューブの構造確認から。前々回載せたキューブとArduinoとの配線図を、もう少し分かりやすく立体的に描画してみました。

LED配置とArduinoピン番号

基本的な考え方は、GNDに接続状態になったLayerと、プラス電圧がかかっているColumnとが交差している箇所のLEDが点灯する仕組みになっています。例えばLayer3とColumn6だと、3段目の6番LEDが点灯。

Layer1~4に対応するArduinoのピン(A0~A3)をHIGHにすると、トランジスタのベースに電流が流れ、それによりコレクタとエミッタがショートした状態になり、Layer(カソード)がGNDと接続。

因みにオリジナルの記事では2N2222A というトランジスタを使っていますが、ここではここで紹介したS8050 を使っています。

両者の増幅率(hFE)に大した違いはないようだし、負荷となるコレクタ電流は、2N2222A が 600mA で S8050 が 500mA なので、大勢に影響はないと思います。

なーんて、偉そうなことが言えるのも、ここでトランジスタのことを学んだお陰。最初にメロディICを使って音を出してみようとした時は、回路図にICが入っているから入れましたって感じで、意味も役割も分かっていませんでした。

いやいや、私も成長したもんだなー(って、遠い目をして自己満足に浸ってます)。

次は、Column(縦方向)を順番にHIGHに

さて話は戻り、縦方向の(1~16の内のどこかの)Columnに対応するArduinoの出力ピン(pin 0~13,18,19:例えばColumn4→pin3)をHIGHにすると、Arduinoから5Vの電圧がColumunに出力されます。

Arduinoのデジタル出力ピンは、通常0から13番までしかありませんが、pinMode()で設定することで、アナログ入力の6個のピン(A0~A5番ピン)もデジタル出力用に切り替えることができます。

この場合、順番にデジタル出力14~19番のピンとして扱うことができ、合計で20個のデジタル出力が可能になるんだそうです(これが、上図に書き加えたピン番号)。

以上のことを踏まえて

さて、これらのことを踏まえて、Arduinoのテストプログラムを組んでみましょう。

Layer1に接続されているトランジスタにベース電流を流した状態(pin14をHIGH)で、Column1から順に電流を流していく(pin0→pin1→pin2→・・・→pin19)と、一番下の階層のLEDが順番に点灯していきます。

Column16までいったらLayer1をOFF(pin14をLOW)にして、代わりにLayer2をON(pin15をHIGH)にしておいて、同じくColumn1から順に電流を流していくと、今度は2段目の階層が順番に点灯していきます。

これを繰り返すことで、64個のLEDが下から順番に点灯していきます。これをスケッチにしたのが下のものです。


因みに上の表示は、Gistというウェブサービスを使っています。こんなことも出来るんですね。

で、Arduinoに書き込み、LED CUBE 初点灯。結構、緊張する。


何とか動いてくれました。ホッと一安心。

次回、本チャンのプログラムを書き込んでいきます。


コメント:












管理者にだけ表示を許可する
トラックバック:
トラックバック URL:

http://55life555.blog.fc2.com/tb.php/1324-ecd2438e

<< topページへこのページの先頭へ >>