#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int offButton = 16;
const int onButton = 17;
const int ledPin = 5;
int onButtonState = 0;
int offButtonState = 0;
bool ledState = LOW;
bool lastOnButtonState = HIGH;
bool lastOffButtonState = HIGH;
unsigned long lastDebounceTimeOn = 0;
unsigned long lastDebounceTimeOff = 0;
const unsigned long debounceDelay = 10;
void setup() {
lcd.init();
lcd.backlight();
pinMode(ledPin, OUTPUT);
pinMode(onButton, INPUT_PULLUP);
pinMode(offButton, INPUT_PULLUP);
digitalWrite(ledPin, LOW);
}
void loop(){
lcd.print("DONE MIDTERM!");
lcd.setCursor(0,0);
int onButtonState = digitalRead(onButton);
int offButtonState = digitalRead(offButton);
if (onButtonState != lastOnButtonState) {
lastDebounceTimeOn = millis();
}
if ((millis() - lastDebounceTimeOn) > debounceDelay) {
if (onButtonState == LOW) {
ledState = HIGH;
digitalWrite(ledPin, ledState);
lcd.setCursor(0, 1);
lcd.print("BY AUBS & GABS. ");
}
}
if (offButtonState != lastOffButtonState) {
lastDebounceTimeOff = millis();
}
if ((millis() - lastDebounceTimeOff) > debounceDelay) {
if (offButtonState == LOW) {
ledState = LOW;
digitalWrite(ledPin, ledState);
lcd.setCursor(0, 1);
lcd.print("finally sleepwell. ");
}
}
lastOnButtonState = onButtonState;
lastOffButtonState = offButtonState;
}