const int ButtonTeamA = A0;
const int ButtonTeamB = A1;
const int ButtonReset = A2;
const byte digitMap[] = {
0x3F,
0x06,
0x5B,
0x4F,
0x66,
0x6D,
0x7D,
0x07,
0x7F,
0x6F
};
void setup() {
DDRD = 0b01111111;
pinMode(ButtonTeamA, INPUT_PULLUP);
pinMode(ButtonTeamB, INPUT_PULLUP);
pinMode(ButtonReset, INPUT_PULLUP);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void displayDigit(int digit, int displayPin) {
PORTD = digitMap[digit];
digitalWrite(displayPin, LOW);
delay(5);
digitalWrite(displayPin, HIGH);
}
int Segment1 = 0;
int Segment1_digit2 = 0;
int Segment2 = 0;
int Segment2_digit2 = 0;
int scoreTeamA = 0;
int scoreTeamB = 0;
void loop() {
displayDigit(Segment1, 8);
displayDigit(Segment1_digit2, 9);
displayDigit(Segment2, 10);
displayDigit(Segment2_digit2, 11);
if (digitalRead(ButtonTeamA) == LOW) {
delay(500);
scoreTeamA++;
if (scoreTeamA >= 15 || scoreTeamB >= 15) {
scoreTeamA = 0;
scoreTeamB = 0;
Segment1 = 0;
Segment1_digit2 = 0;
Segment2 = 0;
Segment2_digit2 = 0;
displayDigit(0, 8);
displayDigit(0, 9);
displayDigit(0, 10);
displayDigit(0, 11);
}
int ones = scoreTeamA % 10;
int tens = (scoreTeamA / 10) % 10;
Segment1 = ones;
Segment1_digit2 = tens;
displayDigit(ones, 8);
displayDigit(tens, 9);
} else if (digitalRead(ButtonTeamB) == LOW) {
delay(500);
scoreTeamB++;
if (scoreTeamA >= 15 || scoreTeamB >= 15) {
scoreTeamA = 0;
scoreTeamB = 0;
Segment1 = 0;
Segment1_digit2 = 0;
Segment2 = 0;
Segment2_digit2 = 0;
displayDigit(0, 8);
displayDigit(0, 9);
displayDigit(0, 10);
displayDigit(0, 11);
}
int ones = scoreTeamB % 10;
int tens = (scoreTeamB / 10) % 10;
Segment2 = ones ;
Segment2_digit2 = tens ;
displayDigit(ones, 10);
displayDigit(tens, 11);
} else if (digitalRead(ButtonReset) == LOW) {
delay(500);
scoreTeamA = 0;
scoreTeamB = 0;
Segment1 = 0;
Segment1_digit2 = 0;
Segment2 = 0;
Segment2_digit2 = 0;
displayDigit(0, 8);
displayDigit(0, 9);
displayDigit(0, 10);
displayDigit(0, 11);
}
}