#include <LiquidCrystal.h>
#include <EncButton.h>
const int rs = 12, en = 11, d4 = 2, d5 = 3, d6 = 4, d7 = 5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Button BTN1(6);
Button BTN2(10);
int counter = 1000;
unsigned long lastTime;
void setup() {
lcd.begin(16, 2);
lcd.print("TEST");
Serial.begin(9600);
}
void loop() {
BTN1.tick();
BTN2.tick();
lcd.setCursor(0, 1);
lcd.print("Pause:");
lcd.setCursor(6,1);
counter = constrain(counter,0, 99999);
if (counter==1000) {lcd.print(counter); lcd.print(" "); }
if(BTN1.press()) {
lcd.setCursor(6,1);
counter++;
lcd.print(counter);lcd.print(" ");
}
if(BTN2.press() && counter > 0) {
lcd.setCursor(6,1);
counter--;
lcd.print(counter); lcd.print(" ");
}
if(BTN1.holding()) {
btn1Holding(25);
}
if(counter>0 && BTN2.holding()) {
btn2Holding();
}
delay(20);
}
int btn1Holding(byte maxMultiplier) {
lcd.setCursor(6,1);
//counter+=2;
if (millis()-lastTime>3000) {
lastTime = millis();
counter+=maxMultiplier;
}
else { counter+=2; }
lcd.print(counter);
lcd.print(" ");
return counter;
}
int btn2Holding() {
lcd.setCursor(6,1);
counter-=5;
if(counter<=0) {counter=0;}
lcd.print(counter);
lcd.print(" ");
return counter;
}