/*
Knop 2 Knop 1 Knop 0 LED
0 0 0 allemaal uit
0 0 1 eerste led aan, alle anderen uit
0 1 0 tweede led aan, alle anderen uit
0 1 1 derde led aan, alle anderen uit
1 0 0 vierde led aan, alle anderen uit
1 0 1 vijfde led aan, alle anderen uit
1 1 0 zesde led aan, alle anderen uit
1 1 1 zevende led aan, alle anderen uit
*/
byte dataPin = 2;
byte clockPin = 3;
byte latchPin = 4;
byte button1 = 10;
byte button2 = 11;
byte button3 = 12;
int data = 0;
unsigned long previousMillis = 0;
const int interval = 20;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
data = 1 * !digitalRead(button1);
data += 2 * !digitalRead(button2);
data += 4 * !digitalRead(button3);
int leds_working = 1 << data;
Serial.println(data, BIN);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, leds_working);
digitalWrite(latchPin, HIGH);
}
}