Olá pessoal, sou iniciante com Arduíno e estou com um problema. Estou criando um programa e preciso que em uma determinada parte dele a execução seja parada e direcionada para o inicio, no caso para void loop(). Algo assim:

if (digitalRead(start))
{
// escreve no LCD as opções para escolha 
tela.print("Qual o sabor?", 0, 0);
tela.print("Verde=Limao", 0, 8);
tela.print("Amar=Maracuja", 0, 16);

if (digitalRead(limao)) 
{
tela.clrScr();// limpa o lcd e pede para escolher a intensidade da bebida 
tela.print("Qual Intensidade", 0, 0);
tela.print("Maricas", 0, 8);
tela.print("Macho", 0, 16);

if (digitalRead(maricas))
{
tela.clrScr(); // mostra a opção escolhida e pede para confirmar
tela.print("Voce escolheu:", 0, 0);
tela.print("LIMAO para", 0 , 8);
tela.print("MARICAS", 0 , 16);
tela.print("Confirma", 0 , 24);
tela.print("Cancela", 0 , 32);

if (digitalRead(confirma))
{
tela.clrScr();// exibe a mensagem que a bebida está sendo preparada 
tela.print("Bebida", 0 , 0);
tela.print("Sendo", 0 , 8);
tela.print("Preparada", 0, 16);

}
else(digitalRead(cancela));// caso fosse pressionado o botão cancela o programa deveria parar aqui e voltar para o inicio da função loop()
return; // neste ponto não sei como faço para isto acontecer. O return deu erro e não consigo chamar a função loop() ai no lugar do return;

//continuação do programa...

Exibições: 2771

Responder esta

Respostas a este tópico

Oi NL, boa noite,
Vou recomendar a voce a leitura do tópico: http://labdegaragem.com/forum/topics/sugest-o-de-como-postar,
Principalmete a recomedação de não postar códigos na área de texto do tópico.

Ok, agora com sua dificuldade.
Coloque a parte funcional do seu programa dentro de uma função while (), e defina uma condição pra que a execução saia do while.
Qdo esta condição for atingida, a execução sairá do while e voltará para o inicio da função loop ().

Rui

Oi NL, bom dia.
Correçao na minha informação. while não é função, é uma estrutura de controle.

Rui

Olá  Nei Lopes.

Só para você ter conhecimento, o Arduino usa a seguinte estrutura:

void setup() // é executado uma vez

{...}

void loop() // é executado continuamente 

{...}

"Todo" o seu programa deve ficar dentro de loop(), com exceção da rotina de interrupção, você pode e deve criar funções, também recomendo separar em arquivos - TABS)

Para ser mais preciso as funções setup() e loop() estão dentro de uma função chamado main()- é padrão do C.

Seria bom você explicar com mais detalhes, o que realmente pretende e anexar todo o seu código.

pense em algo assim(é uma possibilidade)

void loop()

{

  //funcoes

 condicao = TRUE;

 while(condicao)

 {

  //seu programa

  ...

  else(digitalRead(cancela))

  condicao = FALSE; ou break;

  ...

 }

}

Muito obrigado galera, vcs me salvaram. Com as dicas resolvi o problema, nos próximos posts prometo ser mais claro e seguir as normas do fórum. Valeu mesmo.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço