#include <SimpleRotary.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
LiquidCrystal_I2C lcd(0x27,16,4);
SimpleRotary rotary(3,4,5);
int CW;
unsigned long timeRef1,timeRef2,timeRef3 ;
int waitingTime =500, applicationTime = 200;
void setup(){
lcd.begin(20,04);
lcd.backlight();
Serial.begin(115200);
pinMode(2, INPUT);
pinMode(13, OUTPUT);
digitalWrite(13,LOW);
}
void loop(){
byte i;
// 0 = not turning, 1 = CW, 2 = CCW
i = rotary.rotate();
lcd.setCursor(2,0);
lcd.print("TIMER");
lcd.setCursor(4,1);
lcd.print(applicationTime);
if ( i == 1 ) {
lcd.clear();
CW++;
if(CW>=10) CW =1;
applicationTime = CW * 100;
lcd.setCursor(4,1);
lcd.print(applicationTime);
}
if ( i == 2 ) {
lcd.clear();
CW--;
if(CW<=0)CW=9;
applicationTime = CW * 100;
lcd.setCursor(4,1);
lcd.print(applicationTime);
}
if(digitalRead(2)==HIGH){
while(digitalRead(2)==HIGH){
timeRef1=millis();
while((millis()- timeRef1) < waitingTime){
digitalWrite(13,LOW);
}
timeRef2 = millis();
while ((millis()- timeRef2)<applicationTime && digitalRead(2)==HIGH){
digitalWrite(13, HIGH);
}
digitalWrite(13, LOW);
timeRef3=millis();
while((millis()-timeRef3)<50){
if(digitalRead(2)==HIGH){
timeRef3=millis();
}
}
}
}
}