Menus de configuração no Painel de Administração

GVensino - fome de saber!

Trabalhando com várias telas (menu) no PIC com LCD Alfanumérico


Neste tutorial vamos fazer alguns programas microcontrolados com o PIC16F628A, Compilador CCS, onde o usuário poderá escolher várias telas. Algo parecido com o que temos em nossos relógios de pulso ou rádio relógios.

Abaixo temos o circuito base para nossos programas:

circuitoBase

 

Repare que foram criados 3 botões, um chamado TELA, outro Ajuste + e o último, Ajuste -.

Usaremos o botão TELA para alterar entre uma tela e outra.

Vejamos o primeiro exemplo:


 

Exemplo 1: Cada vez que o botão tela for pressionado, o número da tela irá aparecer no display.

Repare que a lógica acima é simples. Cada vez que o usuário pressionar o botão, a variável tela é incrementada em 1. Quando ela chega a 4, ela volta para 1. Assim, o programa fica “rodando” entre as telas 1 e 3.

Depois, colocamos uma estrutura de decisão condicional (if) que irá dizer ao PIC o que fazer em cada tela. Se a tela for igual a 1, escreva “tela 1”, se for igual a 2, “tela 2”, e assim por diante.

Por fim, colocamos delays após cada vez que o botão é pressionado e também após cada escrita no LCD.

O delay no botão é para impedir que o PIC “pule” duas ou mais telas a cada vez que a pessoa pressionar.

O delay nas escritas do LCD é para que a tela do display não fique piscando muito, pois sem eles, o PIC ficaria limpando/escrevendo/limpando/escrevendo no display o tempo todo, criando uma sensação ruim para quem o observa.

 


 

Exemplo 2: Relógio em uma tela, alarme em outra

Vamos colocar agora, na Tela 1, um relógio.

Simule o programa acima. Você verá que há 2 defeitos graves nele. Responda as perguntas abaixo para detectá-los:

1. O que acontece se quisermos mudar de tela? O comando é obedecido rapidamente?

2. O que é preciso fazer para mudar de tela?

3. Por que isso acontece?

4. Quando voltamos à tela do relógio, você percebe que ele continuou funcionando mesmo quando estávamos nas outras telas ou ele continuou à partir da hora/minuto/segundo em que estava antes?

5. Por que isso acontece?

 


 

5Respostas em "Trabalhando com várias telas (menu) no PIC com LCD Alfanumérico"

  1. O que acontece se quisermos mudar de tela? O comando é obedecido rapidamente?

    Não. O comando não obedece corretamente como no exemplo anterior. Acredito que por existe varios IF deixa o pic meio que confuso.

    2. O que é preciso fazer para mudar de tela?

    Ainda não encontrei a solução, mas acredito que não seja algo tão difícil. Talvez se usar o comando switch case possa resolver todo o problema, mas não consegui usar nesse exemplo ainda.

    3. Por que isso acontece?

    Acredito que ainda falta uma função pra deixar o texto parado até receber um comando.

    4. Quando voltamos à tela do relógio, você percebe que ele continuou funcionando mesmo quando estávamos
    nas outras telas ou ele continuou à partir da hora/minuto/segundo em que estava antes?

    Não. Continua funcionando.

    5. Por que isso acontece?

    Devido ao ciclo que acontece a todo instante.

    6. Quando sai a solução usando também um exemplo com switch case com o mesmo display lcd?

  2. Boa tarde pessoal,

    Onde consigo a biblioteca LCD.C?

  3. Boa tarde Sr. Gabriel, muito obrigado pelas suas explicações e pelo tempo dedicado ao conhecimento publicável. Espero que seu material seja útil a muitas pessoas como será a mim mesmo. Grande abraço e tudo de bom. Sandro

Deixe sua mensagem

©GVensino - Todos os Direitos Reservados
css.php