TOP > カテゴリ > ロボット・電子工作・マイコン >

ドットマトリクス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)





関連記事



公開日:2017年07月09日 最終更新日:2017年08月02日
記事NO:02458