Arduino 資料一覧
8x8マトリクスLED(OSL641505-BRA)をダイナミック点灯により点灯する
2017/05/05更新
対応バージョン: Arduino IDE 1.8.2
Arduino Unoにつないだ8x8マトリクスLED(OSL641505-BRA)をダイナミック点灯により点灯する。
赤色ドットマトリクスLED 8x8ドット OSL641505-BRA (秋月電子通商)
Arduino IDEを動かす母艦はUbuntu 16.04とする。
結線
結線は以下の通り。ここで使用しているOSL641505-BRAはアノードコモンなのでカソードコモンのOSL641505-ARAとの違いに注意する。
ソース
以下のようなコードを書き実行する。ここではハートのパターンを表示してみる。
led_matrix.ino
// OSL641505-BRA
//
// --- pin番号 ---
// 16 .. 9
// +--------+
// | |
// | |
// +--------+
// 1 .. 8
//
// --- ROW(行)/COL(列) : pin番号 -> Arduino接続先 ---
// ROW(行)
// 1 : pin 9 -> Arduino digital 2
// 2 : pin14 -> Arduino digital 3
// 3 : pin 8 -> Arduino digital 4
// 4 : pin12 -> Arduino digital 5
// 5 : pin 1 -> Arduino didital 6
// 6 : pin 7 -> Arduino digital 7
// 7 : pin 2 -> Arduino digital 8
// 8 : pin 5 -> Arduino digital 9
//
// COL(列)
// 1 : pin13 -> Arduino digital 10
// 2 : pin 3 -> Arduino digital 11
// 3 : pin 4 -> Arduino digital 12
// 4 : pin10 -> Arduino digital 13
// 5 : pin 6 -> Arduino analog A0(14相当)
// 6 : pin11 -> Arduino analog A1(15相当)
// 7 : pin15 -> Arduino analog A2(16相当)
// 8 : pin16 -> Arduino analog A3(17相当)
// 出力パターン
// * OSL641505-BxはOSL641505-Axと異なりアノードとカソードが逆なので
// プログラム中で1と0を反転させる
boolean matrix[8][8] = {
{0,0,0,0,0,0,0,0},
{0,1,1,0,0,1,1,0},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,0},
{0,0,1,1,1,1,0,0},
{0,0,0,1,1,0,0,0}
};
void setup(){
// 2~17ピン出力設定
for(int i = 2; i <= 17; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
}
void loop(){
// 点灯/消灯スイッチ
int onoff;
// 行ループ(2~9ピン)
for(int row = 2 ; row <= 9 ; row++) {
// 対象行を点灯対象に
digitalWrite(row, HIGH);
// 列ループ(10~17ピン)
for(int col = 10 ; col <= 17 ; col++){
// 対象列の点灯(0)/消灯(1)を決定
// 出力パターンと点灯/消灯の指示が逆転しているので反転(1 - パターン)
int onoff = 1 - matrix[row - 2][col - 10];
// 対象列を点灯/消灯
digitalWrite(col, onoff);
// 待機
delayMicroseconds(200);
// 対象列を消灯
digitalWrite(col, HIGH);
}
// 対象行を消灯
digitalWrite(row, LOW);
}
}
関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
エレクトロニクス豆知識 (ROHM)