#define SERIELEDATAPIN 4
#define CLOCK 2
#define DOORGEEFPIN 3
#define BUTTOPIN 9
//byte cijfers [] = {252, 96, 218, 242, 102, 182, 190, 224, 254, 246};
byte cijfers [] = { 4, 8, 16, 32, 64, 128};
/*byte cijfers [] = {B11111100,
B01100000,
B11011010,
B11110010,
B01100110,
B10110110,
B10111110,
B11100000,
B11111110,
B11110110
};*/
int arraySize = sizeof cijfers / sizeof cijfers [0];
volatile boolean displayState = false;
void checkButton();
void setup() {
Serial.begin(115200);
pinMode(SERIELEDATAPIN, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DOORGEEFPIN, OUTPUT);
pinMode(BUTTOPIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BUTTOPIN), checkButton, FALLING);
}
void loop() {
//if (displayState) {
for (int i = 0; i < arraySize ; i++) {
digitalWrite(DOORGEEFPIN, LOW);
shiftOut(SERIELEDATAPIN, CLOCK, LSBFIRST, cijfers[i]);
digitalWrite(DOORGEEFPIN, HIGH);
delay(100);
}/*
} else {
digitalWrite(DOORGEEFPIN, LOW);
shiftOut(SERIELEDATAPIN, CLOCK, LSBFIRST, B00000001);
digitalWrite(DOORGEEFPIN, HIGH);
}
/*for (byte i = 0; i < 254 ; i++) {
digitalWrite(DOORGEEFPIN, LOW);
shiftOut(SERIELEDATAPIN, CLOCK, LSBFIRST, i);
digitalWrite(DOORGEEFPIN, HIGH);
delay(100);
}*/
}
void checkButton() {
displayState = !displayState;
}