Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h> // Biblioteca para .......
- #include <LiquidCrystal_I2C.h> // Biblioteca para .......
- LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Cia a instancia lcd e define endereco e pinos do CI I2C
- //LiquidCrystal_I2C lcd(0x38, 2, 1, 0, 7, 6, 5, 4, 3, POSITIVE); // Set the LCD I2C address
- //#define botao_avanca A0 // Pino dos botaoe
- //#define botao_recua A1
- //#define botao_seleciona A2
- #define botao_avanca 8 // Pino dos botaoe
- #define botao_recua 9
- #define botao_seleciona 10
- void menu1();// Função para mostrar o menu 1
- void menu2();// Função para mostrar o menu 2
- void menu3();// Função para mostrar o menu 3
- //-------------------------------------------------------------
- void submenu1(); // Função para mostrar o submenu 1..............
- //Variaveis para armazenar o estado dos botões
- boolean avanca, recua, seleciona;
- int flagM = 0;
- int flagS = 0;
- int menu = 1; // Variavel para selecionar o menu desejado
- int enter = 0; // Variavel para selecionar o menu desejado
- //-------------------------------------------------------------
- void setup()
- {
- lcd.begin(16, 20);
- for (char i = 8; i < 10; i++)
- pinMode(i, INPUT);
- // meu uso
- // pinMode(botao_avanca, INPUT_PULLUP);
- // pinMode(botao_recua, INPUT_PULLUP);
- // pinMode(botao_seleciona, INPUT_PULLUP);
- //
- avanca = 0;
- recua = 0;
- seleciona = 0;
- }
- //-------------------------------------------------------------
- void loop()
- {
- if (digitalRead(botao_avanca))
- avanca = 1;
- if (!digitalRead(botao_avanca) && avanca)
- {
- avanca = 0;
- enter = 0;
- menu = menu + 1;
- flagM = 0;
- if (menu > 3) menu = 1;
- }
- if (digitalRead(botao_recua))
- recua = 1;
- if (!digitalRead(botao_recua) && recua)
- {
- recua = 0;
- enter = 0;
- menu = menu - 1;
- flagM = 0;
- if (menu < 1)
- menu = 3;
- }
- if (digitalRead(botao_seleciona))
- seleciona = 1;
- if (!digitalRead(botao_seleciona) && seleciona)
- {
- seleciona = 0;
- flagS = 0;
- enter = enter + 1;
- if (enter > 3)
- enter = 1;
- }
- switch (menu) // Seleciona menu
- {
- case 1: // Se for igual a 1
- if (flagM == 0) // Se ja executou menu1 1 vez
- {
- lcd.clear(); // Limpa o LCD
- menu1(); // Roda funcao menu1
- }
- switch (enter) // Seleciona enter
- {
- case 1: // Se for igual a 1
- if (flagS == 0) // Se ja executou submenu11 1 vez
- {
- lcd.clear(); // Limpa o LCD
- submenu11(); // Roda funcao submenu1
- }
- break; // Termina seleciona enter
- case 2: // Se for igual a 1
- if (flagS == 0) // Se ja executou submenu12 1 vez
- {
- lcd.clear(); // Limpa o LCD
- submenu12(); // Roda funcao submenu1
- }
- break; // Termina seleciona enter
- case 3: // Se for igual a 1
- if (flagS == 0) // Se ja executou submenu13 1 vez
- {
- lcd.clear(); // Limpa o LCD
- submenu13(); // Roda funcao submenu1
- }
- break; // Termina seleciona enter
- }
- break; // Termina seleciona menu
- case 2:
- if (flagM == 0)
- {
- lcd.clear();
- menu2();
- }
- break;
- case 3:
- if (flagM == 0)
- {
- lcd.clear();
- menu3();
- }
- break;
- }
- }
- //------------------------------------------------------------- //Estrutura das funçoes
- void menu1() //Função menu1
- {
- flagM = 1;
- lcd.setCursor(0, 0);
- lcd.print("Menu 1 ");
- lcd.setCursor(1, 1);
- lcd.print("Teste 1");
- }
- //-------------------------------------------------------------
- void menu2()
- {
- // Serial.println("passei");
- flagM = 1;
- lcd.setCursor(0, 0);
- lcd.print("Menu 2 ");
- lcd.setCursor(1, 1);
- lcd.print("Teste 2");
- }
- //-------------------------------------------------------------
- void menu3()
- {
- flagM = 1;
- lcd.setCursor(0, 0);
- lcd.print("Menu 3 ");
- lcd.setCursor(1, 1);
- lcd.print("Teste 3");
- }
- //-------------------------------------------------------------
- void submenu11()
- {
- flagS = 1;
- lcd.setCursor(0, 0);
- lcd.print("subMenu11 ");
- lcd.setCursor(1, 1);
- lcd.print("subTeste11");
- }
- //-------------------------------------------------------------
- void submenu12()
- {
- flagS = 1;
- lcd.setCursor(0, 0);
- lcd.print("subMenu12 ");
- lcd.setCursor(1, 1);
- lcd.print("subTeste12");
- }
- //-------------------------------------------------------------
- void submenu13()
- {
- flagS = 1;
- lcd.setCursor(0, 0);
- lcd.print("subMenu13 ");
- lcd.setCursor(1, 1);
- lcd.print("subTeste13");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement