// coding counter OLTC by Wahyu H
// 28 01 2023
// konsep modulus
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
long int i=99995;
const byte DOWN= 4;
const byte SENSOR= 5;
const byte UP= 6;
const byte buz= 12;
const byte rst= 7;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
pinMode(SENSOR, INPUT);
pinMode(DOWN, INPUT);
pinMode(UP, INPUT);
pinMode(rst,INPUT);
//pinMode(ind,OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Count of OLTC");
lcd.setCursor(0, 1);
lcd.print("Total :");
}
void loop()
{
int a = digitalRead(SENSOR);
if (a==1){
i=i+1;
//EEPROM.write(0,i);
delay(6000);
lcd.setCursor(0, 1);
lcd.print("Total :" + String (i)+" X " );
Serial.println(i);
}
int b = digitalRead(DOWN);
if (b==1){
i=i-1;
//EEPROM.write(0,i);
delay(200);
lcd.setCursor(0, 1);
lcd.print("Total :" + String (i)+" X " );
Serial.println(i);
}
int c = digitalRead(UP);
if (c==1){
i=i+1;
//EEPROM.write(0,i);
delay(200);
lcd.setCursor(0, 1);
lcd.print("Total :" + String (i)+" X " );
Serial.println(i);
}
if (i%100000==0){
lcd.setCursor(0, 1);
lcd.print("time to Service" );
Serial.println("time to Service Flashing");
delay(200);
tone(buz,500);
}
int d = digitalRead(rst);
if (d==1){
noTone(buz);
}
}