// Khai báo chân theo đúng file JSON bạn gửi:
// A=PA0, B=PA1, C=PA2, D=PA3, E=PA4, F=PA5, G=PA6
const int segmentPins[] = {PA0, PA1, PA2, PA3, PA4, PA5, PA6};
// Mảng mã hiển thị số 0-9 (Dành cho Common Cathode - Âm chung)
// Bit 1 = Sáng, Bit 0 = Tắt
const byte numbers[10] = {
0b00111111, // Số 0
0b00000110, // Số 1
0b01011011, // Số 2
0b01001111, // Số 3
0b01100110, // Số 4
0b01101101, // Số 5
0b01111101, // Số 6
0b00000111, // Số 7
0b01111111, // Số 8
0b01101111 // Số 9
};
void setup() {
// Cấu hình tất cả các chân là OUTPUT
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// Đếm từ 0 đến 9
for (int num = 0; num < 10; num++) {
displayNumber(num);
delay(1000); // Đợi 1 giây rồi đổi số
}
}
void displayNumber(int num) {
byte segments = numbers[num];
for (int i = 0; i < 7; i++) {
// Kiểm tra từng bit của mã số
int state = (segments >> i) & 1;
// Xuất tín hiệu ra chân (HIGH là sáng vì là Âm chung)
digitalWrite(segmentPins[i], state);
}
}