Advertisement
RuiViana

AG

Dec 9th, 2017
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.61 KB | None | 0 0
  1. #include <Wire.h>                                           // Biblioteca para .......
  2. #include <LiquidCrystal_I2C.h>                              // Biblioteca para .......
  3. 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
  4. //LiquidCrystal_I2C lcd(0x38,  2, 1, 0, 7, 6, 5, 4, 3, POSITIVE);       // Set the LCD I2C address
  5.  
  6. //#define botao_avanca A0                                      // Pino dos botaoe
  7. //#define  botao_recua  A1
  8. //#define  botao_seleciona A2
  9.  
  10. #define botao_avanca 8                                      // Pino dos botaoe
  11. #define  botao_recua  9
  12. #define  botao_seleciona 10
  13.  
  14.  
  15. void menu1();// Função para mostrar o menu 1
  16. void menu2();// Função para mostrar o menu 2
  17. void menu3();// Função para mostrar o menu 3
  18. //-------------------------------------------------------------
  19. void submenu1();                                           // Função para mostrar o submenu 1..............
  20. //Variaveis para armazenar o estado dos botões
  21. boolean avanca, recua, seleciona;
  22. int flagM = 0;
  23. int flagS = 0;
  24. int menu = 1;                                               // Variavel para selecionar o menu desejado
  25. int enter = 0;                                              // Variavel para selecionar o menu desejado
  26. //-------------------------------------------------------------
  27. void setup()
  28. {
  29.   lcd.begin(16, 20);
  30.     for (char i = 8; i < 10; i++)
  31.       pinMode(i, INPUT);
  32.  
  33.   // meu uso
  34. //  pinMode(botao_avanca, INPUT_PULLUP);
  35. //  pinMode(botao_recua, INPUT_PULLUP);
  36. //  pinMode(botao_seleciona, INPUT_PULLUP);
  37.   //
  38.   avanca = 0;
  39.   recua = 0;
  40.   seleciona = 0;
  41. }
  42. //-------------------------------------------------------------
  43. void loop()
  44. {
  45.   if (digitalRead(botao_avanca))
  46.     avanca = 1;
  47.   if (!digitalRead(botao_avanca) && avanca)
  48.   {
  49.     avanca = 0;
  50.     enter = 0;
  51.     menu = menu + 1;
  52.     flagM = 0;
  53.     if (menu > 3) menu = 1;
  54.   }
  55.   if (digitalRead(botao_recua))
  56.     recua = 1;
  57.   if (!digitalRead(botao_recua) && recua)
  58.   {
  59.     recua = 0;
  60.     enter = 0;
  61.     menu = menu - 1;
  62.     flagM = 0;
  63.     if (menu < 1)
  64.       menu = 3;
  65.   }
  66.   if (digitalRead(botao_seleciona))
  67.     seleciona = 1;
  68.   if (!digitalRead(botao_seleciona) && seleciona)
  69.   {
  70.     seleciona = 0;
  71.     flagS = 0;
  72.     enter = enter + 1;
  73.     if (enter > 3)
  74.       enter = 1;
  75.   }
  76.   switch (menu)                                     // Seleciona menu
  77.   {
  78.     case 1:                                         // Se for igual a 1
  79.       if (flagM == 0)                               // Se ja executou menu1 1 vez
  80.       {
  81.         lcd.clear();                                // Limpa o LCD
  82.         menu1();                                    // Roda funcao menu1
  83.       }
  84.       switch (enter)                                // Seleciona enter
  85.       {
  86.         case 1:                                     // Se for igual a 1
  87.           if (flagS == 0)                           // Se ja executou submenu11 1 vez
  88.           {
  89.             lcd.clear();                            // Limpa o LCD
  90.             submenu11();                            // Roda funcao submenu1
  91.           }
  92.           break;                                    // Termina seleciona enter
  93.         case 2:                                     // Se for igual a 1
  94.           if (flagS == 0)                           // Se ja executou submenu12 1 vez
  95.           {
  96.             lcd.clear();                            // Limpa o LCD
  97.             submenu12();                            // Roda funcao submenu1
  98.           }
  99.           break;                                    // Termina seleciona enter
  100.         case 3:                                     // Se for igual a 1
  101.           if (flagS == 0)                           // Se ja executou submenu13 1 vez
  102.           {
  103.             lcd.clear();                            // Limpa o LCD
  104.             submenu13();                            // Roda funcao submenu1
  105.           }
  106.           break;                                    // Termina seleciona enter
  107.       }
  108.       break;                                        // Termina seleciona menu
  109.     case 2:
  110.       if (flagM == 0)
  111.       {
  112.  
  113.         lcd.clear();
  114.         menu2();
  115.       }
  116.       break;
  117.     case 3:
  118.       if (flagM == 0)
  119.       {
  120.         lcd.clear();
  121.         menu3();
  122.       }
  123.       break;
  124.   }
  125. }
  126. //-------------------------------------------------------------   //Estrutura das funçoes
  127. void menu1()                              //Função menu1
  128. {
  129.   flagM = 1;
  130.   lcd.setCursor(0, 0);
  131.   lcd.print("Menu 1 ");
  132.   lcd.setCursor(1, 1);
  133.   lcd.print("Teste 1");
  134. }
  135. //-------------------------------------------------------------
  136. void menu2()
  137. {
  138.   //  Serial.println("passei");
  139.   flagM = 1;
  140.   lcd.setCursor(0, 0);
  141.   lcd.print("Menu 2 ");
  142.   lcd.setCursor(1, 1);
  143.   lcd.print("Teste 2");
  144. }
  145. //-------------------------------------------------------------
  146. void menu3()
  147. {
  148.   flagM = 1;
  149.   lcd.setCursor(0, 0);
  150.   lcd.print("Menu 3 ");
  151.   lcd.setCursor(1, 1);
  152.   lcd.print("Teste 3");
  153. }
  154. //-------------------------------------------------------------
  155. void submenu11()
  156. {
  157.   flagS = 1;
  158.   lcd.setCursor(0, 0);
  159.   lcd.print("subMenu11 ");
  160.   lcd.setCursor(1, 1);
  161.   lcd.print("subTeste11");
  162. }
  163. //-------------------------------------------------------------
  164. void submenu12()
  165. {
  166.   flagS = 1;
  167.   lcd.setCursor(0, 0);
  168.   lcd.print("subMenu12 ");
  169.   lcd.setCursor(1, 1);
  170.   lcd.print("subTeste12");
  171. }
  172. //-------------------------------------------------------------
  173. void submenu13()
  174. {
  175.   flagS = 1;
  176.   lcd.setCursor(0, 0);
  177.   lcd.print("subMenu13 ");
  178.   lcd.setCursor(1, 1);
  179.   lcd.print("subTeste13");
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement