全国高校eスポーツ選手権運営の舞台裏。我々はたびたびそう思います。そんなときに使うのがArduinoとTLC5940です。TLC5940はテキサスインスツルメンツのLEDドライバICで、1チップで最大16個のLEDを制御できます。各LEDを定電流で発光させることが可能なので、LED毎に電流制限抵抗を設ける必要がありません。PWMにより各LEDの見かけ上の明るさを4096段階に調整できます。ほか、LED毎の明るさのバラつきを記録して明るさ補正に役立てる機能や、壊れて消灯したLEDを検出する機能などもあるようです。非常に便利なICですが、このICを単体で使い、外部回路を自作するなどして利用するのは容易ではありません。ArduinoにはTLC5940用のライブラリ(機能を拡張するソフトウェア)があるので、Arduinoと組み合わせれば簡単に使えます。テキサスインスツルメンツのLEDドライバIC、TLC5940NT。28ピンのDIPなので、ブレッドボード上にそのまま挿すことができますTLC5940はArduinoから容易にコントロールすることができます。ArduinoとTLC5940を組み合わせれば、ICや外部回路に関する詳しい知識がなくとも、最大16個のLEDを自由に光らせることができるというわけですArduinoとTLC5940を用意したら、さっそく配線してみましょう。ほかに必要なのは、ブレッドボード、ジャンプワイヤ、光らせたい数のLED(最大16個)、それから抵抗器1本(抵抗値は後述)くらいです。Arduinoに対するプログラミングのため、もちろんPCとUSBケーブルも必要ですね。ちなみに、TLC5940は日本では単体入手しにくいICです。Studioから購入できます。価格には開きがありますが、1個で400~700円程度です。ArduinoとTLC5940の配線図。TLC5940とArduino、TLC5940とLEDは、ジャンプワイヤなどの導線を使って直結するだけです。ほかに必要な電子部品は抵抗器×1本のみで、今回は4.7KΩのものを使いました配線の様子。ブレッドボードを使ってTLC5940とLEDを接続したため、ジャンプワイヤは7本だけで済みました。ブレッドボード上には7本の単線ジャンプワイヤと抵抗器1本を使いましたわずかな配線で、左に見える16個のLEDを自由に点灯させることができます今回はArduinoをUSBバスパワーで動かしています。TLC5940およびLEDを駆動するための電源はArduinoから得ていますTLC5940が各LEDに流す電流の量を決めるのが、中央に見える抵抗器の抵抗値ですTLC5940は、定電流つまり一定の値の電流を各LEDに流すことができるICです。電流の量は、TLC5940の20番ピン(IREF)とGND(-極)を結ぶ抵抗器の抵抗値によって決まります。電流の値を決める計算式は以下のとおりです。今回は4.7KΩ(4,700Ω)の抵抗器を使っていますが、これは各LEDに8mA程度の電流を流したいと考え、上の計算式に当てはめた結果です。最終的に使うLEDが超高輝度タイプなので、8mA程度流せば十分明るく輝きます。明るくないタイプのLEDを使う場合は、都度、この計算式から適切な抵抗値を算出してください。配線と同時に、Arduinoへのプログラミングが必要です。プログラミングの前に、PCにTLC5940用のライブラリをインストールする必要があります。ライブラリはArduino公式サイトからダウンロード可能です。ライブラリをダウンロードしたら展開し(展開すると“Tlc5940”という名のフォルダが現れるはすです)、“/hardware/libraries/”以下にコピーしてください。Files\Arduino\arduino-0017\hardware\libraries”の“libraries”フォルダのなかに、Tlc5940フォルダをコピーします。IDEを使ってArduinoに書き込んでみてください。0;}このスケッチでは、16個のLEDのうち8個のLED(OUT0~OUT7/28番ピンと1~7番ピンに接続したもの)がポワンポワンと明滅し、残りの8個のLED(OUT8~OUT15/8~15番ピンに接続したもの)が点灯し続けます。100”の行の数値を変更します。数値はミリ秒で、大きくするとプログラム進行中の遅延時間が増え、明滅が遅くなります。0-4095”の行の(4095の)数値を変えることで、PWMのデューティー比を変更できます。4095なら100%デューティー比=最大の明るさとなり、0なら消灯です。シンプルなスケッチですので、改造にチャレンジしてみてください。上記のスケッチを読み込んで動作させてみたところ。8個のLEDが明滅し、残り8個のLEDが同じ明るさで点灯し続けます【動画】実際にはこのように光ります。ArduinoとTLC5940のみのシンプルな回路で、16個ものLEDを自由に制御できるというわけですArduinoと組み合わせたTLC5940は、とても身近な“LEDを楽しむためのIC”として汎用的に使えます。電子部品のうちとりわけLEDが好きな我々は、そんな理由からTLC5940を多用しています。そこで、TLC5940をより手軽に使うために、TLC5940接続用シールドを作ってみました。スイッチサイエンスのバニラシールドを使い、Arduino/TLC5940間の配線を省けるシールドを作ってみました表面を見たところ裏面の様子。ArduinoにつながるピンとTLC5940が接続されている程度の単純な配線ですTLC5940がLEDに対して流す電流値は、接続される抵抗器の抵抗値で変化します。このシールドでは抵抗器を交換可能にしましたシールド+ArduinoとLEDを接続したところ。このシールドを使った場合、最大で17本のジャンプワイヤが必要になますが、LED配置の自由度が大いに増しますシールドの手前に見えるピンは+極の電源線となるVcc(5V)です。TLC5940はシンクドライバで、ICに対して電流が流れ込んでいってLEDが点灯しますLEDを点灯させた様子TLC5940は入手性もあまりよくなく、高価でもあるICですが、1つ持っているといろいろな“Lチカ遊び”ができます。Arduinoのスケッチを少し変更するだけで、さまざまな光り方を楽しめますし、自作Arduinoと組み合わせればユニークなLEDプロジェクトを複数作るのも現実的です。みなさんもぜひTLC5940を手に入れて試してみてください。最後に、TLC5940とは別のLED関連アイデアを1つご紹介します。電子部品のなかでも特にLEDが好きな我々は、以前から「もっとLEDの光を美しく楽しむ方法はないか?」と試行錯誤していました。そんななか生まれたのがビーズにLEDを埋め込んで光らせるという方法です。我々は“LEDビーズ”と呼んでいます。以下に写真と動画にてご紹介しましょう。用意するのはアクリル製のビーズです。このなかにLEDを埋め込みますので、直径15mm程度以上のビーズだと作業がラクです。透明や半透明のビーズが適切です今回は直径が3mmの砲弾型LEDを埋め込みます。プラスチック用のドリルビットなどを使い、ビーズに穴を空けます。砲弾型LEDの根元は、直径3mmのものであっても直径4mm程度の出っ張りがありますので、LEDを完全に埋め込みたい場合は直径4~5mmのドリルを使うとよいでしょうこのようにLEDを埋め込みます。LEDは光が周囲により広がりやすい広角タイプを選ぶと、ビーズがきれいに輝きますLEDをビーズに接着する前に、どのように光るかチェックを。ビーズの色とLEDの色で、輝き方が大きく変わります。光に納得したなら接着剤で固定しましょう我々が試作した“LEDビーズ”の一部。キレイに光らないものも少なくありませんキレイに輝いた例。大理石のように見えたビーズですが、青色LEDを入れて光らせると惑星のように見えますこちらは赤色LEDの例。ビーズは透明感のあまりない、くすんだグレーのようなものでした白濁した半透明のビーズに黄色LEDを入れたところ。ちょうちんのようにも見えます宝石のようなカットの入った透明のビーズに黄色LEDを入れてみました。LEDの光がいくつにも分かれて見えます花の形をしたアクセサリ用パーツに白色LEDを挿入してみましたあまり透明感のない白い石のようなビーズに白色LEDを入れてみたところ。ビーズ内部のヒビが光のニュアンスを変え、不思議な輝きを放ちます少し気泡の入った透明/カット入りのビーズに緑色LEDを入れてみましたさきほどのTLC5940の回路のLEDを、LEDビーズに置き換えました。【動画】花畑をイメージしましたが、思ったようには光りませんでした。スケッチやLED色、LEDビーズの配置をもっと工夫する必要がありそうです。24日)船田戦闘機、スタパ齋藤、上杉季明によるユニット。玄人ではなく、それらに対して強い興味を抱いている。触れていくプロジェクトである。