Next version of my counter sketch, still want to add a few features in.
int aPin = 2;
int bPin = 3;
int cPin = 4;
int dPin = 5;
int ePin = 6;
int fPin = 7;
int gPin = 8;
int aaPin = 9;
int bbPin = 10;
int ccPin = 11;
int ddPin = 12;
int eePin = 13;
int ffPin = 14;
int ggPin = 15;
int upPin = 16;
int downPin = 17;
int a = 2;
int b = 0;
int valup = 0;
int valdown = 0;
void setup()
{
pinMode(aPin, OUTPUT);
pinMode(bPin, OUTPUT);
pinMode(cPin, OUTPUT);
pinMode(dPin, OUTPUT);
pinMode(ePin, OUTPUT);
pinMode(fPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(aaPin, OUTPUT);
pinMode(bbPin, OUTPUT);
pinMode(ccPin, OUTPUT);
pinMode(ddPin, OUTPUT);
pinMode(eePin, OUTPUT);
pinMode(ffPin, OUTPUT);
pinMode(ggPin, OUTPUT);
pinMode(upPin, INPUT);
pinMode(downPin, INPUT);
updatea();
updateb();
}
void loop() // run over and over again
{
valup = digitalRead(upPin);
valdown = digitalRead(downPin);
if (valup == LOW && valdown == LOW) // Reset to 20 if both buttons pushed
{
a=2;
b=0;
updatea();
updateb();
delay(1000);
}
else if (valup == LOW)
{
b++;
if (b==10)
{
b=0;
a++;
updatea();
}
updateb();
delay(250);
}
else if (valdown == LOW)
{
b--;
if(b==0 && a==0)
{
death();
}
if(b<0)
{
b=9;
a--;
updatea();
}
updateb();
delay(250);
}
}
void clrb()
{
digitalWrite(aPin, LOW);
digitalWrite(bPin, LOW);
digitalWrite(cPin, LOW);
digitalWrite(dPin, LOW);
digitalWrite(ePin, LOW);
digitalWrite(fPin, LOW);
digitalWrite(gPin, LOW);
}
void clra()
{
digitalWrite(aaPin, LOW);
digitalWrite(bbPin, LOW);
digitalWrite(ccPin, LOW);
digitalWrite(ddPin, LOW);
digitalWrite(eePin, LOW);
digitalWrite(ffPin, LOW);
digitalWrite(ggPin, LOW);
}
void updateb()
{
if (b == 0)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(ePin, HIGH);
digitalWrite(fPin, HIGH);
}
if (b == 1)
{
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
}
if (b == 2)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(ePin, HIGH);
digitalWrite(gPin, HIGH);
}
if (b == 3)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(gPin, HIGH);
}
if(b==4)
{
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(fPin, HIGH);
digitalWrite(gPin, HIGH);
}
if(b==5)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(fPin, HIGH);
digitalWrite(gPin, HIGH);
}
if(b==6)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(ePin, HIGH);
digitalWrite(fPin, HIGH);
digitalWrite(gPin, HIGH);
}
if (b==7)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
}
if (b==8)
{
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, HIGH);
digitalWrite(ePin, HIGH);
digitalWrite(fPin, HIGH);
digitalWrite(gPin, HIGH);
}
if (b==9)
{
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, HIGH);
digitalWrite(fPin, HIGH);
digitalWrite(gPin, HIGH);
}
}
void updatea()
{
if (a == 0)
{
clra();
}
if (a == 1)
{
clra();
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
}
if (a == 2)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(bbPin, HIGH);
digitalWrite(ddPin, HIGH);
digitalWrite(eePin, HIGH);
digitalWrite(ggPin, HIGH);
}
if (a == 3)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ddPin, HIGH);
digitalWrite(ggPin, HIGH);
}
if(a==4)
{
clra();
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ffPin, HIGH);
digitalWrite(ggPin, HIGH);
}
if(a==5)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ddPin, HIGH);
digitalWrite(ffPin, HIGH);
digitalWrite(ggPin, HIGH);
}
if(a==6)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ddPin, HIGH);
digitalWrite(eePin, HIGH);
digitalWrite(ffPin, HIGH);
digitalWrite(ggPin, HIGH);
}
if (a==7)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
}
if (a==8)
{
digitalWrite(aaPin, HIGH);
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ddPin, HIGH);
digitalWrite(eePin, HIGH);
digitalWrite(ffPin, HIGH);
digitalWrite(ggPin, HIGH);
}
if (a==9)
{
clra();
digitalWrite(aaPin, HIGH);
digitalWrite(bbPin, HIGH);
digitalWrite(ccPin, HIGH);
digitalWrite(ffPin, HIGH);
digitalWrite(ggPin, HIGH);
}
}
void death() //death animation
{
clra();
clrb();
delay(500);
digitalWrite(aPin, HIGH);
digitalWrite(aaPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(bbPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(cPin, HIGH);
digitalWrite(ccPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(dPin, HIGH);
digitalWrite(ddPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(ePin, HIGH);
digitalWrite(eePin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(fPin, HIGH);
digitalWrite(ffPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(aaPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(bbPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(cPin, HIGH);
digitalWrite(ccPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(dPin, HIGH);
digitalWrite(ddPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(ePin, HIGH);
digitalWrite(eePin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(fPin, HIGH);
digitalWrite(ffPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(aaPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(bbPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(cPin, HIGH);
digitalWrite(ccPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(dPin, HIGH);
digitalWrite(ddPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(ePin, HIGH);
digitalWrite(eePin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(fPin, HIGH);
digitalWrite(ffPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(aPin, HIGH);
digitalWrite(aaPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(bPin, HIGH);
digitalWrite(bbPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(cPin, HIGH);
digitalWrite(ccPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(dPin, HIGH);
digitalWrite(ddPin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(ePin, HIGH);
digitalWrite(eePin, HIGH);
delay(150);
clra();
clrb();
digitalWrite(fPin, HIGH);
digitalWrite(ffPin, HIGH);
delay(150);
clra();
clrb();
}