#include <Wire.h>
//#include <LCD.h>
#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
// === Biblioteca para o TimerOne === //
//#include <TimerOne.h>
#define botao_MAIS 2 // define o botão no pino 2 (MAIS)
#define botao_ENTER 3 // define o botão no pino 3 (ENTER/VOLTAR)
#define botao_MENOS 4 // define o botão no pino 4 (MENOS)
bool L_botao_MAIS = 1; // variável para fazer a leitura do botão (MAIS)
bool LA_botao_MAIS = 1; // variável para verificar a leitura anterior do botão (MAIS)
bool L_botao_ENTER = 1; // variável para fazer a leitura do botão (ENTER/VOLTAR)
bool LA_botao_ENTER = 1; // variável para verificar a leitura anterior do botão (ENTER/VOLTAR)
bool L_botao_MENOS = 1; // variável para fazer a leitura do botão (MENOS)
bool LA_botao_MENOS = 1; // variável para verificar a leitura anterior do botão (MENOS)
bool f_galinha = 0;
bool f_codorna = 0;
bool f_pata = 0;
bool f_gansa = 0;
bool f_controle = 0;
int tela = 1; // variável para controlar a mudança de tela no menu
float temperatura = 0;
float umidade_min = 0;
float umidade_max = 0;
int dias = 0;
float tensao = 0;
void setup() {
pinMode(botao_MAIS, INPUT_PULLUP); // define o botao (MAIS) como uma entrada pull up
pinMode(botao_ENTER, INPUT_PULLUP); // define o botao (ENTER/VOLTAR) como uma entrada pull up
pinMode(botao_MENOS, INPUT_PULLUP); // define o botao (MENOS) como uma entrada pull up
lcd.backlight();
lcd.begin (16, 2); // inicia o display 16x2
lcd.clear(); // limpa todos os caracteres do lcd
lcd.setCursor(0, 0); // posiciona o cursor no display (caracter, linha)
lcd.print(F(" SEJA BEM VINDO ")); // imprime o texto entre aspas
lcd.setCursor(0, 1); // posiciona o cursor no display (caracter, linha)
lcd.print(F(" Iniciando... ")); // imprime o texto entre aspas
delay (1000); // pausa o programa por 3 segundos
}
void loop()
{
// === Ações no display LCD === //
if (tela == 1 && f_controle == 0) { // se a variável tela for igual a MAIS, faça...
lcd.setCursor(0, 0); // posiciona o cursor no display (caracter, linha)
lcd.print(F(" << MENU >> ")); // imprime o texto entre aspas
lcd.setCursor(0, 1); // posiciona o cursor no display (caracter, linha)
lcd.print(F("> GALINHA ")); // imprime o texto entre aspas
}
else if (tela == 2) {
lcd.setCursor(0, 0);
lcd.print(F(" << MENU >> "));
lcd.setCursor(0, 1);
lcd.print(F("> CODORNA "));
}
else if (tela == 3) {
lcd.setCursor(0, 0);
lcd.print(F(" << MENU >> "));
lcd.setCursor(0, 1);
lcd.print(F("> PATA "));
}
else if (tela == 4) {
lcd.setCursor(0, 0);
lcd.print(F(" << MENU >> "));
lcd.setCursor(0, 1);
lcd.print(F("> GANSA "));
}
// Ao clicar enter em cada opção.demostrado abaixo:
else if (tela == 10) {
lcd.setCursor(0, 0);
// lcd.print(F(" "));
// delay(1000);
//lcd.setCursor(0, 1);
//lcd.print(F(" AVE GALINHA "));
f_galinha = 1;
f_controle = f_galinha;
}
else if (tela == 20) {
lcd.setCursor(0, 0);
//lcd.print(F(" :: SEGUNDO :: "));
// lcd.setCursor(0, 1);
// lcd.print(F(" DE UM LIKE "));
f_codorna = 1;
f_controle = f_codorna;
}
else if (tela == 30) {
lcd.setCursor(0, 0);
// lcd.print(F(" :: TERCEIRO :: "));
// lcd.setCursor(0, 1);
//lcd.print(F(" COMENTE GOSTEI "));
f_pata = 1;
f_controle = f_codorna;
}
else if (tela == 40) {
lcd.setCursor(0, 0);
// lcd.print(F(" :: QUARTO :: "));
// lcd.setCursor(0, 1);
// lcd.print(F(" FUNCAO AUXILIAR "));
f_gansa = 1;
f_controle = f_codorna;
}
/////////////////////////////////////////////////
// === Ações do Botão MAIS === // ////////////
L_botao_MAIS = digitalRead(botao_MAIS);
if (!L_botao_MAIS && LA_botao_MAIS) {
if (tela == 1)tela = 2;
else if (tela == 2)tela = 3;
else if (tela == 3)tela = 4;
else if (tela == 4)tela = 1;
delay(30);
}
LA_botao_MAIS = L_botao_MAIS;
/////////////////////////////////////////////////
// === Ações do Botão MENOS === // ////////////
L_botao_MENOS = digitalRead(botao_MENOS);
if (!L_botao_MENOS && LA_botao_MENOS) {
//if (tela == 1)tela = 4;
//else if (tela == 4)tela = 3;
// else if (tela == 3)tela = 2;
// else if (tela == 2)tela = 1;
delay(30);
}
LA_botao_MENOS = L_botao_MENOS;
/////////////////////////////////////////////////
// === Ações do Botão ENTER === // ////////////
L_botao_ENTER = digitalRead(botao_ENTER);
if (!L_botao_ENTER && LA_botao_ENTER && f_controle == 0) {
if (tela == 1)tela = 10;
else if (tela == 2)tela = 20;
else if (tela == 3)tela = 30;
else if (tela == 4)tela = 40;
else if (tela == 10)tela = 1;
else if (tela == 20)tela = 2;
else if (tela == 30)tela = 3;
else if (tela == 40)tela = 4;
delay(30);
}
LA_botao_ENTER = L_botao_ENTER;
if (f_galinha == 1)
{
lcd.setCursor(0, 0);
lcd.print(" ");
// delay(1000);
lcd.setCursor(0, 1);
lcd.print(F(" OK OK ok ok "));
temperatura = 37.7;
umidade_min = 55;
umidade_max = 65;
dias = 21;
tensao = 14;
imprime_LCD();
}
if (f_codorna == 1)
{
lcd.setCursor(0, 0);
lcd.print(" ");
// delay(1000);
lcd.setCursor(0, 1);
lcd.print(F(" codorna "));
temperatura = 35;
umidade_min = 40;
umidade_max = 50;
dias = 18;
tensao = 14;
imprime_LCD();
}
if (f_pata == 1)
{
lcd.setCursor(0, 0);
lcd.print(" ");
// delay(1000);
lcd.setCursor(0, 1);
lcd.print(F(" pata "));
temperatura = 39;
umidade_min = 33;
umidade_max = 66;
dias = 38;
tensao = 14;
imprime_LCD();
}
if (f_gansa == 1)
{
lcd.setCursor(0, 0);
lcd.print(" ");
// delay(1000);
lcd.setCursor(0, 1);
lcd.print(F(" gansa "));
temperatura = 39.5;
umidade_min = 48;
umidade_max = 78;
dias = 60;
tensao = 14;
imprime_LCD();
}
}
void imprime_LCD()
{
lcd.setCursor(0, 0);
lcd.print(temperatura);
delay(1000);
lcd.setCursor(0, 0);
lcd.print(umidade_min);
delay(1000);
lcd.setCursor(0, 0);
lcd.print(umidade_max);
delay(1000);
lcd.setCursor(0, 0);
lcd.print(dias);
delay(1000);
}