#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int len = 4; int gtlen;
int xuong = 2; int gtxuong;
int menu = 18; int gtmenu;
int macdinh = 1;
int congtru_tong = 0; int congtru_menu1 = 0; int congtru_menu2 = 0;
int congtru_menu3 = 0;int congtru_menu4 = 0;int congtru_menu5 = 0;
int demmenu1 = 0; int demmenu2 = 0; int demmenu3 = 0; int demmenu4 = 0; int demmenu5 = 0;
int demtong = 0;
int gtnhietdo = 50;
int gtkhigas = 50;
int canhbao = 0;
int den = 0;
int ttquat = 1;
int ttbom = 1;
void manhinh() // HIỂN THỊ MÀN HÌNH CHÍNH
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" DO AN 2 ");
lcd.setCursor(0, 1);
lcd.print(" NHA THONG MINH ");
}
void menu_tong() // HIỂN THỊ MENU TỔNG
{
if (congtru_tong == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" CHINH NHIET DO");
}
else if (congtru_tong == 1)
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">CHINH NHIET DO");
}
else if (congtru_tong == 2)
{
lcd.clear();
lcd.print(">CHINH KHI GAS");
lcd.setCursor(0, 1);
lcd.print(" ON/OFF CANH BAO");
}
else if (congtru_tong == 3)
{
lcd.clear();
lcd.print(" CHINH KHI GAS");
lcd.setCursor(0, 1);
lcd.print(">ON/OFF CANH BAO");
}
else if (congtru_tong == 4)
{
lcd.clear();
lcd.print(">ON/OFF DEN");
lcd.setCursor(0, 1);
lcd.print(" TRANG THAI TAI");
}
else if (congtru_tong == 5)
{
lcd.clear();
lcd.print(" ON/OFF DEN");
lcd.setCursor(0, 1);
lcd.print(">TRANG THAI TAI");
}
}
void menu_1() // HIỂN THỊ MENU 1
{
if (congtru_menu1 == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" NHIET DO");
}else if ( congtru_menu1 == 1 )
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">NHIET DO");
}
}
void chonmenu_1() // CHỌN MENU 1 GIA TRI NHIET DO
{
switch (congtru_menu1)
{
case 0:
//BACK
break;
case 1:
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" NHIET DO ");
lcd.setCursor(0,1);
lcd.print("GIA TRI: ");
break;
}
}
void menu_2() // HIỂN THỊ MENU 2
{
if (congtru_menu2 == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" KHI GAS");
}
else if (congtru_menu2 == 1)
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">KHI GAS");
}
}
void chonmenu_2() // CHỌN MENU 2 GIA TRI KHI GAS
{
switch (congtru_menu2)
{
case 0:
//BACK
break;
case 1:
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" KHI GAS ");
lcd.setCursor(0,1);
lcd.print("GIA TRI: ");
break;
}
}
void menu_3() // HIỂN THỊ MENU 3
{
if (congtru_menu3 == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" CHONG TROM");
}
else if (congtru_menu3 == 1)
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">CHONG TROM");
}
}
void chonmenu_3() // CHỌN MENU 3 GIA TRI CHONG TROM
{
switch (congtru_menu3)
{
case 0:
//BACK
break;
case 1:
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" CHONG TROM ");
lcd.setCursor(0,1);
lcd.print("GIA TRI: ");
break;
}
}
void menu_4() // HIỂN THỊ MENU 4
{
if (congtru_menu4 == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" ON/OFF DEN");
}
else if (congtru_menu4 == 1)
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">ON/OFF DEN");
}
}
void chonmenu_4() // CHỌN MENU 4 BAT TAT DEN
{
switch (congtru_menu4)
{
case 0:
//BACK
break;
case 1:
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" DEN ");
lcd.setCursor(0,1);
lcd.print("GIA TRI: ");
break;
}
}
void menu_5() // HIỂN THỊ MENU 5
{
if (congtru_menu5 == 0)
{
lcd.clear();
lcd.print(">BACK");
lcd.setCursor(0, 1);
lcd.print(" TRANG THAI TAI");
}
else if (congtru_menu5 == 1)
{
lcd.clear();
lcd.print(" BACK");
lcd.setCursor(0, 1);
lcd.print(">TRANG THAI TAI");
}
}
void chonmenu_5() // CHỌN MENU 5 XEM TRANG THAI TAI
{
switch (congtru_menu5)
{
case 0:
//BACK
break;
case 1:
lcd.clear();
lcd.setCursor(0,0);
lcd.print("QUAT:");
lcd.setCursor(0,1);
lcd.print("BOM: ");
break;
}
}
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(len, INPUT_PULLUP);
pinMode(xuong, INPUT_PULLUP);
pinMode(menu, INPUT_PULLUP);
manhinh();
}
void loop()
{
gtlen = digitalRead(len);
gtxuong = digitalRead(xuong);
gtmenu = digitalRead(menu);
Serial.print("LÊN: "); Serial.print(gtlen); Serial.print(" ");
Serial.print("XUỐNG: "); Serial.print(gtxuong); Serial.print(" ");
Serial.print("Menu: "); Serial.println(gtmenu);
if (gtlen != macdinh) // NÚT LÊN
{
if (gtlen == 0) // Khi nhấn nút lên
{
if (demtong == 1) // LÊN Ở MENU TỔNG
{
if (congtru_tong >= 5)
{
congtru_tong = 0;
}
else
{
congtru_tong++;
}
menu_tong();
}
else if (demtong == 2 && congtru_tong == 1) // LÊN Ở MENU 1
{
if (congtru_menu1 >= 1)
{
congtru_menu1 = 0;
}
else
{
congtru_menu1++;
}
menu_1();
}
else if (demtong == 2 && congtru_tong == 2) // LÊN Ở MENU 2
{
if (congtru_menu2 >= 1)
{
congtru_menu2 = 0;
}
else
{
congtru_menu2++;
}
menu_2();
}
else if (demtong == 2 && congtru_tong == 3) // LÊN Ở MENU 3
{
if (congtru_menu3 >= 1)
{
congtru_menu3 = 0;
}
else
{
congtru_menu3++;
}
menu_3();
}
else if (demtong == 2 && congtru_tong == 4) // LÊN Ở MENU 4
{
if (congtru_menu4 >= 1)
{
congtru_menu4 = 0;
}
else
{
congtru_menu4++;
}
menu_4();
}
else if (demtong == 2 && congtru_tong == 5) // LÊN Ở MENU 5
{
if (congtru_menu5 >= 1)
{
congtru_menu5 = 0;
}
else
{
congtru_menu5++;
}
menu_5();
}
else if (demtong == 3 && demmenu2 == 1) // - KHI GAS
{
if (gtkhigas <= 0)
{
gtkhigas = 0;
}
else
{
gtkhigas--;
}
}
else if (demtong == 3 && demmenu3 == 1) // ON OFF CANH BAO
{
if (canhbao <= 0)
{
canhbao = 0;
}
else
{
canhbao--;
}
}
else if (demtong == 3 && demmenu4 == 1) // ON OFF DEN
{
if (den <= 0)
{
den = 0;
}
else
{
den--;
}
}
else if (demtong == 3 && demmenu1 == 1) // - NHIET DO
{
if (gtnhietdo <= 0)
{
gtnhietdo = 0;
}
else
{
gtnhietdo--;
}
}
delay(200);
}
macdinh = gtlen;
}
if (gtxuong != macdinh) // NÚT XUỐNG
{
if (gtxuong == 0) //Khi nhấn nút xuống
{
if (demtong == 1) // XUỐNG Ở MENU TỔNG
{
if (congtru_tong <= 0)
{
congtru_tong = 5;
}
else
{
congtru_tong--;
}
menu_tong();
}
else if (demtong == 2 && congtru_tong == 1) // XUỐNG Ở MENU 1
{
if (congtru_menu1 <= 0)
{
congtru_menu1 = 5;
}
else
{
congtru_menu1--;
}
menu_1();
}
else if (demtong == 2 && congtru_tong == 2) // XUỐNG Ở MENU 2
{
if (congtru_menu2 <= 0)
{
congtru_menu2 = 1;
}
else
{
congtru_menu2--;
}
menu_2();
}
else if (demtong == 2 && congtru_tong == 3) // XUỐNG Ở MENU 3
{
if (congtru_menu3 <= 0)
{
congtru_menu3 = 1;
}
else
{
congtru_menu3--;
}
menu_3();
}
else if (demtong == 2 && congtru_tong == 4) // XUỐNG Ở MENU 4
{
if (congtru_menu4 <= 0)
{
congtru_menu4 = 1;
}
else
{
congtru_menu4--;
}
menu_4();
}
else if (demtong == 2 && congtru_tong == 5) // XUỐNG Ở MENU 5
{
if (congtru_menu5 <= 0)
{
congtru_menu5 = 1;
}
else
{
congtru_menu5--;
}
menu_5();
}
else if (demtong == 3 && demmenu2 == 1) // + KHI GAS
{
if (gtkhigas >= 99)
{
gtkhigas = 99;
}
else
{
gtkhigas++;
}
}
else if (demtong == 3 && demmenu3 == 1) // ON OFF CANH BAO
{
if (canhbao >= 1)
{
canhbao = 1;
}
else
{
canhbao++;
}
}
else if (demtong == 3 && demmenu4 == 1) // ON OFF DEN
{
if (den >= 1)
{
den = 1;
}
else
{
den++;
}
}
else if (demtong == 3 && demmenu1 == 1) // + NHIET DO
{
if (gtnhietdo >= 99)
{
gtnhietdo = 99;
}
else
{
gtnhietdo++;
}
}
delay(200);
}
macdinh = gtxuong;
}
if (gtmenu != macdinh) // NÚT MENU
{
if (gtmenu == 0) //Khi nhấn nút
{
demtong ++;
if (demtong == 1) //Ở menu tổng
{
menu_tong();
}
else if (demtong == 2 && congtru_tong == 0) //Nhấn BACK từ Menu tổng về màn hình
{
demtong = 0;
manhinh();
}
else if (demtong == 2 && congtru_tong == 1) // Ở menu 1
{
menu_1();
demmenu1++;
}
else if (demtong == 3 && demmenu1 == 1 && congtru_menu1 > 0) //Chọn menu 1
{
chonmenu_1();
}
else if (demtong == 4 && demmenu1 == 1 && congtru_menu1 > 0) //Từ chọn_menu1 về menu 1
{
demtong = 2;
congtru_menu1 = 0;
menu_1();
}
else if (demtong == 3 && demmenu1 == 1 && congtru_menu1 == 0 && congtru_tong == 1) //Nhấn BACK ở menu 1
{
congtru_tong = 0;
demtong = 1;
demmenu1 = 0;
menu_tong();
}
else if (demtong == 2 && congtru_tong == 2) //Ở menu 2
{
menu_2();
demmenu2++;
}
else if (demtong == 3 && demmenu2 == 1 && congtru_menu2 > 0) // Chọn menu_2
{
chonmenu_2();
}
else if (demtong == 4 && demmenu2 == 1 && congtru_menu2 > 0) //Từ chọn_menu2 về menu 2
{
demtong = 2;
congtru_menu2 = 0;
menu_2();
}
else if (demtong == 3 && demmenu2 == 1 && congtru_menu2 == 0 && congtru_tong == 2) //Nhấn BACK ở menu 2
{
congtru_tong = 0;
demtong = 1;
demmenu2 = 0;
menu_tong();
}
else if (demtong == 2 && congtru_tong == 3) //Ở menu 3
{
menu_3();
demmenu3++;
}
else if (demtong == 3 && demmenu3 == 1 && congtru_menu3 > 0) // Chọn menu_3
{
chonmenu_3();
}
else if (demtong == 4 && demmenu3 == 1 && congtru_menu3 > 0) //Từ chọn_menu3 về menu 3
{
demtong = 2;
congtru_menu3 = 0;
menu_3();
}
else if (demtong == 3 && demmenu3 == 1 && congtru_menu3 == 0 && congtru_tong == 3) //Nhấn BACK ở menu 3
{
congtru_tong = 0;
demtong = 1;
demmenu3 = 0;
menu_tong();
}
else if (demtong == 2 && congtru_tong == 4) //Ở menu 4
{
menu_4();
demmenu4++;
}
else if (demtong == 3 && demmenu4 == 1 && congtru_menu4 > 0) // Chọn menu_4
{
chonmenu_4();
}
else if (demtong == 4 && demmenu4 == 1 && congtru_menu4 > 0) //Từ chọn_menu4 về menu 4
{
demtong = 2;
congtru_menu4 = 0;
menu_4();
}
else if (demtong == 3 && demmenu4 == 1 && congtru_menu4 == 0 && congtru_tong == 4) //Nhấn BACK ở menu 4
{
congtru_tong = 0;
demtong = 1;
demmenu4 = 0;
menu_tong();
}
else if (demtong == 2 && congtru_tong == 5) //Ở menu 5
{
menu_5();
demmenu5++;
}
else if (demtong == 3 && demmenu5 == 1 && congtru_menu5 > 0) // Chọn menu_5
{
chonmenu_5();
}
else if (demtong == 4 && demmenu5 == 1 && congtru_menu5 > 0) //Từ chọn_menu5 về menu 5
{
demtong = 2;
congtru_menu5 = 0;
menu_5();
}
else if (demtong == 3 && demmenu5 == 1 && congtru_menu5 == 0 && congtru_tong == 5) //Nhấn BACK ở menu 5
{
congtru_tong = 0;
demtong = 1;
demmenu5 = 0;
menu_tong();
}
delay(100);
}
macdinh = gtmenu;
}
if (demtong == 3 && demmenu2 == 1) // dieu chinh khi gas
{
if (congtru_menu2 == 1) // khi gas
{
if (gtkhigas < 10)
{
lcd.setCursor(9,1);
lcd.print(gtkhigas);
lcd.setCursor(10,1);
lcd.print(" ");
}
else if (gtkhigas < 100)
{
lcd.setCursor(9,1);
lcd.print(gtkhigas);
lcd.setCursor(11,1);
lcd.print(" ");
}
else
{
lcd.setCursor(9,1);
lcd.print(gtkhigas);
lcd.setCursor(12,1);
lcd.print(" ");
}
}
}
if (demtong == 3 && demmenu1 == 1) // dieu chinh nhiet do
{
if (congtru_menu1 == 1) // nhiet do
{
if (gtnhietdo < 10)
{
lcd.setCursor(9,1);
lcd.print(gtnhietdo);
lcd.setCursor(10,1);
lcd.print(" ");
}
else if (gtkhigas < 100)
{
lcd.setCursor(9,1);
lcd.print(gtnhietdo);
lcd.setCursor(11,1);
lcd.print(" ");
}
else
{
lcd.setCursor(9,1);
lcd.print(gtnhietdo);
lcd.setCursor(12,1);
lcd.print(" ");
}
}
}
if (demtong == 3 && demmenu3 == 1) // ON OFF CANH BAO
{
if (congtru_menu3 == 1)
{
if (canhbao == 1)
{
lcd.setCursor(10,1);
lcd.print("BAT");
}
else if (canhbao == 0)
{
lcd.setCursor(10,1);
lcd.print("TAT");
}
}
}
if (demtong == 3 && demmenu4 == 1) // ON OFF DEN
{
if (congtru_menu4 == 1)
{
if (den == 1)
{
lcd.setCursor(10,1);
lcd.print("BAT");
}
else if (den == 0)
{
lcd.setCursor(10,1);
lcd.print("TAT");
}
}
}
if (demtong == 3 && demmenu5 == 1) // TT TAI
{
if (congtru_menu5 == 1)
{
if (ttquat == 1)
{
lcd.setCursor(10,0);
lcd.print("BAT");
}
else if (ttquat == 0)
{
lcd.setCursor(10,0);
lcd.print("TAT");
}
if (ttbom == 1)
{
lcd.setCursor(10,1);
lcd.print("BAT");
}
else if (ttbom == 0)
{
lcd.setCursor(10,1);
lcd.print("TAT");
}
}
}
Serial.print("Đếm tổng: "); Serial.print(demtong); Serial.print(" ");
Serial.print("+/- tổng: "); Serial.print(congtru_tong); Serial.print(" ");
Serial.print("Đếm menu 1 : "); Serial.print(demmenu1); Serial.print(" ");
Serial.print("Đếm menu 2 : "); Serial.print(demmenu2); Serial.print(" ");
Serial.print("+/- menu 1: "); Serial.print(congtru_menu1); Serial.print(" ");
Serial.print("+/- menu 2: "); Serial.println(congtru_menu2);
} //Kết loop