Código para o menu no LCD
Dependencies: mbed SDFileSystemSD TextLCD
Fork of TextLCD_HelloWorld2 by
Diff: main.cpp
- 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");