#include <LiquidCrystal_I2C.h>
#define LedMerah 23
#define LedKuning 19
#define LedHijau 18
const int pinPB1 = 13;
const int pinPB2 = 12;
unsigned char StatePB1,StatePB2;
unsigned int Interval = 500;
unsigned long PrevMillis;
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 20, 4);
unsigned char Counter;
unsigned int potValue;
void setup() {
Serial.begin(115200);
pinMode(LedMerah, OUTPUT);
pinMode(LedKuning, OUTPUT);
pinMode(LedHijau, OUTPUT);
pinMode(pinPB1, INPUT_PULLUP);
pinMode(pinPB2, INPUT_PULLUP);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Counter: ");
LCD.setCursor(0, 1);
LCD.print("Adc= ");
}
void loop() {
StatePB1 = digitalRead(pinPB1);
StatePB2 = digitalRead(pinPB2);
potValue = analogRead(25);
LCD.setCursor(9,1);
LCD.print(potValue);
if (StatePB1 == LOW){
Serial.println("PB1 di Tekan");
digitalWrite(LedKuning, HIGH);
Counter++;
LCD.setCursor(9,0);
LCD.print(Counter);
}
if (StatePB2 == LOW){
Serial.println("PB2 di Tekan");
digitalWrite(LedKuning, LOW);
}
//=================================
unsigned long CurrentMillis = millis();
if (CurrentMillis - PrevMillis >= Interval) // Interval=500mS
{ PrevMillis = millis();
digitalWrite(LedHijau, !digitalRead(LedHijau));
}
delay(1);
}