const int dataPin = 9;//ประกาศขา DS : dataPin = 9
const int clockPin = 10;//ประกาศขา SHCP ; clockPin = 10
const int latchPin = 8;//ประกาศขา STCP : latchPin = 8
const byte digits[] = {//สร้าง array เก็บข้อมูลตัวเลขในรูปแบบ bit
B1000000, // 0
B1111001, // 1
B0100100, // 2
B0110000, // 3
B0011001, // 4
B0010010, // 5
B0000010, // 6
B1111000, // 7
B0000000, // 8
B0010000, // 9
};
void setup() {
pinMode(dataPin, OUTPUT);//กำหนดให้ dataPin เป็น OUTPUT
pinMode(clockPin, OUTPUT);//กำหนดให้ clockPin เป็น OUTPUT
pinMode(latchPin, OUTPUT);//กำหนดให้ latchPin เป็น OUTPUT
}
void loop() {
for(int i =0; i<10; i++){//วนลูป 10 ครั้ง
showDigitLeds(digits[i]);//เรียกใช้ Function โชว์ตัวเลข
delay(1000);//หน่วงเวลา 1 วินาที
}
}
void showDigitLeds(byte digit) {//สร้าง Function ชื่อ showDigitLeds เพื่อสั่งโชว์ตัวเลข
digitalWrite(latchPin, LOW);//กำหนดขา latchPin เป็น LOW เพื่อส่งข้อมูลเข้าไป
shiftOut(dataPin, clockPin, MSBFIRST, digit);//ส่งข้อมูลที่ต้องการแสดงผล
//MSBFIRST จะส่งข้อมูลที่มีค่าบิดสูงสุดเข้าไปก่อน
digitalWrite(latchPin, HIGH);//กำหนดขา latchPin เป็น HIGH หลังส่งข้อมูลเสร็จ
}