int index = 5;
const int LED[] = {10, 11, 12};
const int RedButton = A0;
const int GreenButton = A1;
const byte segmentCodes[] = {
0b11000000, // 0
0b11111001, // 1
0b10100100, // 2
0b00110000, // 3
0b00011001, // 4
0b00010010, // 5
0b00000010, // 6
0b11111000, // 7
0b00000000, // 8
0b00010000, // 9
0b01111111};
void setup() {
// กำหนดขาที่ต่อกับหลอด LED 7-Segment ในฐาน 16 (A, B, C, D, E, F, G)
pinMode(2,OUTPUT);//a
pinMode(3,OUTPUT);//b
pinMode(4,OUTPUT);//c
pinMode(5,OUTPUT);//d
pinMode(6,OUTPUT);//e
pinMode(7,OUTPUT);//f
pinMode(8,OUTPUT);//g
pinMode(9,OUTPUT);//poirt
for (int i = 0; i < sizeof(LED) / sizeof(LED[0]); i++) {
pinMode(LED[i], OUTPUT);
}
}
void displayDigit(byte value) {
digitalWrite(2, bitRead(value, 0));
digitalWrite(3, bitRead(value, 1));
digitalWrite(4, bitRead(value, 2));
digitalWrite(5, bitRead(value, 3));
digitalWrite(6, bitRead(value, 4));
digitalWrite(7, bitRead(value, 5));
digitalWrite(8, bitRead(value, 6));
}
void turnOnLED(int index) {
digitalWrite(LED[index], LOW);
}
void turnOffLED(int index) {
digitalWrite(LED[index], HIGH); // ปิด LED สีที่ต้องการ
}
void countdown_time(int time) {
for (int i = time; i >= 0; i--) {
displayDigit(segmentCodes[i]);
delay(1000);
}
}
void trigger() {
for (int i = 5; i >= 0; i--) {
if (digitalRead(GreenButton) == LOW) {
return;
}
displayDigit(segmentCodes[i]);
delay(1000);
}
turnOffLED(2);
turnOnLED(1);
if (digitalRead(GreenButton) == LOW) {
return;
}
delay(3000);
turnOffLED(1);
turnOnLED(0);
for (int i = 9; i >= 0; i--) {
if (digitalRead(GreenButton) == LOW) {
return;
}
displayDigit(segmentCodes[i]);
delay(1000);
}
}
void loop() {
turnOnLED(2);
turnOffLED(0);
turnOffLED(1);
displayDigit(segmentCodes[10]);
digitalWrite(9, HIGH);
if (digitalRead(RedButton) == LOW) {
digitalWrite(9, LOW);
trigger();
}
}