#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
const int btn_arrow_left = A0;
const int btn_arrow_right = A1;
const int btn_setting = A2;
const int btn_flash = A3;
int displaystate = 0;
int mode = 0, mode1 = 0, mode2 = 0, mode3 = 0;
int settingpoint = 1;
int amber1 = 13, amber2 = 9, amber3 = 6, amber4 = 3;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("CURVIO TL400");
pinMode(btn_flash, INPUT_PULLUP);
pinMode(btn_setting, INPUT_PULLUP);
pinMode(btn_arrow_left, INPUT_PULLUP);
pinMode(btn_arrow_right, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
mode = digitalRead(btn_flash);
mode1 = digitalRead(btn_setting);
mode2 = digitalRead(btn_arrow_left);
mode3 = digitalRead(btn_arrow_right);
if (mode == HIGH){
Serial.println("FLASHING MODE: ON");
if (displaystate == 0){
lcd.setCursor(0, 1);
lcd.print("<MODE: FLASHING>");
}
digitalWrite(amber1, HIGH);
digitalWrite(amber2, HIGH);
digitalWrite(amber3, HIGH);
digitalWrite(amber4, HIGH);
delay(750);
digitalWrite(amber1, LOW);
digitalWrite(amber2, LOW);
digitalWrite(amber3, LOW);
digitalWrite(amber4, LOW);
delay(750);
} else {
if (displaystate == 0){
lcd.setCursor(0, 1);
lcd.print("<MODE: RUNNING >");
}
delay(1000);
}
if (mode2 == LOW){settingpoint--;} if (mode3 == LOW){settingpoint++;}
if (settingpoint <= 0){settingpoint = 1;} if (settingpoint >= 6){settingpoint = 5;}
if (mode1 == LOW){
displaystate = 1;
}
if (displaystate == 1){settings();}
}
void settings(){
lcd.setCursor(0, 0);
lcd.print(" <SETTINGS> ");
lcd.setCursor(0, 1);
if (settingpoint == 1){lcd.print(" - Line01 - ");} else
if (settingpoint == 2){lcd.print(" - Line02 - ");} else
if (settingpoint == 3){lcd.print(" - Line03 - ");} else
if (settingpoint == 4){lcd.print(" - Line04 - ");} else
if (settingpoint == 5){lcd.print(" - Exit - ");}
}
void offallleds(){
digitalWrite(amber1, LOW);
digitalWrite(amber2, LOW);
digitalWrite(amber3, LOW);
digitalWrite(amber4, LOW);
}
void clearlcd(int LineS){
lcd.setCursor(0, LineS);
lcd.print(" ");
}