int f = 13;
int g = 12;
int e = 11;
int d = 10;
int c = 7;
int b = 8;
int a = 9; //7 Segment pin
int switchUpPin = 6;
int switchDownPin = 5;
int counter = 0;
int buttonUpState = 0;
int lastButtonUpState = 0;
int buttonDownState = 0;
int lastButtonDownState = 0;
void setup() {
Serial.begin(9600);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(e, OUTPUT);
pinMode(d, OUTPUT);
pinMode(c, OUTPUT);
pinMode(b, OUTPUT);
pinMode(a, OUTPUT);
}
void loop()
{
buttonUpState = digitalRead(switchUpPin);
buttonDownState = digitalRead(switchDownPin);
if (buttonUpState != lastButtonUpState)
{
if (buttonUpState == HIGH)
{
if(counter == 9)
{
counter = -1;
}
counter++;
Serial.println(counter);
changeNumber(counter);
delay(300);
}
else
{
Serial.println("OFF");
}
delay(50);
}
if (buttonDownState != lastButtonDownState)
{
if (buttonDownState == HIGH)
{
if(counter == 0)
{
counter = 10;
}
counter--;
Serial.println(counter);
changeNumber(counter);
delay(300);
}
else
{
Serial.println("OFF");
}
delay(50);
}
changeNumber(counter);
}
void changeNumber(int buttonPress)
{
switch (buttonPress)
{
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,0); // 0
break;
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,0);
digitalWrite(g,0); // 1
break;
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,0);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,0);
digitalWrite(g,1); // 2
break;
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,1);
digitalWrite(f,0);
digitalWrite(g,1); // 3
break;
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,1);
digitalWrite(g,1); // 4
break;
digitalWrite(a,1);
digitalWrite(b,0);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1); // 5
break;
digitalWrite(a,0);
digitalWrite(b,0);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1); // 6
break;
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,0);
digitalWrite(g,0); // 7
break;
}
}
I've recently attempted to make up a 7 segment counter with up and down buttons. The code above is where I am currently at. I have an issue where the buttons are wired up (image attached) and the serial monitor recognises button pushes but my 7 segment display does not work. Common cathode. Wired in with single resistor on Gnd and pins are as described in first paragraph of code. Any help would be much appreciated. I'l have many more questions i'm sure.