google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

チャーリープレクシング (Charlieplexing) の回路図

 今年のMake2018自作のLEDバッチを持って行ったので、それをネタにしていろいろな方からお話を聞くことが出来ました。そこで知ったのですが、たくさんのLEDを出来るだけ少ないポート数で点滅させたい場合は、チャーリープレクシングでやるのが定石のようです。

 実はその時はチャーリープレクシングを知らなかったので帰ってから調べて、なるほどと思いました。特に ikkei さんの書かれた多くの解説記事が参考になりました(charlieplexing ikkei で検索するといっぱい出てきます)。ちなみにikkeiさんとはMFT2018でお会いして資料まで頂きました。

 あと、最近の居酒屋ガレージ日記さんの、電波チェッカ用12LEDレベル表示回路と言う記事にも同じテクニックが解説されています。こちらでは、MICROCHIP のアプリケーションノートの、Complementary LED Drive というタイトルが紹介されています。

 チャーリープレクシングというネーミングは、「チャーリーさんが考案した、少ないピン数でLEDをマルチプレクスして光らせる方法」というところだと思います。でも、人の名前を使うより、MICROCHIPのドキュメントのように Complementary LED Drive と、その技術の名前で呼んだ方がしっくりきます。

 ともかく、そんなことを考えながらチャーリープレクシングの回路について、自分なりにおさらいしてみました。

▼4ポートチャーリープレクシングの回路図
チャーリープレクシング
 4ポートあればこの接続で12個のLEDを自在に点灯させることが出来ます。これ、いきなり見せられると配線ルールを発見するのにちょっと時間がかかりますが、要はポートの全てのペアの間に逆並列にLEDが入っています。

 この回路では、点灯させたいLEDに電流が流れるように、繋がっているポートをHighとLow、それ以外のポートをHi-Zにすれば一つのLEDを狙い撃ちで点灯させることが出来ます。なお、狙ったLEDと並列に、2つ以上のLEDが直列になったパスがいくつか存在します。でも、Vfの関係でそちらのパスには電流は流れないので、狙ったLED以外が点灯することはありません。

 チャーリープレクシングで表示出来るLEDとポートの数(N)の間には、LED数 = N*(N-1) の関係があります。これを図で示すと、次のようになります。

▼多角形の頂点を結ぶ線
ピン数に対する組み合わせ数
 頂点がポートのピンで、その間を結ぶ線の数がペアの数。一つの線にLEDを2個逆並列で接続するので、接続出来るLEDの数は線の数の2倍ということになります。(4ピンなら線の数は6本なので、LEDの数はその2倍の12個)

 数についてはこの考え方が判り易いと思います。ちなみに、順列組み合わせが得意な方なら、コンビネーションを使って 2 x 4C2とやって求める方法もあります。

 これで理屈は判りました。あとは配線をどうするかですが、ここは回路図をマトリクス形式で書いた方が、見通しが良くなることが多いです。

▼マトリクス形式で書く
格子状配線とその変形
 左がマトリクス形式で書いた回路図で、この記事の最初の回路図と同じ接続になっています。これでもいいのですが、交差した位置にLEDが無いので、この配置のまま表示に使うと、隙間が出来てよろしくありません。

 そこで、右の図のように右上のLEDを下にシフトさせれば隙間は無くなります。ただこの場合、半分のLEDの向きを逆にする必要があります。これ、間違えないように注意して実装すればいいのですが、細かいことを言うとLEDの光の中心がパッケージに対して上下対称に出ている保証は無いので表示ムラが出そうです。ということでちょっと心配なやり方です。
 
 もっとうまい配線方法が無いかと思って調べてみたら、ありました。サイズが大きいですが、Spark Fun LED Arrey -8x7の配線方法です。

▼SparkFun LED Arrey - 8x7 の回路図
8x7 チャーリープレクシング
 これは SparkFun のweb にある schematics を書き直したものです。これならLEDの向きは全部同じになり、配線も判り易いです。また、これを元にアレイのサイズを変えるのも簡単でしょう。

◆ダイナミック表示に伴う明るさの低下
 チャーリープレクシングではダイナミック点灯させるので、見掛けの明るさが低下します。でも最近のLEDの発光効率は高いので、これは問題になり難くくなっていると思います。

 ちなみに、上のSparkFun LED Arrey - 8x7 ではLEDの電流制限抵抗は82Ωで、これが両側に入るので合計164Ωということになります。これを1/56のデューティで点灯すると、等価的な電流制限抵抗は9.2kΩで、何とか許せる範囲だと思います。

 あと、電源の電圧とLEDのVfのカーブ、あとポート出力のVI特性などを注意深く選んで、電流制限抵抗無しという使い方もあります。この場合、LED単位では無くライン単位に駆動する手もあると思います。

◆まとめ
 チャーリープレクシングについてまとめてみました。なかなか面白い回路だと思いますが、トライステートのドライバーの出力の使い方としては当たり前で、個人名を付けるほどユニークなアイディアかと言われると、ちょっと疑問です。

 この記事の最初の方にちょっと書いたように、例えば「オールペア・コンプリメンタリー駆動方式」などと、使っている技術の名前で命名した方が、判り易かった気がします。
関連記事

コメントの投稿

管理者にだけ表示を許可する

皆さん凄い

ikeiさん凄いですよね。技術も凄いですが、活動もワールドワイドで。
私は7セグをダイナミック点灯で点灯させる時にセグメントによりLEDが直列になり発光電圧に届かなかった時にコンデンサをかませてチャージポンプを作り解決されていた記事に感心させられました。
 もちろんラジペンさんも凄いです。

re:皆さん凄い

老技師さんおはようございます。

ikkeiさんは今は確かMaker Fair Shenzhen に出展中ですよね。回路もさることながら、美しい仕上がりもすごいです。

グッドアイデア!

目から鱗です。
あと1本ポートが足りない、って場面が度々あったのですがこの発想には至りませんでした。悔しいですし、今までの設計をやり直したい気分ですね。

re:グッドアイデア!

大泉さん、おはようございます。

これ判ってしまえばなるほどですが、なかなか思い付かないですよね。

ちなみにトランジスタのドライバを付けるとか、ダイオードで電流制限抵抗をバイパスするとか、はたまた電流制限抵抗を省略するとか、いろいろな発展形があるようです。

ちなみに、机上検討だけではつまらないので、実際にやってみたくて部品を手配中です。

使用電圧

Panda43です。
私もこの方法でいろいろな物を作っていますが、赤LEDを使用する場合は注意が必要です。
赤LED のvFは2v前後のものが多いので5vで使用すると2個直列で4vになり若干点灯するという現象が発生します。
赤LEDを使用する場合は3.3vで動作させればそのようなことは起きません。
また、入力設定にしたポートがプルアップされているマイコンでは、そのピンからL設定のポートに若干電流が流れて高輝度LEDでは点灯してしまうようです。
5vで赤LEDを使用する場合は注意が必要です。

re:使用電圧

Panda43さん、情報ありがとうございます。

赤色LEDはVfが低いので、電源電圧5Vで保護抵抗無しだと電流が流れ過ぎて危ないかな、と思っていたのですが、他のLEDもうっすらと点灯するんですね。

実は机上検討だけでは面白くないので、チャーリープレクシングの回路の基板と、赤と緑色のLEDをAliExpressから購入中です。
届いたら実験してみますね。
カレンダー
10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード