#define BUTTON_PIN 3
#define BUTTON_RESET_PIN 2
#define LED_PIN_4 13
#define LED_PIN_3 11
#define LED_PIN_2 9
#define LED_PIN_1 7
static byte pressCount = 0;
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(BUTTON_RESET_PIN, INPUT_PULLUP);
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(LED_PIN_3, OUTPUT);
pinMode(LED_PIN_4, OUTPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_RESET_PIN), reset, RISING);
}
void loop() {
countButtonAndBlink();
}
void countButtonAndBlink()
{
static bool lastState = HIGH;
int currentState = digitalRead(BUTTON_PIN);
delay(12);
if(currentState == LOW & lastState == HIGH){
pressCount++;
digitalWrite(LED_PIN_1, pressCount & 0b01); //MAske
digitalWrite(LED_PIN_2, pressCount & 0b10);
digitalWrite(LED_PIN_3, pressCount & 0b100);
digitalWrite(LED_PIN_4, pressCount & 0b1000);
if(pressCount == 16){
pressCount = 0;
}
}
lastState = currentState;
}
void reset()
{
pressCount=0;
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, LOW);
digitalWrite(LED_PIN_3, LOW);
digitalWrite(LED_PIN_4, LOW);
}