const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
const int set = 9;
const int start = 10;
const byte digitPatterns[] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
int countdown = 0;
unsigned long vaqt = 0;
bool starting = false;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(set, INPUT);
pinMode(start, INPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(set)) {
Serial.println("Set button pressed");
countdown += 1;
if (countdown > 9) {
countdown = 0;
}
delay(300);
}
if (digitalRead(start)) {
Serial.println("Start button pressed");
starting = true;
delay(300);
}
if (vaqt + 1000 < millis() && starting) {
vaqt = millis();
if (countdown > 0) {
countdown--;
} else {
starting = false;
}
}
displayDigit(countdown);
}
void displayDigit(int digit) {
for (int i = 0; i < 7; i++) {
if (bitRead(digitPatterns[digit], i))
{
digitalWrite(segmentPins[i], HIGH);
} else {
digitalWrite(segmentPins[i], LOW);
}
}
}
// const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
// const int set = 9;
// const int start = 10;
// const byte digitPatterns[] = {
// B00111111, // 0
// B00000110, // 1
// B01011011, // 2
// B01001111, // 3
// B01100110, // 4
// B01101101, // 5
// B01111101, // 6
// B00000111, // 7
// B01111111, // 8
// B01101111 // 9
// };
// int countdown = 0;
// unsigned long vaqt = 0;
// bool starting = false;
// void setup() {
// for (int i = 0; i < 7; i++) {
// pinMode(segmentPins[i], OUTPUT);
// }
// pinMode(set, INPUT);
// pinMode(start, INPUT);
// Serial.begin(9600);
// }
// void loop() {
// // Handle the "set" button
// if (digitalRead(set) ) { // Detect rising edge
// Serial.println("Set Button Pressed");
// countdown += 1;
// if (countdown > 9) {
// countdown = 9; // Cap the countdown at 9
// }
// delay(300); // Short delay to prevent bounce
// }
// // Handle the "start" button
// if ( digitalRead(start) ) { // Detect rising edge
// Serial.println("Start Button Pressed");
// starting = true;
// delay(300); // Short delay to prevent bounce
// }
// // Handle countdown timing
// if (vaqt + 1000 < millis() && starting) {
// vaqt = millis();
// if (countdown > 0) {
// countdown--;
// } else {
// starting = false;
// }
// }
// // Display the current digit
// displayDigit(countdown);
// }
// void displayDigit(int digit) {
// for (int i = 0; i < 7; i++) {
// if (bitRead(digitPatterns[digit], i)) {
// digitalWrite(segmentPins[i], HIGH);
// } else {
// digitalWrite(segmentPins[i], LOW);
// }
// }
// }