const int dataPin = 9;
const int latchPin = 10;
const int clockPin = 11;
const int a3Pin = 14;
const int a2Pin = 15;
const int a1Pin = 16;
//試著改變 dt 的值,找到可以騙過眼睛造成視覺暫留的門檻值
int dt = 3;
int loopCnt=100;
void setup() {
pinMode(latchPin,OUTPUT);
pinMode(clockPin,OUTPUT);
pinMode(dataPin,OUTPUT);
pinMode(a1Pin,OUTPUT);
pinMode(a2Pin,OUTPUT);
pinMode(a3Pin,OUTPUT);
}
void loop() {
for(int dd=0;dd<loopCnt;dd++){
digitalWrite(a3Pin,LOW);
digitalWrite(a2Pin,LOW);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 3);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,HIGH);
digitalWrite(a2Pin,LOW);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 3);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,LOW);
digitalWrite(a2Pin,HIGH);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 12);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,HIGH);
digitalWrite(a2Pin,HIGH);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 12);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
//重發清除的資料解決殘餘弱電顯示微光的問題
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 0);
//Pull latch HIGH to stop sending data
digitalWrite(latchPin, HIGH);
}
for(int dd=0;dd<loopCnt;dd++){
digitalWrite(a3Pin,LOW);
digitalWrite(a2Pin,LOW);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 12);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,HIGH);
digitalWrite(a2Pin,LOW);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 12);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,LOW);
digitalWrite(a2Pin,HIGH);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 3);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
digitalWrite(a3Pin,HIGH);
digitalWrite(a2Pin,HIGH);
digitalWrite(a1Pin,LOW);
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 3);
/*MSBFIRST的意思是most significant bit first,也就是最先輸出的會是number(是個uint8_t,有8個bits,第7個bit是MSB,第0個bit是LSB)的第7個bit。如果改用LSBFIRST(least significant bit first),那麼最先輸出的會是第0個*/
//Pull latch LOW to end sending data
digitalWrite(latchPin, HIGH);
delay(dt);
//重發清除的資料解決殘餘弱電顯示微光的問題
//Pull latch LOW to start sending data
digitalWrite(latchPin, LOW);
//Send the data
shiftOut(dataPin, clockPin, MSBFIRST, 0);
//Pull latch HIGH to stop sending data
digitalWrite(latchPin, HIGH);
}
}