Olá novamente meus caros. Eu aqui "traveis" com mais um dúvida na programação do meu "grande" projeto!

Estou tentando criar uma função de pausa dentro de uma rotina "for", utilizando uma variável booleana, como sempre li todo o conteúdo que pude encontrar na internet a respeito do assunto mas ainda não está funfando, alguém sabe o há de errado?

Ao pressionar o botão "start" no void loop() ela chama a função void cortar() (código abaixo), e dentro desta função preciso poder "pausar" e "reiniciar" ao clique de um mesmo botão, ou seja, clica o botão "pausa", função para de rodar, clica no "pausa" novamente, função volta a contagem de onde parou. Alguém sabe onde está o erro ou uma forma melhor de fazê-lo?

void cortar()
{
boolean pausa = false;

btn_i = btnRead();

for (number; number > 000; number--)        // repete a função cortar "number" vezes
{                                                             // variável number é selecionada pelo usuário
digitalWrite(tamanho, HIGH);
delay(number1*1000);
digitalWrite(tamanho, LOW);
delay(500);
digitalWrite(corte, HIGH);
delay(500);
digitalWrite(corte, LOW);
delay(500);
printNumber(number);

if (btn_i == btnPause)
{
delay(100);
pausa = !pausa;

while (pausa == true)
{

}

}

alarme();                                  // ao acabar a rotina de corte chama um alarme

}

Exibições: 1448

Responder esta

Respostas a este tópico

Pra entenderem melhor, esse é o projetinho. Uma cortadora de uma película chamada "hotfix tape" utilizado em moda. Nela o usuário seleciona o numero da quantidade e o tamanho em cm de cada folha.

Nela o usuário pode pausar a rotina, caso aconteça alguma coisa, ou queira trocar a bobina. 

Vai ser equipada com um sensor que ativa na presença da folha e caso a bobina acabe ele desativa, provocando uma pausa na rotina, e soando um alarme para que usuário possa fazer a reposição . 

Anexos

Olá,

Poste seu código completo colando no www.pastebin.com, ou envie aqui como descrito no tutorial do Rui Viana, creio que assim sera mais fácil alguém lhe oferecer ajuda.

Abs.

Oi RMM, boa tarde.

Como bem disse o CK, o ideal é sempre postar um código, ou aqui mesmos mas com arquivo anexado

ou em sites como o www.pastebin.com.

O seu for está "incompleto" .   for (number; number > 000; number--)

Veja esta sugestão do código para o for.

http://pastebin.com/zQHimqgw

Rui

Ok caros colegas, aqui segue o código completo da forma que sugeriram. Desculpem o deslize, não conhecia esta ferramenta.

http://pastebin.com/i2ctFuBn

RFM,

veja o que sugeri para você modificar o  "for" do seu code.

Rui

http://pastebin.com/zQHimqgw

Valeu Rui, alterações feitas. Não tinha entendido quando li o código, mas quando alterei e executei ele notei a diferença. 

Agora só falta fazer o pause funfar.

Oi RMM, 

posta o novo code que dou uma olhada.

Rui

Segue o código! Obrigado pela ajuda!

http://pastebin.com/ftKtrx6z

Ja tentei de tudo usando uma booleana. Mas tem que ter uma forma que funcione

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço