// const int dataPin = PB0; /* DS */
// const int clockPin = PB1; /* SHCP */
// const int latchPin = PB2; /* STCP */
// const int button = PB3;
// int lastButtonState = 1;
// void setup() {
// pinMode(dataPin, OUTPUT);
// pinMode(clockPin, OUTPUT);
// pinMode(latchPin, OUTPUT);
// pinMode(button, INPUT_PULLUP);
// }
// byte push = 0b00000001;
// void loop() {
// int value = digitalRead(button);
// if (value != lastButtonState) {
// if (value == LOW)
// {
// digitalWrite(latchPin, LOW);
// shiftOut(dataPin, clockPin, MSBFIRST, push);
// digitalWrite(latchPin, HIGH);
// push++;
// }
// delay(50);
// lastButtonState = value;
// }
// }
const int dataPin = PB0; /* DS */
const int clockPin = PB1; /* SHCP */
const int latchPin = PB2; /* STCP */
const int button = PB3;
int buttonState;
int lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
byte push = 0b00000001;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(button, INPUT_PULLUP);
}
void loop(){
int reading = digitalRead(button);
if (reading != lastButtonState){
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == LOW) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, push);
digitalWrite(latchPin, HIGH);
push++;
}
}
}
lastButtonState = reading;
}1
2
4
8
16
32
64
128