16×16のLEDマトリクスの制御

初めに

初めまして。中3のYです。今回が初めての部誌ですがよろしくお願いします。
私はプログラミングの経験がなかったのですが、中学生になってプログラミングに興味を持ち物理部に入りました。Arduinoというマイコンボードを用いて中1では前後に動くモーターカー、中2では8×8のLEDドットマトリクスと電子ブザーを使った作品を作ってきました。
そして今年は2色16×16のLEDドットマトリクス、つまり去年と比べ4倍の大きさで2色LEDのものを扱っていましたが、今までよりかなり制御に苦戦したので、そのことについて書こうと思います。

「LEDドットマトリクス」とは

LEDについては知っている方も多いと思いますが、「LEDドットマトリクス」は知らない方も多いと思います。私も使うまで名前すら聞いたことがありませんでした。
LEDマトリクスはLEDを格子状に並べたものです。この説明だとわかりにくいと思いますが、下の写真を見れば何となく分かるかもしれません。

LEDドットマトリクス画像{width=50%}

これです。大きいサイズのものなら、駅の電光掲示板などで利用されているのを見たことがあるのではないでしょうか。
先ほど出てきた16×16のLEDドットマトリクスというのは、写真と同じようにLEDが縦横それぞれ16列ずつ並んだものです。なのでこの場合、16×16、計256個のLEDを制御することになりますが、LEDドットマトリクスならこれを少ないピン数で制御できます。つまり256個のLEDをそれぞれ制御するよりもかなり簡単な回路で制御できるということです。

苦戦した理由

今年の作品に苦戦した理由は主に2つあります。

  1. 去年と比べて部品を扱うのがかなり難しかった。 去年はMAX7219というドライバ(制御を簡単にしてくれる部品)や、それと一緒に使うことができるライブラリ(コードを簡単にしてくれるもの)を用いることで制御がかなり簡単になっていました。ですが、今年の作品に使った部品でどうすればそれらを使えるのか分からなかったので今年は使いませんでした。
    また、単純にLEDの数が4倍、さらに2色になっていたので制御が難しくなっていました。具体的に言うと、制御に必要なピン数が去年のものはMAX7219によって少なくなっているのもあって5本だったのに対し、今年は48本でした。

  2. 今年扱った部品の扱い方に関するインターネット上の情報が見つからなかった。
    中1、中2での作品で扱った部品では、部品の名前などをネット上で検索すれば制御の仕方が詳しく書いてある記事が簡単に見つかり、それを作品制作の参考にしていました。ですが、今年の作品に使ったLT-5016M1というLEDドットマトリクスについての記事は検索しても良さそうなものがなかなか見つかりませんでした。結局自分の部品とは少し違うものを使っている記事を参考にしたのですが、自分で配線やコードを考える必要があり、今までそのようなことがあまり無かったのもあって、かなり大変でした。

制御

ここからはどう制御したのかの話をしようと思います。ですが部誌を書いている現在、まだ完全に制御ができていません。なので誤りがあるかもしれませんが大目に見てください。
まず、このLEDドットマトリクスはアノードコモンでピンが48本あります。1~16行目にそれぞれ対応したアノードの1~16ピン、1~16列目にそれぞれ対応しているカソードのうち、光が緑色になる17~32ピン、光が橙色になる33~48ピンです。1~16行から1つずつ行で点灯させ、それぞれの行で点灯させる部分を列で光らせるのを繰り返してダイナミック点灯を行う形で制御しました。
また、本来48ピン使わなければ制御できないところを74HC595というシフトレジスタを用いることで必要なピンの数を減らしています。74HC595は3本の制御用のピンでピン8本分の制御を行えます。また、74HC595はさらにカスケード接続という、複数個の74HC595を接続する方法によってより多くのピンを制御できます。具体的には使用する数を1つ増やす増やすごとに、同じ3本の制御用のピンで制御できるピンの数を8本ずつ増やすことができます。この方法を使って48本のピンを制御しやすくしています。

まとめ

このように私は今年の作品を作りました。制御方法を自分で考えるという今までとは違った制作の仕方になりましたが、作品に用いた部品の仕組みを詳しく理解できたり、制御できたときの達成感が大きかったりしたので、1、2年のときより良いやり方だったんじゃないかなと思います。なのでこれからもこのやり方でできる限りやるつもりです。
以上です。ここまで読んでいただきありがとうございました。

参考文献

次へ学校のチャイムについて>
前へ競プロ初めて10ヶ月で入水した話>