// กำหนดขา I/O สำหรับการควบคุม shift register
const int dataPin = 2; // DS ของ 74HC595
const int clockPin = 3; // SHCP ของ 74HC595
const int latchPin = 4; // STCP ของ 74HC595
// ตารางการแสดงผลสำหรับแต่ละตัวเลข (0-9)
const byte digit[10] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
// ตั้งค่าขาสำหรับ shift register เป็น OUTPUT
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
Serial.begin(115200);
}
void loop() {
for (int i = 0; i < 10; i++) {
displayDigit(i);
delay(1000); // หน่วงเวลา 1 วินาที
}
}
void displayDigit(int num) {
byte segments = digit[num];
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, segments); // ส่งข้อมูลไปยัง 74HC595
digitalWrite(latchPin, HIGH);
}