#define CLK 11
#define OE 9
#define LAT 10
#define A A0
#define B A1
#define C A2
#define D A3
#define R1 24
#define G1 25
#define B1 26
#define R2 27
#define G2 28
#define B2 29
#define LED_WIDTH 64
#define LED_HEIGHT 32
void setup() {
// IO設定
{
pinMode(R1, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(G2, OUTPUT);
pinMode(B2, OUTPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(LAT, OUTPUT);
pinMode(OE, OUTPUT);
}
{
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(B1, LOW);
digitalWrite(R2, LOW);
digitalWrite(G2, LOW);
digitalWrite(B2, LOW);
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(CLK, LOW);
digitalWrite(LAT, LOW);
digitalWrite(OE, LOW);
}
Serial.begin(115200);
}
uint8_t address = 0;
void loop() {
// 書き込み
for(int i=0; i<LED_WIDTH; i++) {
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(B1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(G2, LOW);
digitalWrite(B2, HIGH);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, HIGH);
digitalWrite(LAT, LOW);
digitalWrite(OE, HIGH);
if(address == 0b1111) {
address = 0;
} else {
address++;
}
Serial.println(address);
digitalWrite(A, address & 0b0001);
digitalWrite(B, address & 0b0010);
digitalWrite(C, address & 0b0100);
digitalWrite(D, address & 0b1000);
digitalWrite(OE, LOW);
delay(100);
}