/*MENU NAVIGATION*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Rotary encoder inputs
#define button1 8
#define button2 9
#define options 3
String message[] = {"Humidity Setting", "Backlight On/Off" , "Delay Time"};
int humiditySet = 50;
unsigned long lastFanSwitch = millis();
unsigned long lastButtonPress = 0;
unsigned long lastRead = 0;
unsigned long timer = 600000;
unsigned long timerStart = 0;
int maxH = 80;
int minH = 25;
int sensingIncrement = 5000;
byte fanState = 0;
byte lastFanState = 0;
byte timerState = 0;
byte backLightState = 1;
int counter = 0;
void setup() {
// Run LCD 1602 Display Setup
lcd1602Setup();
// Designate inputs and outputs
pinMode(button1, INPUT);
pinMode(button2, INPUT);
// Setup Serial Monitor
Serial.begin(9600);
}
void loop() {
byte b1 = 0;
byte b2 = 0;
if (millis() - lastButtonPress > 500) {
b1 = digitalRead(button1);
b2 = digitalRead(button2);
if (b1 == 1 || b2 == 1) {
lastButtonPress = millis();
if (b1 == 1) {
counter ++;
if (counter > options -1) {
counter -= options;
}
l1Print(message[counter]);
} else if (b2 == 1) {
counter --;
if (counter < 0) {
counter += options;
}
l1Print(message[counter]);
}
}
}
}
void lcd1602Setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Startup Complete!");
delay(2000);
lcd.clear();
}
void l1Print(String msg) {
lcd.setCursor(0, 0);
lcd.print(msg + " ");
}