【夏の自由工作2018】立体的なデザインを表現できるLEDキューブを作ってみた
こんにちは、3日目担当のささきさんです。突然ですが、みなさんの学生時代の夏休みの思い出はどんなものがあるでしょうか?
僕の夏休みといえば、毎年夏休み終わりギリギリになってようやく宿題や工作をはじめて結局終わらず……みたいなことを一番思い出します(笑)。
まさか社会人になってから宿題をやるとは思いませんでしたが、今年の宿題は最後までやりきるということを頑張っていきたいと思います!
光る立方体!LEDキューブを作ってみよう
さて、今回はLEDをつないでキューブ状にしていく、LEDキューブを作ってみたいと思います。
LEDを使って電子工作をするときは、普通だと平面的にブレッドボードに挿したり半田付けしたりしますよね。LEDキューブは、平面的に配線するだけでなく、縦にも配線していきます。
─ LEDキューブの画像検索
今回は各面9個ずつの小さなものですが、たくさん繋いで大きなものを作ることもできるので、自由工作にもピッタリだと思います!
用意するもの
Arduino Uno
Arduino Unoは、電子工作では定番の開発ボードで、電子回路の制御等をすることができます。
5mm赤色LED 27個
今回は赤く光るLEDを用意しました。光る色を指定できるフルカラーLEDを使っても面白いですね!
150Ω抵抗 3個
電流を調整するカーボン抵抗です。色によって何Ωか見分けることができます。
詳細はドキュメントの抵抗器を参照してください。
ユニバーサル基板
部品を半田付けするための穴が並んだ基板です。それぞれの穴には銅箔(ランド)が付いていて、ジャンパや脚を半田して配線していきます。
自分で回路を組む場合は、ブレッドボードなどで動作を確認してから半田付けするのがオススメです。
ジャンパー線 24本
抵抗やLEDなどの電子部品を繋ぐときに使います。
ジャンパ線には1cmなどの短いものから30cm以上の長いものまであります。今回は、10cmくらいのものが使いやすいと思います。
ブレッドボード
電子回路を組む際に半田付けなしで手軽に配線をすることができる基板です。
半田付けをしないので、回路を間違っても簡単に組み直すことができる利点があります。
LEDキューブの半田付け
回路の作り方を説明していきます。
LEDの脚の加工
まず、LEDの脚を加工していきます。
アノード(長い方の脚、プラス側)を画像のように根元から90度に曲げます。
次に、曲げた足をさらに90度曲げます。
アノードを曲げ終わったら、カソード(短い方の脚、マイナス側)をアノードと90度になるよう根元から曲げます。
この手順をLED27個分繰り返します。
ベース組み
LEDのカソード同士を半田付けします。半田部分がアノードにくっつかないよう注意してください。
LED3つ組み(写真上部)を3セット、LED2つ組み(写真下部)を9セット作ります。
面を作る
LED3つ組みのそれぞれのカソードに、LED2つ組みを繋げていきます。
3セット分繋げ終わると、以下のような感じになります。
立方体を作る
今度は、上記でできた3セットを縦に重ね、アノード同士を繋げていきます。
3段分繋げ終わるとLEDキューブは完成です。
ユニバーサル基板へ取り付ける
ユニバーサル基板にキューブのアノード9箇所を取り付け、それぞれにジャンパー線を繋ぎます。
カソード3箇所(宙に浮いた脚)にも、それぞれジャンパー線を半田で繋ぎます。
回路を組む
この回路図はLED CUBEを真上から見たものになります。
Arduinoの0〜8番ピンにアノードを、9〜11番ピンには抵抗を挟みカソードを接続します。
配線すると下記のようになります。
プログラム
このプログラムはLEDを1つ1つ順番に点灯させるプログラムです。Arduino IDEという専用のフリーソフトを使って書き込みます。
詳細はドキュメントのArduino IDEをPCにインストールからご覧ください。
// LEDの列のカウンタ
int colCount;
// LEDの段のカウンタ
int rowCount;
void setup() {
colCount = 0;
rowCount = 9;
// 使うピンをセットアップ
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
// LEDを500ms光らせて消す
digitalWrite(colCount, HIGH);
digitalWrite(rowCount, LOW);
delay(500);
digitalWrite(colCount, LOW);
digitalWrite(rowCount, HIGH);
// 段と列をずらす
rowCount++;
if (rowCount == 12) {
rowCount = 9;
if (colCount != 8) {
colCount++;
} else {
colCount = 0;
}
}
}
光らせてみよう
プログラムを書き込んだらいよいよ完成です!
まとめ
今回の夏休み自由工作は無事完成させることができました!
赤色LEDの3×3×3で作りましたが、違う色のLEDを使ったり、個数を増やしたりすることで、表現したいものの再現度を高めることができます。
皆さんもぜひLEDキューブを作ってみてください!
明日の担当はテクニカルエディター・ききさんです。お楽しみに!