Código para o menu no LCD
Dependencies: mbed SDFileSystemSD TextLCD
Fork of TextLCD_HelloWorld2 by
main.cpp
- Committer:
- claraluques
- Date:
- 2018-05-09
- Revision:
- 5:30f5ffe0ea0b
- Parent:
- 4:a3e4bb2053cb
- Child:
- 6:24cbbdf2dac2
File content as of revision 5:30f5ffe0ea0b:
#include "mbed.h" #include "TextLCD.h" /* // Host PC Communication channels Serial pc(USBTX, USBRX); // tx, rx //I2C Communication I2C i2c_lcd(D14,D15); // SDA, SCL //Botão push InterruptIn botao(D7); //LCD instantiation TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD20x4); // I2C exp: I2C bus, PCF8574 Slaveaddress, LCD Type //variáveis int int colunas = lcd.columns(); int linhas = lcd.rows(); int c1 = 510000000; int pontosl = 10; int botpres; //variáveis float float coordx = 123; float coardy = 456; float coardz = 789; //funções void botao_press(void); void botao_solto(void); int main() { lcd.setBacklight(TextLCD::LightOn); //liga backlight lcd.cls(); lcd.printf("Certifique-se de que voce esta seguro para comecar"); botao.rise(&botao_press); botao.fall(&botao_solto); wait(2); while(1){ while(1) { if (c1>500000000) { lcd.cls(); lcd.printf("FUNCAO JOG"); lcd.locate(0,1); //lcd.printf("X: %.1f Y: %d.1 Z: %d.1", coordx, coordy, coordz); lcd.locate(0,2); lcd.printf("Aperte > ok p/ salvar o ponto %c", 0x3E); //wait(0.5) //lcd.printf("Aperte ok p/ salvar o ponto %c", 0xff); InterruptIn botao(D7); c1 = 0; } c1++; if(botpres) { //se pressionado, aparece a tela de ponto salvo com contagem de pontos restantes lcd.cls(); lcd.locate(0,0); lcd.printf("Voce salvou um ponto"); lcd.locate(0,2); pontosl--; lcd.printf("Pontos livres: %d",pontosl); wait(2); c1=510000000; break; } } } } void botao_press(void){ botpres = 1; printf("pressionado\n\r"); } void botao_solto(void) { botpres = 0; printf("solto\n\r"); } */ //#include mbed.h //#include "TextLCD.h" // Host PC Communication channels Serial pc(USBTX, USBRX); // tx, rx //I2C Communication I2C i2c_lcd(D14,D15); // SDA, SCL //Botão push InterruptIn botao_enter(D13); InterruptIn botao_cima(D10); InterruptIn botao_baixo(D9); //LCD instantiation TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD20x4); // I2C exp: I2C bus, PCF8574 Slaveaddress, LCD Type //variáveis int //int max = 3; //int min = 0; int bot_enter; int bot_cima; int bot_baixo; //variáveis float float cx = 123; float cy = 456; float cz = 789; //funções interrupt void botenter_press(void); void botenter_solto(void); void botcima_press(void); void botcima_solto(void); void botbaixo_press(void); void botbaixo_solto(void); //criar classe "menu" (funções das telas) class Menu{ public: int linha; int coluna; int func; void movercursor(int min, int max){ //função para mover cursor de seleção coluna = 0; linha = min; while (bot_enter==0){ if (bot_cima==1){ if (linha==min){ linha=max; } else { linha--; } } if (bot_baixo==1){ if (linha==max){ linha=min; } else { linha++; } } lcd.locate(coluna, linha); lcd.printf("%c", 0x3E); printf("%d \n\r",linha); printf("%d %d %d \n\r", bot_enter, bot_cima, bot_baixo); wait(2); } //printf("%d \n\r",linha); } //func 0 void inicializar(){ //função tela incial de boas-vindas lcd.cls(); lcd.locate(9,0); lcd.printf("Ola!"); lcd.locate(0,1); lcd.printf("Utilize seu EPI ao operar a maquina."); wait(5); func = 1; } //func 1 void menuprincipal(){ //função menu principal lcd.cls(); lcd.locate(1,0); lcd.printf("Modo JOG"); lcd.locate(1,1); lcd.printf("Modo Automatico"); lcd.locate(1,2); lcd.printf("Config"); movercursor(0,2); if (bot_enter==1){ if (linha==0){ func = 2; } else if (linha==1) { func = 3; } else if (linha==2) { func = 4; } } } Menu(); }; Menu::Menu(){ func = 0; } Menu menu; int main () { lcd.setBacklight(TextLCD::LightOn); //liga backlight lcd.setCursor(TextLCD::CurOff_BlkOff); botao_enter.rise(&botenter_press); botao_enter.fall(&botenter_solto); botao_cima.rise(&botcima_press); botao_cima.fall(&botcima_solto); botao_baixo.rise(&botbaixo_press); botao_baixo.fall(&botbaixo_solto); while(1){ //printf("%d %d %d \n\r", bot_enter, bot_cima, bot_baixo); switch(menu.func){ case 0: menu.inicializar(); break; case 1: menu.menuprincipal(); break; //case 2: menu.notReferenced(); 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; } } } //função interrupt botão enter void botenter_press(void){ bot_enter = 1; printf("enter high"); } void botenter_solto(void) { bot_enter = 0; printf("enter low"); } //função interrupt botão cima void botcima_press(void){ bot_cima = 1; printf("cima high"); } void botcima_solto(void) { bot_cima = 0; printf("cima low"); } //função interrupt botão baixo void botbaixo_press(void){ bot_baixo = 1; printf("baixo high"); } void botbaixo_solto(void) { bot_baixo = 0; printf("baixo low"); }