こんばんは、Reveです。技術のほうです。
今回からしばらく、電子工作で使える電子部品の紹介をしていきたいと思います。
今日は、I2C通信の8×8ミニLEDマトリックス基板を取り上げます。
(部品の概要)
このモジュールは、その名の通りI2C通信(こちらを参照)で表示する絵や文字をコントロールできるもので、専用のArduinoライブラリも開発元から提供されています。マトリックスLED本体も大きさが2cm四方なので、非常にコンパクトな部品です。
裏面はこのようにICが実装されています。また、各ピンの役割も明記されているので、対応するピンと接続すれば制御できます。なお、LEDとピン(同梱)は自分ではんだ付けする必要があります。
ちなみに、マトリックスLEDとはLEDが格子状に並んだ部品です
特定の位置のLEDを光らせるには、対応する行と列のピンに電流を流します。マトリックスLED自体についても、またブログで取り上げる予定です(多分)。
(使い方とサンプル)
では、Arduinoを使ってこのモジュールを制御してみましょう。
ここでは回路のつなぎ方と、ソフトウェアの使い方について説明します。
今回は、ProMini(3.3V)を使用しています。
まず、回路は電源ライン(Vcc、GND)と通信ライン(SDA、SCL)を接続します。
電源は5V推奨ですが、3.3Vでも問題なく動作します。また、通信についてはSDAをA4、SCLをA5ピンに接続します(一般的なI2Cデバイスと同じです)。
ProMiniでは、A4、A5ピンが基板の内側にありますが、ここにはピンが接続されていないため、自分でピンをはんだ付けする必要があります(ちなみに、ProMiniは全てのピンをはんだ付けする必要があります)。
図にすると、下のような回路になります。
出来上がった回路は写真の通り。
裏側はこのようになっています。
これで回路は完成したので、続いてプログラムを紹介します。
サンプルプログラムを書いてみたので、こちらを参考にしてみてください。
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 31 |
; title="MatrixLED_I2C_sample1.ino"]#include <Wire.h> #include "Adafruit_LEDBackpack.h" //専用ライブラリ1 #include "Adafruit_GFX.h" //専用ライブラリ2 const int NUM = 8; //LEDの行数、列数 Adafruit_8x8matrix matrix = Adafruit_8x8matrix(); static const uint8_t PROGMEM //描画用のデータ niku_bmp[] = { B00011000, B11111111, B10011001, B10100101, B10000001, B10011001, B10100101, B10000001 }; void setup() { matrix.begin(0x70); //マトリックスLEDの初期化 } void loop() { matrix.clear(); //LED表示の消去 matrix.drawBitmap(0, 0, niku_bmp, 8, 8, LED_ON); //描画データを読み込む matrix.writeDisplay(); //LED表示 delay(500); for (int8_t x=0; x>=-30; x--) { matrix.clear(); matrix.setCursor(x,0); matrix.print("Hello"); //文字列を描画データに変換 matrix.writeDisplay(); delay(100); } } |
詳しい解説は省きますが、このプログラムでは「肉」と「Hello」を交互に表示します。
なお、I2C通信については専用のライブラリが処理してくれるので、自分で処理を実装する必要はありません。
カラーバリエーションも豊富です。
コメント