Files
Arduino/Projects/7x5 Display/_1.singleTets/_1.singleTets.ino

70 lines
1.2 KiB
C++

int idx = 0; unsigned long last;
void setup() {
last = millis();
pinMode( 3, OUTPUT );
pinMode( 9, OUTPUT );
pinMode( 10, OUTPUT );
pinMode( 4, OUTPUT );
pinMode( 12, OUTPUT );
pinMode( 5, OUTPUT );
pinMode( 2, OUTPUT );
pinMode( 6, OUTPUT );
pinMode( 11, OUTPUT );
pinMode( 7, OUTPUT );
pinMode( 13, OUTPUT );
pinMode( 8, OUTPUT );
byte led[5][7] = {
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
}
byte leds[7][5];
void setPattern( byte pattern[20][5], int idx ) {
for( int r =0; r < 7; r++) {
for( int c = 0; c < 5; c++) {
leds[r][c] = pattern[r + idx][c];
}
}
}
void draw() {
for( int r =0; r < 7; r ++ ) {
digitalWrite( r + 2, HIGH );
for( int c=0; c < 5; c ++ ) {
digitalWrite( 13 - c, ( leds[r][c] == 1 ? LOW : HIGH ));
}
delayMicroseconds(900);
digitalWrite( r + 2, LOW );
}
}
void loop() {
if ( millis() - last > 400 ) {
idx = (idx == 0 ? 7 : 0);
last = millis();
}
byte tmp[14][5] = {
{ 1,1,1,1,1},
{ 1,1,1,1,1},
{ 1,1,1,1,1},
{ 1,1,1,1,1},
{ 1,1,1,1,1},
{ 1,1,1,1,1},
{ 1,1,1,1,1},
};
setPattern( tmp, idx );
draw();
}