回答:
Charlie-plexing Nラインを使用してN *(N-1)LEDを制御すると考えています。ウィキペディアには良い記事があります。
私の友人であるジミー・P・ロジャースは、Arduinoシールドに126個のLEDを取り付けています。彼はチャーリープレックスを使用してLEDを制御します。彼の掲示板の情報は -jimmieprodgers.com/2009/12/my-development-process/(archive.orgのコピー)にあります。
前回のボストンArduinoユーザーグループ会議で、ジミーP.ロジャースは、ラベル付きネットを持つマトリックスとしてチャーリープレックス図を描きました。この方法で描かれた回路図は、コンセプトを伝える上で良い仕事をしているように見えました。同様の回路図をいくつか作成しました-http ://wiblocks.luciani.org/FAQ/faq-charlie-plex.htmlを参照してください
jimmieprodgers.com
この回答のリンクにはウイルスがロードされています。
Shift Registers(http://en.wikipedia.org/wiki/Shift_register)を使用して、単一のシリアルストリームから必要な数の並列出力を取得できます。
電力の制約に注意する必要があります。私は実際に自分でArduinoを使用したことはありませんが、PICのように電流制限があると想定しています。また、シフトレジスタには電流制限があります。これに遭遇した場合、MOSFETのようなものを使用して、マイクロコントローラーから多くの電力を直接引き出すことなくLEDを制御できるようにする必要があります。
所定のAVRマイクロコントローラーピンは最大40 mAをソースでき、チップによってソースまたはシンクされる(つまり、グランドおよびVccピンで)合計電源は200 mA未満である必要があります。
Charlieplexingは、大量のLEDが必要な場合に最適なソリューションですが、一度に1つのLEDのみを点灯させることで対処できます。標準のArduinoボード(Duemilanoveなど)は、TX、RX、リセット、またはピン13をカウントしない17個の「空き」I / Oピンを提供します。したがって、17 * 16 = 272個のLEDを接続できます。これは、特に1つのLEDを点灯したままにしている場合や、わずかな数の間ですばやくスキャンしている場合に有効です。しかし、パターン全体でマトリックス全体を点灯させようとすると、それぞれが1/272の時間(わずかに小さい)で点灯していることがわかります。そのため、駆動電流が任意の瞬間に30 mAの場合、各LEDは平均電流は約0.1 mAで、かなり暗いです。
それほど多くのLEDを必要とせず、代わりにより多くの輝度が必要な場合は、従来の多重化がより良いオプションです。この場合、行の一部を行として使用し、一部を行列の列として使用します。10 mA LED電流を使用する場合、4列13行のマトリックスを定義できます。この場合、1行の4つのLEDがすべて同時に点灯し、行をスキャンします。その後、各行は10 mAの電流で時間の1/13にあるため、平均LED電流は0.76 mAにもなりますが、4 * 13 = 104個のLEDしか得られません。(charlieplexingを使用した場合よりもLEDごとに確実に明るくなります。)
最後の例の制限は、ピンを駆動する各行が4x10 = 40 mAを供給するため、AVRのピンごとに40 mAです。外部トランジスタ(安価で小さくてもかまいません)を行出力に追加できるようにすると、その特定の制限を避けて明るくすることができます。たとえば、8行9列、合計72個のLEDを備えた8x9アレイを作成できます。トランジスタを介して選択された8つの行の1つが一度にオンになります。特定の列の最大9個のLEDを同時にオンにして、20 mAで駆動できるため、トランジスタから180 mAが供給され、AVRの電流制限内に留まります。LEDあたりの平均電流は20 mA / 8 = 2.5 mAになりました。通常はかなり明るいです。
17個のI / Oピン、17個のNPNトランジスタ(電流をブーストするエミッタフォロア)により、1/17デューティサイクルで任意の組み合わせで272個のLEDを表示し、平均電流または0.7mA(200mA / 272)一度に200mAをプルダウンするチップの能力。ダイオードを追加して0.7ボルトのドロップを得ると、別の17個のLEDを追加できます(デューティサイクルを1/18に減らします)が、輝度は他のLEDとは完全には一致しません。
Windell Oskayは、トランジスタを追加せずに104個のLEDが最大であると主張していますが、 Tom Igoe は、単一のArduino Megaによって直接制御される128個のLEDのマトリックスの写真を投稿しました。
Tom Igoeは、データシートに記載されている「ピンごとの絶対最大電流」を短時間超えることで「不正行為」をしていますか?