2018-10-15 22:59 — asano
カテゴリー:
昔LED駆動の実験をした基板です。
いかに少ないポートで多くのLEDを駆動(制御)できるかというものです。
実験なので最小規模の3ポートでLED6つの構成です。6つのうち任意の1つを点灯することができます。複数を点灯させることもできなくはありませんが一部の組み合わせしかできず、電流制御にも問題が生ずるので使いにくいと思います。必要ならダイナミックスキャンを行ないます。
基板からの線は3本です。これへのLEDの繋ぎ方は6通りあるので、最大6つまでは独立して制御できる可能性があります。
ここで3本のうち1本を"H"に、もう1本を"L"に、残りをHigh-Zにすると、"H"の線にアノードが"L"の線にカソードが接続されているLEDが点灯します。
この図だとD1が順方向なので点灯し、D2,D5,D6は逆電圧なので当然消灯します。
問題はD3,D4なのですが、LEDはVFがほぼ一定なのでD3,D4にはほとんど電流は流れません。この問題があるのでVFが大きく異なるLEDの混在はできません。試したことはありませんが白熱電球にダイオードを組み合わせるのもNGでしょう。
3本の線は対称なのでどう入れ替えても同じことになります。
3本をn本に増やせば n × ( n - 1 ) 個のLEDが付けられます。
これを考えたきっかけはLED装飾つきのUSBケーブルを見かけたことでした。流れるように点滅していたのでどうなっているのかな?と。マイコン内蔵LEDなんてのもありますからそういうのを使っていたのかもしれませんが、当時汎用品で作るならどうするかと考えてこれにたどり着いたのでした。
その後、この回路には「Charlieplexing」という名前が付いていることを知ったのでした。名前がわかって検索すると結構知られているみたいですね。
マイコンにはAtmelのAT90S2323-10PCを使っていました。最近のATtiny系ならリセット回路もクロックも内蔵でI/Oピンが多く取れるのですが、これはRESET, XTAL1, XTAL2, GND, VCCと5ピンも使われてしまいI/Oは3ピンしかありません。
コメントを追加