Boa noite à todos!

Prezados, estou com problemas com as funcionalidades de seleção de telas e menus. 

Placa Esp32
Display ST7920 128X64
Encoder KY-040

Resumo: Consiste em um gerador de sinais para simular sensores de rotação, fase e 2 sinais pwm, para simular o acelerador.

Informo que peguei este sketch de terceiro. Já alterei várias funcionalidades, mas não estou  conseguindo resolver as funcionalidades da seleção entre telas e menus.

Tela inicial > dados da empresa e da versão do projeto --> Ok!!

Tela principal > Ambiente de Simulação -->  Ao pressionar a função SW do encoder, demora para alterar para a Tela MenuPrincipal, tenho que segurar uns 8 segundos pressionado. Queria que fosse por pulso.

Tela menu principal > Nesta tela, tenho que manter o encoder pressionado  e girar para selecionar a montadora, ao soltar, muda para a TelaMenuECU. Queria que a seleção da montadora fosse feita girando o encoder, e mudasse a escolha da montadora por pulso do SW.

Tela Menu Ecu > Conforme a minha abastração, o proposito é selecionar uma montadora na tela Menu principal, ao pressionar o encoder em um item selecionado, deve exibir uma lista de ECUs, correspondente a montadora na tela Menu Ecus, ("ERROR", no caso está exibindo as ECUs correspondente a todas as motadoras) ao selecionar um item nesta tela, este deve ser apontado para tela MenuPrincipal para ser simulado.("ERROR, ao selecionar qualquer ECU, não acontece nada"). 

Todos os créditos serão referenciados no projeto a quem puder ajudar.

Segue anexo o sketch para apreciação.

Exibições: 479

Anexos

Responder esta

Respostas a este tópico

Boa noite E2S, (se não gosta que te chame pelas iniciais, avise),

verificando o seu sketch acredito detectei que algumas coisas causa este delay indesejado.

Como não tenho este display, não consigo realizar testes aqui.

1a. Realmente ´e necessário este " delay(2000);  (2 segundos) logo no inicio da função loop()?

    Lembre-se que a função loop() roda "ad eternum", e então está sempre passando (e parando) neste delay.

2a.  Este  "  while (u8g2.nextPage());"  você usou em todas telas do menu, e até onde eu sei esta função

     causa um delay grande, pois nextPage () bloqueia o processamento até que o buffer seja enviado completamente .

RV

Boa noite caro mineirinRV!

Tranquilo quanto a me chamar pelas iniciais. 

Agradeço por sua colaboração e observações, vou verificar o que pode ser melhorado em relação aos seus apontamentos, sugestões serão bem-vindas. 

boa tarde ednilzo .to com um codigo mais avançado, porem falta alguns ajustes.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço