int ssdNum[10][7] = {
{1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 0, 0, 0, 0},
{1, 1, 0, 1, 1, 0, 1},
{1, 1, 1, 1, 0, 0, 1},
{0, 1, 1, 0, 0, 1, 1},
{1, 0, 1, 1, 0, 1, 1},
{1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 0, 1, 1},
};
int buttonPin[] = {A0, A1, A2, A3, A4};
int right = 0;
int left = 0;
void setup() {
for(int i = 0; i<= 6; i++){
pinMode(i, OUTPUT);
pinMode(i + 7, OUTPUT);
digitalWrite(i, HIGH);
}
for(int b = 0; b <= 4; b++){
pinMode(buttonPin[b], INPUT);
}
}
void loop() {
for( int i = 0; i <= 4; i++){
if(digitalRead(buttonPin[i]) == HIGH){
switch(i){
case 0:
for(int i = 0; i <= 9; i++){
for(int ssd = 0; ssd<=6; ssd++){
digitalWrite(ssd, !ssdNum[0][ssd]);
digitalWrite(ssd + 7, ssdNum[i][ssd]);
}
delay(400);
}
break;
case 1:
for(int i = 0; i <= 9; i++){
for(int ssd = 0; ssd<=6; ssd++){
digitalWrite(ssd + 7, ssdNum[i][ssd]);
}
for(int i = 0; i <= 9; i++){
for(int ssd = 0; ssd<=6; ssd++){
digitalWrite(ssd, !ssdNum[i][ssd]);
}
delay(100);
}
}
break;
case 2:
if(right <= 9){
delay(250);
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
right ++;
}
else if ( right > 9 && left !=9){
delay(250);
right = 0;
left ++;
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
}
else{
right = 0;
left = 0;
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
}
break;
case 3:
if(right > 0){
delay(250);
right --;
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
}
else if ( right == 0 && left != 0){
right = 9;
left --;
delay(250);
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
}
else{
right = 9;
left = 9;
delay(250);
for(int ssd = 0; ssd <= 6; ssd++){
digitalWrite(ssd, !ssdNum[right][ssd]);
digitalWrite(ssd + 7, ssdNum[left][ssd]);
}
}
break;
case 4:
for(int i = 0; i <= 9; i++){
for(int ssd = 0; ssd<=6; ssd++){
digitalWrite(ssd + 7, ssdNum[i][ssd]);
}
for(int i = 0; i <= 9; i++){
for(int ssd = 0; ssd<=6; ssd++){
digitalWrite(ssd, !ssdNum[i][ssd]);
}
delay(400);
}
for (int b = 0; b <= 2; b ++){
for(int pin = 0; pin <= 6; pin++){
digitalWrite(pin, !ssdNum[0][pin]);
digitalWrite(pin + 7, ssdNum[i+1][pin]);
}
delay(250);
for(int pin = 0; pin <= 6; pin++){
digitalWrite(pin, HIGH);
digitalWrite(pin + 7, LOW);
}
delay(250);
}
}
break;
}
}
}
}