🦔
【Arduino】Kumanのキットで8 x 8 LEDを作ってみた
これは何?
Kumanのキット[1]についていた8x8 LEDで遊んでみた記録
LEDはあまりちゃんとした資料がついていなかったので、調査結果を記録する。
8 x 8 LED
資料からわかることは、1588BSというものだった[2]
↓こんなかんじにLEDが(物理的に)配置されている
↓アノード/カソード→ | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
---|---|---|---|---|---|---|---|---|
Row 1 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 2 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 3 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 4 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 5 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 6 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 7 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Row 8 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Pinは16本しかないので(厳密に)同時に光らせることができるのは、8個のLEDを高速に切り替えて点灯を行うことで見た目にはずっと光って見えるようにする(残像を利用した)方式っぽい
Pin配置は下記だった
Row/Col | Pin No |
---|---|
Row 1 | Pin 9 |
Row 2 | Pin 14 |
Row 3 | Pin 8 |
Row 4 | Pin 12 |
Row 5 | Pin 1 |
Row 6 | Pin 7 |
Row 7 | Pin 2 |
Row 8 | Pin 5 |
Col 1 | Pin 13 |
Col 2 | Pin 3 |
Col 3 | Pin 4 |
Col 4 | Pin 10 |
Col 5 | Pin 6 |
Col 6 | Pin 11 |
Col 7 | Pin 15 |
Col 8 | Pin 16 |
アノード側をHigh、カソード側をLowにするとそれに対応するLEDが点灯する
1行目(Row 1)の1列目(Col 1)を点灯する場合、
Pin 9 = High, Pin 13= Lowで点灯する(ハズ)
あってる
配線
Pinの数が多いので、節約のため、シフトレジスタを使用
(そのほうがプログラム的にも楽)
74HC595(x 2)を準備した[3]
カソード側に220Ωの抵抗を配置
電源、グランド間に0.1uFのコンデンサを配置
↑LEDのサイズが大きく、キットについてくるブレッドボードだと、ブレッドボードを2つ使うなどの工夫が必要そう、大きめにさす方が安心感がある。
回路図
※はじめてKiCADで書いてみたのでうまくいってないかもですが
動作確認
Arduino の IDEで動作確認してみた
const int PIN_SER = 8;
const int PIN_LATCH = 9;
const int PIN_CLK = 10;
byte column[8];
void setup() {
pinMode( PIN_SER, OUTPUT );
pinMode( PIN_LATCH, OUTPUT );
pinMode( PIN_CLK, OUTPUT );
//ここが表示するもの(左上から右下に線が走る感じのイメージ
column[0]= 0x80;//B10000000
column[1]= 0x40;//B01000000
column[2]= 0x20;//B00100000
column[3]= 0x10;//B00010000
column[4]= 0x08;//B00001000
column[5]= 0x04;//B00000100
column[6]= 0x02;//B00000010
column[7]= 0x01;//B00000001
while(true){
for(int i = 0; i < 8; i++){
byte Row = 0;
if(column[i]>0){
Row = 1 << (8 - i -1);
}
digitalWrite( PIN_LATCH, LOW );
shiftOut( PIN_SER, PIN_CLK, LSBFIRST, ~Row );
shiftOut( PIN_SER, PIN_CLK, LSBFIRST, column[i] );
digitalWrite( PIN_LATCH, HIGH );
}
}
}
void loop() {
}
まぶしいので紙をかぶせた
うまくいってそう
参考にさせていただいたサイト
1588BSに関して
74HC595に関して
Discussion