Arduinoで8×8LEDドットマトリクスMAX7219にテキストやアニメーション動作をさせる方法【ビジュアルプログラミングLESSON25】
こんにちは、せでぃあ(@cediablog)です。
今回のArduinoプログラミングLESSON25では、「LEDドットマトリクスモジュールMAX7219のテキストスクロール表示やアニメーション表示をさせる方法」を紹介します。
本記事ではELEGOO最終版Arduinoキットに含まれるパーツを使って、簡単にMZX7219を制御させる方法を紹介します。
本記事は、プログラミングと電子パーツの知識が習得できるプログラミング初心者も安心して取り組めるテーマとなっています。
文字コードプログラミングが苦手な方も安心してプログラミングができるように、文字列を使わなビジュアルプログラミング方法も紹介しています。
文字コードプログラミングが苦手!という方はビジュアルプログラミングがおすすめです!
本記事では、スクラッチベースのビジュアルプログラミングツールmBlockとArduinoIDEプログラムどちらのプログラミング方法も紹介しています。
無料のブロックプログラミングツールmBlockのインストール方法については、こちらの記事を参照してください。
- MAX7219を使ったテキストスクロール・アニメーション表示方法
- Arduino IDEでのプログラミング方法
- mBlockを使ったビジュアルプログラミング方法
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
LEDドットマトリクスモジュールMAX7219について
今回Arduinoキットに含まれる、LEDドットマトリクスモジュールMAX7219モジュールを使います。
8×8=64ドットのLED点灯制御が可能で、モジュール化されていることで電源線2本+信号線3本の計5本の配線だけでArduinoから点灯パターンを制御することができます。
たった5本の配線で制御できるのは嬉しいですね!
MAX7129のマトリクス表示制御動作の解説
今回紹介する「MAX7219の表示動作」について説明します。
動作の説明
- テキストスクロール「Welcome!」表示動作
- イラストアニメーション動作
- MAX7219のテキストスクロール表示プログラム解説
- MAX7219のアイコン表示プログラム解説
- ライブラリで定義済のアニメーション動作15選(Arduino IDEプログラミング)
この動画を見ていただければ、MAX7219で出来ることがざっくり分かると思います。
Arduino IDEでの専用ライブラリやmBlockでの拡張ブロックのインストール方法も動画内で紹介しています。
ビジュアルプログラムの作り方も動画で解説しています。
MAX7219の点灯制御に必要な準備作業
MAX7219を使ったLEDドットマトリクス点灯制御を行うまでに必要な作業を解説します。
今回は文字列を使ったプログラム形式と、文字列を使わないビジュアルプログラミング形式の両方について説明します。
あなたの作りたいプロブラム形式に対応した手順に応じて、対応してください。
プログラム形式に応じた開発環境
- 文字列による命令語形式 ⇒ ArduinoIDE
- スクラッチベースのビジュアル形式 ⇒ mBlock
文字コードプログラミングが苦手な方は、ビジュアルプログラミング形式をチョイスしてください。
プログラミングするために、パソコンが必要です。
電子部品等の必要な機器については、このあと説明します。
パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。
Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。
Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。
以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。
mBlockでプログラミングする場合は、ArduinoIDEのインストールは不要です。
パソコンにスクラッチベースのビジュアルプログラミングツール「mBlock」のインストールを行います。
以下の記事にて詳しく説明しています。
ArduinoIDEでプログラミングする場合は、mBlockのインストールは不要です。
電子部品とジャンパーワイヤの差し込みだけで配線が可能です。
専用開発ソフトウェア「Arduino IDE」を使います。
私が作成したプログラムをコピペして使ってください。
Arduino IDEプログラミングの基本操作については、こちらの記事にて詳しく説明しています。
mBlockでプログラミングする場合は、ArduinoIDEプログラミングは不要です。
スクラッチベースのビジュアルプログラミングツールmBlockを使ってプログラムを作成します
プログラム内容については、後述するプログラミング例を参考にしてください。
ArduinoIDEでプログラミングする場合は、mBlockプログラミングは不要です。
プログラムが完成したら動作確認を行います。
MAX7219のLEDドットマトリクス点灯制御で使うもの
MAX7219のLEDドットマトリクス点灯制御に使用する機器を紹介します。
ブレッドボードも使わない、超シンプルな機器構成となります。
- パソコン
- Arduino本体【キット】
- USBケーブル【キット】
- MAX7219【キット】
- ジャンパー線(オスーメス)×5本【キット】
今回はELEGOO社の最終版スターターキットに含まれる部品で作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。
パソコン
プログラムを作成するために必要です。
プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。
パソコンのOSはWindows、Macどちらでも対応可能です。
Arduino本体【キット】
基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。
Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。
各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。
USBケーブル【キット】
パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。
ブレッドボード【キット】
たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。
説明図は30列のショート版ですが、最終版スターターキットに含まれる63列タイプでも機能は同じです。
ブレッドボードだけの購入も可能です。
MAX7219【キット】
8×8=64ドットのLEDマトリクスモジュールです。
専用ライブラリを使うことで、かんたんにテキストスクロール表示やアイコン表示を行うことができます。
ジャンパー線(オスーメス)【キット】
オス-メスジャンパー線を5本使用します。
MAX7219とArduinoのデジタル入出力ピンや電源ピンと接続させるために使用します。
MAX7219のLEDドットマトリクス点灯制御回路の配線方法
ここからは、各機器間の配線方法について解説します。
上図が配線説明図となりますので、これと同じ配線をすれば完成します。
MAX7219に対して5本のオスーメスジャンパー線で配線するだけで配線作業は完了です。
機器が故障するおそれがあるので、接続するプラスマイナス極性には十分注意して配線してください。
落ち着いて配線作業を行ってください。
ArduinoピンとMAX7219の接続先
- 10番ピン:CSに接続
- 11番ピン:CLKに接続
- 13番ピン:DINに接続
- 5Vピン:VCCに接続
- GNDピン:GNDに接続
機器故障させないためにも、「通電OFF」状態にて配線を行ってください。
プログラムの作り方とプログラム解説
本記事では、以下に示す「Arduino IDEプログラミング」と「mBlockプログラミング」の2通りのプログラミング方法について解説しています。
いずれか1つのプログラミング方法を用いることで、本LESSONの動作を行うことが可能です。
ArduinoIDE:文字列による命令語形式
mBlock:スクラッチベースのビジュアル形式
文字列を使わないmBlockの方が、直感的で分かりやすくプログラミング初心者の方におすすめのプログラミング方法になります。
mBlockを使ってプログラミングをする方は、mBlockの説明まで読み飛ばしてください。
お好みのプログラム方法を選んでください!
MD_MAX72XXライブラリのインストール
今回紹介するプログラムでは、簡単にMAX7219を制御できる2種類のライブラリを使用します。
インストールが必要なライブラリ
- MD_MAX72XX:マトリクス点灯制御を行う
- MD_Parola:テキスト・アニメーション表示制御を行う
これらのライブラリを1つずつインストールしていきます。
mBlockでプログラミングをする場合は、本ライブラリインストール作業は不要です。
Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。
検索窓に「MD_MAX72」と入力して、MD_MAX72XXライブラリを検索します。
ライブラリが検索できたら、インストールボタンをクリックしてライブラリをインストールします。
ライブラリのインストールが完了した旨の表示がされたら、MD_MAX72XXライブラリのインストールは完了です。
MD_Parolaライブラリのインストール
続いて、MD_Parolaライブラリをインストールします。
mBlockでプログラミングをする場合は、本ライブラリインストール作業は不要です。
Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。
検索窓に「MD_Parola」と入力して、MD_Parolaライブラリを検索します。
ライブラリが検索できたら、インストールボタンをクリックしてライブラリをインストールします。
MD_ParolaライブラリはMD_MAX72XXライブラリとセットで使用する必要があるためMD_MAX72XXライブラリのインストールが必要であると表示が出ることがあります。
MD_MAX72XXライブラリのインストールが完了していても表示される場合がありますが、気にせず「全てをインストール」をクリックすればOKです。
ライブラリのインストールが完了した旨の表示がされたら、MD_Parolaライブラリのインストールは完了です。
Arduino IDEプログラミング
Arduino IDEとは統合開発ソフトウェアで、C言語のような文字列を用いたプログラミング方法です。
プログラミングするにあたり、ある程度の命令語を知っておく必要があります。
Arduino IDEのインストール方法については、以下の記事で詳しく説明しています。
日本語版のArduino公式リファレンスが記載されていて、関数を調べるときに重宝するのでオススメな一冊です!
私もこの本を所有してプログラム作成時に活用しています!
プログラミング方法
Arduino IDEを使って、文字列プログラミングを行います。
Arduino IDEを使ったプログラミング~動作確認方法については、以下の記事で詳細説明しています。
Arduino IDEプログラム
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
// ドットマトリクスの設定
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW // デバイス種別をFC16_HWに設定
#define MAX_DEVICES 1 // 8x8のマトリクス表示のユニット数を1に設定
#define DATA_PIN 11 // DATAピンを11に設定
#define CS_PIN 10 // CSピンを10に設定
#define CLK_PIN 13 // CLKピンを13に設定
// MD_Parolaオブジェクトを作成
MD_Parola matrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
matrix.displayReset(); // ディスプレイをリセット
matrix.begin(); // ディスプレイを開始
matrix.setIntensity(1); // ディスプレイの明るさを1に設定
// テキストをスクロール表示する設定
matrix.displayText("Welcome!", PA_LEFT, 100, 100, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
void loop() {
// matrix.displayTextで設定したアニメーションを実行する。
if (matrix.displayAnimate() == true) {
matrix.displayReset(); // アニメーションが終了したらディスプレイをリセット
}
}
このプログラムでは、MAX7219で「Welcome!」のテキストスクロール表示動作をさせます。
Arduino IDEのプログラム画面にコピーアンドペーストすることで、動作確認まで進めることができます。
各プログラム列の右側にプログラム内容をコメント記入してありますので参考にしてください。
プログラム命令文についてはyoutube動画で詳しく解説しています。
プログラミング初心者の方に、おすすめなArduinoの参考書を紹介しています!
mBlockプログラミング
今回はビジュアルプログラミングで2つの動作プログラムを作成します。
紹介するプログラム
- テキストスクロールプログラム
- アイコン表示プログラム
ここからは、ビジュアルプログラミングツール「mBlock」を使ったプログラムの作り方を解説します。
- デバイスにArduino Uno R3を追加する
- 接続モードを「アップロードモードON」にする
- mBlockプログラムを作成する
- プログラムをArduino本体に転送する
これらの基本操作方法については、こちらの記事を参照してください。
ビジュアルプログラミングは直感的にプログラミングができるところが嬉しいですよね!
テキストスクロール用ブロックの追加方法
MAX7219制御用の拡張ブロックを追加することで、簡単にMAX7219を点灯制御するプログラムが作れます。
mBlockを開いて、拡張ボタンをクリックします。
検索窓に「matrix」と入力して、拡張ブロックを検索します。
上図に示すmax7219MatrixLedを選択して「追加」をクリックします。
max7219MatrixLedブロックが追加され、プログラムに使用可能となります。
アイコン表示用ブロックの追加方法
8×8のLEDドットマトリクスに対して、点灯させるLEDを選択してアイコン表示させることができます。
mBlockを開いて、拡張ボタンをクリックします。
検索窓に「matrix」と入力して、拡張ブロックを検索します。
上図に示すuBrick.LedMatrixを選択して「追加」をクリックします。
uBrick.LedMatrixブロックが追加され、プログラムに使用可能となります。
uBrick.LedMatrixブロックのアイコン部をクリックすると、デフォルトのアイコン表示以外にも自分でオリジナルの表示パターンを作成することができます。
mBlockのArduino専用ブロックについては、こちらの記事にて詳しく説明しています。
専用ライブラリを使えばMAX7219はかんたんに制御できる
- MAX7219は配線5本でドット表示制御が可能
- 専用ライブラリやブロックを使うことで簡単にマトリクス表示を制御可能
- mBlockではテキストスクロールとアイコン表示それぞれ専用ブロックを使うと便利
なんといっても配線が楽なのが、MAX7219の最大の特徴と言えますね。
プログラムによってはMAX7219に対する表示の向きが異なるのでMAX7219を正しく表示できる向きに回転させて表示を楽しんでください。
MAX7219は連結して使用可能なので、4連式などにもチャレンジしてみたいと思います。
MAX7219はドットサイズも大きめなので、見やすくていいですね!
最後まで読んでいただき、ありがとうございました。
Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。
子供の成長を育む!小学生のお子様にぴったりなプログラミング教室が見つかるように厳選しました!
コメント