ドットマトリクスLEDの使い方 [Arduino]
このマトリクスはアノードコモンで「5つのアノード」(列毎)と「7つの共通行」(1,2,3,4,5,6,7行)の計12ピンで構成されています。
スケッチでは4桁7セグメントLEDと同様に1列毎にLEDを表示していますが「残像現象」で5つの列が同時に表示されているように見えます。
MOA20UB019GJの表示例
使用部品・材料
総額で約390円です。(Arduino本体の値段を除く)
| 部品/材料 | 値段 | 備考 |
|---|---|---|
| ブレッドボード | ¥270 | 秋月電子の通販コード(P-00315) |
| 青色ドットマトリクスLED 5x7ドット MOA20UB019GJ | ¥120 | 秋月電子の通販コード(I-08249) |
| カーボン抵抗器 | 数円 | 100Ω(5個)を使用。 |
配線図
Arduinoのデジタル1-5ピンはMOA20UB019GJの5つのアノードに100Ωでプルアップをしています。6-12ピンはMOA20UB019GJの1,2...の順番で使用しています。
次の図は公式データシートより引用(MOA20UB019GJ.pdf)
MOA20UB019GJのピン配置は部品裏面を「虫眼鏡」で確認すると「1」と「12」が印字されています。ピン番号は1から半時計周りとなります。
スケッチ(プログラム)
スケッチを実行するとマトリクスに8(日)を表示します。
const int col1 = 1;
const int col2 = 2;
const int col3 = 3;
const int col4 = 4;
const int col5 = 5;
const int row1 = 12;
const int row2 = 11;
const int row3 = 6;
const int row4 = 10;
const int row5 = 7;
const int row6 = 8;
const int row7 = 9;
// 全てのCol(列)をクリア
void clearCol(){
for(int i = 0; i < 5; i++){
digitalWrite((i+1),LOW);
}
}
// 全てのROW(行)をクリア
void clearRow(){
for(int i = 6; i < 13; i++){
digitalWrite(i,HIGH);
}
}
void setup() {
// 全てのピンを出力にする
for(int i =0; i < 13; i++){
pinMode((i+1),OUTPUT);
}
}
void loop() {
// COL1
clearCol(); clearRow();
digitalWrite(col1,HIGH);
digitalWrite(row1,LOW); digitalWrite(row2,LOW); digitalWrite(row3,LOW);
digitalWrite(row4,LOW); digitalWrite(row5,LOW); digitalWrite(row6,LOW);
digitalWrite(row7,LOW);
delayMicroseconds(50);
// COL2
clearCol(); clearRow();
digitalWrite(col2,HIGH);
digitalWrite(row1,LOW); digitalWrite(row4,LOW); digitalWrite(row7,LOW);
delayMicroseconds(50);
// COL3
clearCol(); clearRow();
digitalWrite(col3,HIGH);
digitalWrite(row1,LOW); digitalWrite(row4,LOW); digitalWrite(row7,LOW);
delayMicroseconds(50);
// COL4
clearCol(); clearRow();
digitalWrite(col4,HIGH);
digitalWrite(row1,LOW); digitalWrite(row4,LOW); digitalWrite(row7,LOW);
delayMicroseconds(50);
// COL5
clearCol(); clearRow();
digitalWrite(col5,HIGH);
digitalWrite(row1,LOW); digitalWrite(row2,LOW); digitalWrite(row3,LOW);
digitalWrite(row4,LOW); digitalWrite(row5,LOW); digitalWrite(row6,LOW);
digitalWrite(row7,LOW);
delayMicroseconds(50);
}
抵抗値の計算
Arduinoの電源は5V(V)。順方向電圧(DC Forward Voltage/VF)は標準3.5V。電流(DC Forward Current)の標準電流は20mA(IF)。オームの法則で算出すると75Ωとなります。
75Ω = (5V - 3.5V) / 0.020A
今回は大きめに100Ωを使用しました。(電流は15mA)
スポンサーリンク
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。
関連記事
公開日:2017年07月09日 最終更新日:2017年08月02日
記事NO:02458
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









