Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Revision:
9:86b5a317fcd4
Parent:
8:b80f50544ddd
Child:
10:97002056ecda
--- a/main.cpp	Thu May 10 21:35:01 2018 +0000
+++ b/main.cpp	Fri May 11 11:46:50 2018 +0000
@@ -108,6 +108,8 @@
 int penter = 0;
 int pcima = 0;
 int pbaixo = 0;
+int cola;
+int exec;
 
 //variáveis float
 float cx = 120.458;
@@ -190,13 +192,13 @@
         lcd.printf("Bem-vindo(a)");
         lcd.locate(0,1);
         lcd.printf("Utilize seu EPI para operar a maquina.");
-        wait(5);
+        wait(1);
         func = 1;
         }
     
     //func 1    
     void menuprincipal(){ //função menu principal
-        //penter = bot_enter;
+        bot_enter = 0;
         lcd.cls();
         lcd.locate(1,0);
         lcd.printf("Modo JOG");
@@ -204,7 +206,9 @@
         lcd.printf("Modo Automatico");
         lcd.locate(1,2);
         lcd.printf("Config");
-        movercursor(0,2,0);
+        lcd.locate(1,3);
+        lcd.printf("Zerar");
+        movercursor(0,3,0);
         if (bot_enter!=penter){
             if (linha==0){
                 func = 2;
@@ -215,13 +219,16 @@
             else if (linha==2) {
                 func = 4;
                 }
+            else if (linha==3) {
+                func = 8;
+                }
             }
         } 
         
         
     //func 2    
     void jog(){ //função tela jog
-        //penter = bot_enter;
+        bot_enter = 0;
         lcd.cls();
         lcd.locate(4,0);
         lcd.printf("Coordenadas:");
@@ -255,61 +262,196 @@
         
         }
         
+    //func 3
+    
+    //func 4
+        
     //func 5
-    void telasalvamento(){
+    void telasalvamento(){ //função para quando salvar um ponto
         lcd.cls();
         lcd.locate(0,0);
         lcd.printf("Voce salvou o ponto:");
-        lcd.locate(4,1);
-        lcd.printf("X:%.3f", cx_salva);
-        lcd.locate(4,2);
-        lcd.printf("Y:%.3f", cy_salva);
-        lcd.locate(4,3);
-        lcd.printf("Z:%.3f", cz_salva);
-        wait(5);
+        lcd.locate(5,1);
+        lcd.printf("X: %.3f", cx_salva);
+        lcd.locate(5,2);
+        lcd.printf("Y: %.3f", cy_salva);
+        lcd.locate(5,3);
+        lcd.printf("Z: %.3f", cz_salva);
+        wait(1);
         func = 6;
         }
         
+    //func 6
+    void telacola(){ //tela para escolher o tipo de sequencia da cola
+        lcd.cls();
+        bot_enter = 0;
+        lcd.printf("P/ o proximo ponto:");
+        lcd.locate(3,1);
+        lcd.printf("Sem cola");
+        lcd.locate(3,2);
+        lcd.printf("Cola no ponto");
+        lcd.locate(3,3);
+        lcd.printf("Cola continua");
+        movercursor(1,3,2);
+        if (bot_enter!=penter){
+            if (linha==1){
+                cola = 0;
+                func = 2;
+                }
+            else if (linha==2) {
+                cola = 1;
+                func = 2;
+                }
+            else if (linha==3) {
+                cola = 2;
+                func = 2;
+                }
+            }
+        }
         
-        Menu();
+    
+    //func 7        
+    void executarprograma() { //tela para selecionar se deseja executar o programa
+        lcd.cls();
+        bot_enter = 0;
+        lcd.locate(2,0);
+        lcd.printf("VOCE CONCLUIU SEU");
+        lcd.locate(5,1);
+        lcd.printf("PROGRAMA.");
+        lcd.locate(0,2);
+        lcd.printf("Deseja");
+        lcd.locate(0,3);
+        lcd.printf("executa-lo?");
+        lcd.locate(14,2);
+        lcd.printf("Sim");
+        lcd.locate(14,3);
+        lcd.printf("Voltar");
+        movercursor(2,3,13);
+        if (bot_enter!=penter) {
+            if (linha==2){
+                exec = 1;
+                func = 9;
+                }
+            else if (linha==3){
+                exec = 0;
+                func = 2;
+                }
+            }
+        }
+    
+    //func 8
+    void telazerar(){ //tela para zerar a máquina
+        lcd.cls();
+        bot_enter = 0;
+        lcd.locate(2,0);
+        lcd.printf("Pressione OK para zerar as coordenadas");
+        lcd.locate(7,2);
+        lcd.printf("OK");
+        lcd.locate(7,3);
+        lcd.printf("Voltar");            
+        movercursor(2,3,6);
+        if (bot_enter!=penter) {
+            if (linha==2){
+                cx = 0;
+                cy = 0;
+                cz = 0;
+                func = 10;
+                }
+            else if (linha==3){
+                func = 1;
+                }
+            }
+        }
+        
+    
+    //func 9
+    void executando(){ //tela de executando
+        lcd.cls();
+        lcd.locate(4,1);
+        lcd.printf("Executando");
+        int contador = 0;
+        while (exec==1){
+            lcd.locate(14,1);
+            lcd.printf(".  ");
+            wait(0.5);
+            lcd.locate(14,1);
+            lcd.printf(".. ");
+            wait(0.5);
+            lcd.locate(14,1);
+            lcd.printf("...");
+            wait(0.5);
+            lcd.locate(14,1);
+            lcd.printf("   ");
+            wait(0.5);
+            contador++;
+            if (contador>=2){
+                exec = 0;
+                func = 11;
+                }
+            }
+        }
+    
+    //func 10
+    void zerado() { //tela avisando que a máquina foi zerada
+        lcd.cls();
+        lcd.locate(5,1);
+        lcd.printf("Voce zerou");
+        lcd.locate(5,2);
+        lcd.printf("a maquina!");
+        wait(1);
+        func = 8;
+        }
+        
+    //func 11
+    void finalizado() {
+        lcd.cls();
+        lcd.locate(6,1);
+        lcd.printf("PROGRAMA");
+        lcd.locate(5,2);
+        lcd.printf("FINALIZADO");
+        wait(1);
+        func = 1;
+        }       
+    
+    Menu(); //não apagar
 };
 
-Menu::Menu(){
+Menu::Menu(){ //não apagar
     func = 0;
-}
+    }
 
 Menu menu;  
 
 int main () {
     lcd.setBacklight(TextLCD::LightOn); //liga backlight
-    lcd.setCursor(TextLCD::CurOff_BlkOff);
+    lcd.setCursor(TextLCD::CurOff_BlkOff); //define tipo de cursor
     
-    botao_enter.rise(&botenter_press);
+    botao_enter.rise(&botenter_press); //chama função botao enter
     //botao_enter.fall(&botenter_solto);
     
-    botao_cima.rise(&botcima_press);
+    botao_cima.rise(&botcima_press); //chama função botao para cima
     //botao_cima.fall(&botcima_solto);
     
-    botao_baixo.rise(&botbaixo_press);
+    botao_baixo.rise(&botbaixo_press); //chama função bota para baixo
     //botao_baixo.fall(&botbaixo_solto);
        
         
     while(1){    
         //printf("%d %d %d \n\r", bot_enter, bot_cima, bot_baixo);
-        switch(menu.func){
+        switch(menu.func){ //faz com que as telas sejam iniciadas
             case 0: menu.inicializar(); break;
             case 1: menu.menuprincipal(); break;
             case 2: menu.jog(); break;
-            //case 3: menu.notReferenced(2); break;
-            //case 4: menu.notReferenced(3); break;
-            //case 5: menu.referencing(); break;
-            //case 6: menu.rootMenu(); break;
-            //case 7: menu.manualControl(); break;
-            //case 8: menu.positions(); break;
-            //case 9: menu.selectPos(); break;
-            //case 10: menu.selectPos(2); break;
-            //case 11: menu.selectPos(3); break;
-            //case 12: menu.run(); break;
+            //case 3: menu.automatico(); break;
+            //case 4: menu.config(); break;
+            case 5: menu.telasalvamento(); break;
+            case 6: menu.telacola(); break;
+            case 7: menu.executarprograma(); break;
+            case 8: menu.telazerar(); break;
+            case 9: menu.executando(); break;
+            case 10: menu.zerado(); break;
+            case 11: menu.finalizado(); break;
+    
             }
         } 
     }     
@@ -322,6 +464,7 @@
 //função interrupt botão enter
         
 void botenter_press(void){
+          
           penter = bot_enter;
           bot_enter = !bot_enter;
           printf("enter high");