#include <Wire.h>
#include <I2C_RTC.h>
#include <LiquidCrystal_I2C.h>
static DS3231 RTC;
LiquidCrystal_I2C lcd(0x27, 16, 02);
#define rain_sense A0
#define set_hr_up 2
#define set_hr_dowb 3
#define selec_preset 4
int safe_value = 10;
int debounceDelay = 50;
int buttonState1 = HIGH;
int lastButtonState1 = HIGH;
unsigned long lastDebounceTime1 = 0;
void setup()
{
Serial.begin(9600);
RTC.begin();
lcd.begin(16, 02);
lcd.backlight();
RTC.setDay(22);
RTC.setMonth(5);
RTC.setYear(2020);
RTC.setHours(6);
RTC.setMinutes(47);
RTC.setSeconds(56);
//RTC.setDate(22,07,29);
//RTC.setTime(22,10,20);
lcd.setCursor(0, 0);
lcd.print("TEST");
}
void loop()
{
int water_level = analogRead(rain_sense);
int hrs = RTC.getHours();
int mnt = RTC.getMinutes();
int reading1 = digitalRead(selec_preset);
debounceButton(reading1, lastButtonState1, lastDebounceTime1, buttonState1);
}
void debounceButton(int reading, int &lastButtonState, unsigned long &lastDebounceTime, int &buttonState) {
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == LOW) {
Serial.println("Click");
}
}
}
lastButtonState = reading;
}