// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6)
#include <LiquidCrystal_I2C.h>
#include <EncButton.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Button up(23);
Button down(13);
Button left(3);
Button righ(12);
Button ok(14);
int t_count = 0;
int count = 0;
unsigned long lastTime;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("SET TURNS = ");
lcd.setCursor(12, 0);
lcd.print(t_count);
lcd.setCursor(0, 1);
lcd.print("CRT TURNS = ");
lcd.setCursor(12, 1);
lcd.print(count);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
up.tick();
down.tick();
lcd.setCursor(0, 0);
lcd.print("SET TURNS = ");
lcd.setCursor(12, 0);
lcd.print(t_count);
lcd.setCursor(0, 1);
lcd.print("CRT TURNS = ");
lcd.setCursor(12, 1);
lcd.print(count);
count = constrain(count,0, 99999);
if (t_count==1000) {lcd.print(t_count); lcd.print(" "); }
if(up.press()) {
lcd.setCursor(12,0);
t_count++;
lcd.print(t_count);lcd.print(" ");
}
if(down.press() && t_count > 0) {
lcd.setCursor(12,0);
t_count--;
lcd.print(t_count); lcd.print(" ");
}
if(up.holding()) {
upHolding(25);
}
if(t_count>0 && down.holding()) {
downHolding();
}
delay(20);
}
int upHolding(byte maxMultiplier) {
lcd.setCursor(12,0);
//t_count+=2;
if (millis()-lastTime>3000) {
lastTime = millis();
t_count+=maxMultiplier;
}
else { t_count+=2; }
lcd.print(t_count);
lcd.print(" ");
return t_count;
}
int downHolding() {
lcd.setCursor(12,0);
t_count-=5;
if(t_count<=0) {t_count=0;}
lcd.print(t_count);
lcd.print(" ");
return t_count;
}