#define latchPin 26 // ST_CP is pin 12 of 74hc595
#define clockPin 25 // SH_CP is pin 11 of 74hc595
#define dataPin 27 // DS is pin 14 of 74hc595
//byte led1 = 0b111111111; //ตัวแปรให้ led สบายทั้งหมดด้วยใช้เลขฐานสอง
//byte led2 = 0b000000000;
//int ledDisp[] = {0x00,0x80,0xC0,0xF0,0xF8}; //ตัวเลขฐานสิบหกของวิธีที่ 1
/*int led[] = {0b10000000,0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001
} ; //เก็บตัวเลขฐาน
*/
void setup() {
Serial.begin(115200);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin , OUTPUT);
}
void loop() {
/* digitalWrite(latchPin, LOW); //(เริ่มต้มการส่งข้อมูล) ต้องให้ latch เป็น LOW แล้วให้กลับมาเป็น HIGH เพื่อ จบ
shiftOut(dataPin,clockPin,MSBFIRST,ledDisp[i]); // LSBFIRST ให้ขวาไปซ้าย MSBFIRST ให้ซ้ายไปขวา
digitalWrite(latchPin, HIGH); //(ให้จบการส่งข้อมูล)
*/
/*for (int i = 0; i < 8; i++){ //วิธีที่ 1 การใช้เลขฐาน
digitalWrite(latchPin, LOW);
shiftOut(dataPin,clockPin,MSBFIRST,ledDisp[i]);
digitalWrite(latchPin, HIGH);
delay(1000);
}
*/
for (int i = 0; i < 8; i++){ // วิธีที่ 2 ด้วยการใช้ << กับ >>
digitalWrite(latchPin, LOW);
shiftOut(dataPin,clockPin,MSBFIRST,1 << i); //HIGH = 1 ,LOW = 0
digitalWrite(latchPin, HIGH);
delay(300);
}
/*for (int i = 0; i < 8; i++){ //วิธีที่ 3 เก็บตัวเลขฐานสอง
digitalWrite(latchPin, LOW);
shiftOut(dataPin,clockPin,MSBFIRST,led[i]);
digitalWrite(latchPin, HIGH);
delay(300);
}
*/
}