バイクとカメラと戯れ言
バイクはXJ600 diversion、カメラはDMC-CM1、旅の様子やそのほか日々のことを書きます
新年秋月電子お楽しみ袋のLEDマトリクスを動かしてみた
- キットの抵抗R2,R3はジャンパ
- R4,R5は390Ω、ただし全点灯はさけたほうがよい
- コネクタはCN1A,B,CN2A,B共通
- 基板を連結させれば16x64になる
- コネクタ配列は9,7,5,3,1
- 10,8,6,4,2
- コネクタ1 LED PWR -> Vout
- コネクタ2 Sin1 -> IO12
- コネクタ3 Sin2 -> IO13
- コネクタ4 Sin3 -> IO14
- コネクタ5 CLOCK -> IO16
- コネクタ6 LATCH -> IO15
- コネクタ7 STROBE -> IO2
- コネクタ8 IC PWR -> Vout
- コネクタ9 GND
- コネクタ10 GND
- 16chはクロック1マイクロ秒で設定
制御に使用するのはArduino 互換でもあり、無線LAN機能ももつESP WROOM 02
#include extern "C" < #include "user_interface.h" >unsigned int sin1 = 0x0001;//縦 unsigned int sin2 = 0xffff;//横1 unsigned int sin3 = 0xffff;//横2 int shiftsin =0; void setup() < Serial.begin(115200); //ピンをOutputモードに切り替え pinMode(2, OUTPUT);//strobe pinMode(12, OUTPUT);//sin1 pinMode(13, OUTPUT);//sin2 pinMode(14, OUTPUT);//sin3 pinMode(15, OUTPUT);//latch pinMode(16, OUTPUT);//clock //シリアルポートに文字列出力 Serial.println("setup OK"); >void bitchecker(unsigned int sin0,int portnum)< sin0 &=0x0001; if(sin0==1)< digitalWrite(portnum,HIGH); >else < digitalWrite(portnum,LOW); >> // the loop function runs over and over again forever void loop() < unsigned int tmp_sin1=sin1; unsigned int tmp_sin2=sin2; unsigned int tmp_sin3=sin3; digitalWrite(15,HIGH);//LatchをHIGH digitalWrite(2,HIGH); for(int i=0;i>1; tmp_sin2 = tmp_sin2 >>1; tmp_sin3 = tmp_sin3 >>1; delayMicroseconds(50); > digitalWrite(15,LOW); //Latch low 書き込み digitalWrite(2,LOW); //STLOBE HIGH delayMicroseconds(50); delay(500); sin1 = sin1