// TEST skills Setup code c++ Config 7Segments.
int A = 2 ;
int B = 3 ;
int C = 4 ;
int D = 5 ;
int E = 6 ;
int F = 7 ;
int G = 8 ;
int DP = 9;
int DIG1 = 10 ;
int DIG2 = 11 ;
int DIG3 = 12 ;
int DIG4 = 13 ;
int8_t maxSeg = 8;
const int segment[7] ={A,B,C,D,E,F,G};
const int DIG[4] ={DIG1,DIG2,DIG3,DIG4};
#define anode true
#define cathode false
const byte NUM[10] ={ //ตามลำดับดังนี้ พิมพ์ 0b G F E D C B A
0b1000000, // 0
0b1111001, // 1
0b0100100, // 2
0b0110000, // 3
0b0011001, // 4
0b0010010, // 5
0b0000010, // 6
0b1111000, // 7
0b0000000, // 8
0b0010000, // 9
};
void setup() {
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
// pinMode(DP, OUTPUT);
pinMode(DIG4, OUTPUT);
pinMode(DIG3, OUTPUT);
pinMode(DIG2, OUTPUT);
pinMode(DIG1, OUTPUT);
}
void loop() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DIG4, HIGH);
for(int i=0; i<10000; i++){
showNumber(i);
}
delay(1000);
}
void showNumber(int number) {
int thousands = number / 1000;
int hundreds = (number % 1000) / 100;
int tens = (number % 100) / 10;
int ones = number % 10;
// แสดงผลแต่ละหลัก
for (int i = 0; i < 4; i++) {
digitalWrite(DIG[i], HIGH); // เปิดหลักที่ต้องการแสดง
int digit;
switch (i) {
case 0: digit = thousands; break;
case 1: digit = hundreds; break;
case 2: digit = tens; break;
case 3: digit = ones; break;
}
for (int j = 0; j < 7; j++) {
digitalWrite(segment[j],HIGH);
}
delay(5);
digitalWrite(DIG[i], LOW); // ปิดหลักปัจจุบัน
}
}