#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RotaryEncoder.h>
#define PIN_IN1 4
#define PIN_IN2 3
int SW = 2;
#define ROTARYSTEPS 0.5
#define ROTARYMIN 7
#define ROTARYMAX 27
int lastPos = -1;
int dikis = 20;
RotaryEncoder encoder(PIN_IN1, PIN_IN2, RotaryEncoder::LatchMode::TWO03);
LiquidCrystal_I2C lcd(0x27,20,4);
void setup(){
lcd.init();
lcd.setBacklight(1);
lcd.print("SimplePollRotatorLCD");
encoder.setPosition(dikis / ROTARYSTEPS);
}
void loop(){
encoder.tick();
int newPos = encoder.getPosition() * ROTARYSTEPS;
if(newPos < ROTARYMIN){
encoder.setPosition(ROTARYMIN / ROTARYSTEPS);
newPos = ROTARYMIN;
}else if(newPos > ROTARYMAX){
encoder.setPosition(ROTARYMAX / ROTARYSTEPS);
newPos = ROTARYMAX;
}
if(lastPos != newPos) {
lcd.clear();
lcd.setCursor(3,0);
lcd.print("DiKiS UZUNLUGU");
lcd.setCursor(0,1);
lcd.print(newPos);
lcd.setCursor(2,1);
lcd.print("cm");
lastPos = newPos;
}
if(digitalRead(SW) == 1){
lcd.setCursor(5,3);
lcd.print("KAYDEDILDI");
newPos = dikis;
delay(1500);
}
}