arrow-righthamburgerlogo-marksocial-facebooksocial-githubsocial-twitter
2018.08.15

【夏の自由工作2018】立体的なデザインを表現できるLEDキューブを作ってみた

佐々木さん

夏の自由工作2018
   このエントリーをはてなブックマークに追加  

こんにちは、3日目担当のささきさんです。突然ですが、みなさんの学生時代の夏休みの思い出はどんなものがあるでしょうか?

僕の夏休みといえば、毎年夏休み終わりギリギリになってようやく宿題や工作をはじめて結局終わらず……みたいなことを一番思い出します(笑)。

まさか社会人になってから宿題をやるとは思いませんでしたが、今年の宿題は最後までやりきるということを頑張っていきたいと思います!

光る立方体!LEDキューブを作ってみよう

さて、今回はLEDをつないでキューブ状にしていく、LEDキューブを作ってみたいと思います。

LEDを使って電子工作をするときは、普通だと平面的にブレッドボードに挿したり半田付けしたりしますよね。LEDキューブは、平面的に配線するだけでなく、縦にも配線していきます。

ledcube

─ LEDキューブの画像検索

今回は各面9個ずつの小さなものですが、たくさん繋いで大きなものを作ることもできるので、自由工作にもピッタリだと思います!

用意するもの

Arduino Uno

Arduino Unoは、電子工作では定番の開発ボードで、電子回路の制御等をすることができます。

arduino

5mm赤色LED 27個

今回は赤く光るLEDを用意しました。光る色を指定できるフルカラーLEDを使っても面白いですね!

led

150Ω抵抗 3個

電流を調整するカーボン抵抗です。色によって何Ωか見分けることができます。

詳細はドキュメントの抵抗器を参照してください。

carbon

ユニバーサル基板

部品を半田付けするための穴が並んだ基板です。それぞれの穴には銅箔(ランド)が付いていて、ジャンパや脚を半田して配線していきます。

自分で回路を組む場合は、ブレッドボードなどで動作を確認してから半田付けするのがオススメです。

universalboard

ジャンパー線 24本

抵抗やLEDなどの電子部品を繋ぐときに使います。

ジャンパ線には1cmなどの短いものから30cm以上の長いものまであります。今回は、10cmくらいのものが使いやすいと思います。

jumper

ブレッドボード

電子回路を組む際に半田付けなしで手軽に配線をすることができる基板です。

半田付けをしないので、回路を間違っても簡単に組み直すことができる利点があります。

bread

LEDキューブの半田付け

回路の作り方を説明していきます。

LEDの脚の加工

まず、LEDの脚を加工していきます。

アノード(長い方の脚、プラス側)を画像のように根元から90度に曲げます。

anode

次に、曲げた足をさらに90度曲げます。

anode2

アノードを曲げ終わったら、カソード(短い方の脚、マイナス側)をアノードと90度になるよう根元から曲げます。

casode

この手順をLED27個分繰り返します。

ベース組み

LEDのカソード同士を半田付けします。半田部分がアノードにくっつかないよう注意してください。

LED3つ組み(写真上部)を3セット、LED2つ組み(写真下部)を9セット作ります。

3set

2set

面を作る

LED3つ組みのそれぞれのカソードに、LED2つ組みを繋げていきます。

3-2

3セット分繋げ終わると、以下のような感じになります。

3-3

立方体を作る

今度は、上記でできた3セットを縦に重ね、アノード同士を繋げていきます。

vertical

3段分繋げ終わるとLEDキューブは完成です。

cube

ユニバーサル基板へ取り付ける

ユニバーサル基板にキューブのアノード9箇所を取り付け、それぞれにジャンパー線を繋ぎます。

universal

カソード3箇所(宙に浮いた脚)にも、それぞれジャンパー線を半田で繋ぎます。

casode2

回路を組む

この回路図はLED CUBEを真上から見たものになります。

circuit

Arduinoの0〜8番ピンにアノードを、9〜11番ピンには抵抗を挟みカソードを接続します。

配線すると下記のようになります。

circuit2

プログラム

このプログラムは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キューブを作ってみてください!

明日の担当はテクニカルエディター・ききさんです。お楽しみに!

ちゃんとく
初心者向けで勉強になるし、応用も効くので100点。ただし、表紙の流れを汲めなかったので減点20点です。
   このエントリーをはてなブックマークに追加