#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int LED1 = 12;
int LED2 = 13;
int button = 3;
boolean LED1State = false;
boolean LED2State = false;
long buttonTimer = 0;
long longPressTime = 250;
boolean buttonActive = false;
boolean longPressActive = false;
#include <LiquidCrystal_I2C.h>
void setup() {
lcd.init();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Boolean: ");
lcd.print(buttonActive);
pinMode(LED2, OUTPUT);
pinMode(button, INPUT);
}
void loop() {
lcd.setCursor(9, 0);
lcd.print(LED2State);
lcd.setCursor(9, 1);
lcd.print(millis());
lcd.print(" ");
lcd.print(millis() - buttonTimer);
if (digitalRead(button) == HIGH) {
if (buttonActive == false) {
buttonActive = true;
buttonTimer = millis();
lcd.setCursor(9, 0);
lcd.print(LED2State);
lcd.setCursor(0,1);
lcd.print(buttonTimer);
}
if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) {
longPressActive = true;
LED1State = !LED1State;
digitalWrite(LED1, LED1State);
}
} else {
if (buttonActive == true) {
if (longPressActive == true) {
longPressActive = false;
} else {
LED2State = !LED2State;
digitalWrite(LED2, LED2State);
}
buttonActive = false;
}
}
}