that_one_nigga_you_k

menu_v34k

Nov 30th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.80 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. #include <LCDKeypad.h>
  3.  
  4. #define UP 1
  5. #define DOWN 0
  6. #define COM1 0
  7. #define COM2 1
  8. #define COM3 2
  9. #define AR 4
  10. LCDKeypad lcd;
  11.  
  12. int i = 0;
  13. int j = 1;
  14. int menu_find = 0;
  15. int menu_option;
  16. bool estado_ar[3] = {0,0,0};
  17. bool estado_w[3] = {0,0,0};
  18.  
  19. int warmer[6]; //definir portas dos resistores de potencia
  20. int cooler[6]; //definir portas dos coolers
  21. int temp[3] = {A12, A13, A14}; //definir portas dos sensores de temperatura
  22.  
  23. String nomes[5] = {"COMODO 1", "COMODO 2", "COMODO 3", "OUTSIDE", "CONTROLE IR"};
  24. int n = 5;
  25. String opc[4] = {"TEMPERATURA", "ON/OFF AIR", "ON/OFF WARMER", "VOLTAR"};
  26.  
  27. void setup() {
  28.   lcd.begin(16,2);
  29.   Serial.begin(9600);
  30.     while(lcd.button()!= KEYPAD_SELECT){
  31.       lcd.print("Selecione o");
  32.       lcd.setCursor(0, 1);
  33.       lcd.print("comodo (SELECT) ");
  34.     }
  35.   delay(200);
  36.   lcd.clear();
  37.   menu();
  38. }
  39.  
  40. void loop() {
  41.    for(int k = 0; k < 6; k+=2){
  42.     if(estado_ar[i/2] == 1){
  43.       digitalWrite(cooler[i], HIGH);
  44.       digitalWrite(cooler[i+1], LOW);
  45.     }
  46.     else{
  47.       digitalWrite(cooler[i], LOW);
  48.       digitalWrite(cooler[i+1], LOW);
  49.     }
  50.     if(estado_w[i/2] == 1){
  51.       digitalWrite(warmer[i], HIGH);
  52.       digitalWrite(warmer[i+1], LOW);
  53.     }
  54.     else{
  55.       digitalWrite(warmer[i], LOW);
  56.       digitalWrite(warmer[i+1], LOW);
  57.     }
  58.    }
  59.    switch (lcd.button()) {
  60.     case KEYPAD_DOWN:
  61.       if(menu_find == 0){
  62.           n = 5;
  63.         }
  64.        
  65.       else if(menu_find == 1){
  66.           n = 4;
  67.         }
  68.        
  69.       if(i < n - 2  && j == DOWN){
  70.             i = i + 1;
  71.         }
  72.      
  73.       j = DOWN;
  74.       menu();
  75.       delay(200);
  76.       break;
  77.     case KEYPAD_UP:
  78.       if(i > 0  && j == UP){
  79.         i = i - 1;
  80.       }
  81.       j = UP;
  82.       menu();
  83.       delay(200);
  84.       break;
  85.     case KEYPAD_SELECT:
  86.       if(j == DOWN){
  87.         if(menu_find == 0){
  88.           fn(i + 1);
  89.         }
  90.        
  91.         else if(menu_find == 1){
  92.           opcoes(i + 1);
  93.         }
  94.       }
  95.      
  96.       else if(j == UP){
  97.         if(menu_find == 0){
  98.           fn(i);
  99.         }
  100.         else if(menu_find == 1){
  101.           opcoes(i);
  102.         }
  103.       }
  104.      
  105.       if(menu_find == 2){
  106.         //codigo da luz vem aqui      
  107.       }
  108.       delay(200);
  109.       break;
  110.     default:
  111.       break;
  112.   }
  113. }
  114.  
  115. void menu(){
  116.    lcd.clear();
  117.    lcd.setCursor(0, 0);
  118.    if(menu_find == 0){
  119.     lcd.print(nomes[i]);
  120.    }
  121.    if(menu_find == 1){
  122.     lcd.print(opc[i]);
  123.    }
  124.    if(j == 1){
  125.       lcd.print(" <");
  126.     }
  127.    lcd.setCursor(0, 1);
  128.    if(menu_find == 0){
  129.     lcd.print(nomes[i+1]);
  130.    }
  131.    if(menu_find == 1){
  132.     lcd.print(opc[i+1]);
  133.    }
  134.    if(j == 0){
  135.       lcd.print(" <");
  136.    }
  137.    if(menu_find == 2){
  138.       lcd.clear();
  139.       lcd.setCursor(0, 0);
  140.       lcd.print("VOCE ENTROU NO");
  141.    }
  142. }
  143.  
  144. void fn(int x){
  145.     j = 1;
  146.     menu_find = 1;
  147.     i = 0;
  148.     switch (x){
  149.       case 0:
  150.         menu_option = 0;
  151.         break;
  152.       case 1:
  153.         menu_option = 1;
  154.         break;
  155.       case 2:
  156.         menu_option = 2;
  157.         break;
  158.       case 3:
  159.         menu_option = 3;
  160.         break;
  161.       case 4:
  162.         menu_find = 2;
  163.         break;
  164.     }
  165.     menu();
  166. }
  167.  
  168. void opcoes(int x){
  169.     switch (x){
  170.       case 0:
  171.         mostrarT(menu_option);
  172.       break;
  173.       case 1:
  174.         ligarAr(menu_option);
  175.       break;
  176.       case 2:
  177.         ligarW(menu_option);
  178.       break;
  179.       case 3:
  180.         j = 1;
  181.         menu_find = 0;
  182.         i = 0;
  183.         menu();
  184.       break;
  185.       default:
  186.       break;
  187.     }
  188. }
  189.  
  190. void mostrarT(int menu_opt){
  191.   while(lcd.button() != KEYPAD_LEFT){
  192.         delay(150);
  193.         lcd.clear();
  194.         lcd.setCursor(0, 0);
  195.         lcd.print("T = ");
  196.         lcd.print(analogRead(temp[menu_opt])*0.48828125);
  197.         Serial.println(analogRead(temp[menu_opt])*0.48828125);
  198.         lcd.print("*C");
  199.         lcd.setCursor(0, 1);
  200.         lcd.print("<-- HOLD LEFT");
  201.     }
  202.   menu();
  203. }
  204.  
  205. void ligarAr(int menu_opt){
  206.   if(menu_opt == 3){
  207.     lcd.clear();
  208.     lcd.setCursor(7, 0);
  209.     lcd.print("404");
  210.     delay(1000);
  211.   }
  212.   else if(estado_ar[menu_opt] == 0){
  213.     estado_ar[menu_opt] = 1;
  214.     lcd.clear();
  215.     lcd.setCursor(7, 0);
  216.     lcd.print("ON");
  217.     delay(1000);
  218.   }
  219.   else{
  220.     estado_ar[menu_opt] = 0;
  221.     lcd.clear();
  222.     lcd.setCursor(7, 0);
  223.     lcd.print("OFF");
  224.     delay(1000);
  225.   }
  226.   menu();
  227. }
  228.  
  229. void ligarW(int menu_opt){
  230.   if(menu_opt == 3){
  231.     lcd.clear();
  232.     lcd.setCursor(7, 0);
  233.     lcd.print("404");
  234.     delay(1000);
  235.   }
  236.   else if(estado_w[menu_opt] == 0){
  237.     estado_w[menu_opt] = 1;
  238.     lcd.clear();
  239.     lcd.setCursor(7, 0);
  240.     lcd.print("ON");
  241.     delay(1000);
  242.   }
  243.   else{
  244.     estado_w[menu_opt] = 0;
  245.     lcd.clear();
  246.     lcd.setCursor(7, 0);
  247.     lcd.print("OFF");
  248.     delay(1000);
  249.   }
  250.   menu();
  251. }
Add Comment
Please, Sign In to add comment