
Aliexpressで緑色LEDが1000個143円で販売されていたので購入。ありがたいことにレンズが乳白色なのでやすりがけしなくても光が拡散してくれる。 半年後のまちかね祭での展示を目標に、\(10\times10\times10\) のLEDキューブ制作が始まった。
| 部品名 | 個数 | |
|---|---|---|
| RasberryPi Pico | 1 | type-C端子 |
| LED | 1000 | 乳白色 |
| 74HC595 | 13 | シフトレジスタ |
| 2.7k | 100 | カーボン抵抗 |
| TBD62083 | 1 | トランジスタアレイ(ソースタイプ) |
構成は基本的に\(4\times4\times4\) のLEDキューブと変わらない。
変更点として今回はラズパイPicoで制御を行う。理由はGPIOがたくさんあること、割り込み処理可能なピンが多いことである。(割り込み処理は結局うまく使えなかった...)
平面(10×10)の点灯パターンを8bitシフトレジスタ13個で生成し、レイヤー指定をトランジスタアレイで行う。シフトレジスタはカスケード接続し、マイコンからは3+10の13本の信号線で1000個のLEDを制御する。
LEDの配線は図のようになっている。アノード側に平面のパターンを入力し、カソード側でレイヤー指定をしている。つまりアノードが5VかつカソードがGNDになった個所だけLEDが点灯する。アノード側にはシフトレジスタの出力が、カソードにはトランジスタがある。
| ピン番号 | 役割 | ピン番号 | 役割 |
|---|---|---|---|
| 1 | QB | 16 | Vcc |
| 2 | QC | 15 | QA |
| 3 | QD | 14 | SER |
| 4 | QE | 13 | OE |
| 5 | QF | 12 | RCLK |
| 6 | QG | 11 | SRCLK |
| 7 | QH | 10 | SRCLR |
| 8 | GND | 9 | QH' |
8bitシフトレジスタ74HC595を使用する。マイコンからSER(データ)、RCLK(ラッチ)、SRCLK(クロック)の3つの信号を送信し、AからHまでの8つの出力を使うことができる。 QH'ピンを次のシフトレジスタのSERピンにつないでカスケード接続をすることで8つづつ出力の数を増やせる。秋月電子で一個40円、たくさん用意しておこう。
シフトレジスタへの信号入力 SER,RCLK,SRCLKは3.3Vから5Vへのレベルシフトを行っている。
わざわざレベルシフトする理由は、
要するにLEDを明るくしたいだけである。シフトレジスタが5Vで動作にするので、入力信号も3.3でなく5にしたい。(3.3Vだと閾値がたぶんギリギリ)ただし、信号のHIGH/LOWが反転することに注意する。
シンクタイプのトランジスタアレイTBD62083を使用。1~8番ピンが入力、11~18番ピンが出力である。入力がONになると出力がGNDに落ち、LEDのカソードがGNDにつながる。チャンネルごとに0.5Aまでの電流を流せるのでLED一つ当たり0.5A/100=5mA未満に電流制限をしなければならない。今回は(5-2)/2.7k=1.1mAくらいになるよう抵抗値を設定している。高輝度LEDなのでこれで十分明るい。
まず、MDFで作った治具にLEDを並べ、\(10\times10\) のマトリクスを作成する。今回は画像の横方向にアノード、縦方向にカソードをつないでいる。これを10セット作成する。
作成したマトリクスをアノードが下、カソードが横になる向きで基板に垂直に差し込む。今回は取り外せるようにピンソケットに差し込むようにしている。
カソードはレイヤーでひとまとめにする。
キューブができたらシフトレジスタの出力に抵抗を半田付けした。これも100個あるのでなかなか時間がかかる。
完成まで長いので、こまめに点灯確認を行いながらシフトレジスタをひとつづつ増やしていく。