boas
eu e um colega meu estamos a fazer um contador decrescente só que quando ele chega a zero ele não pára
como faço para que quando chegue a zero o contador pare em zero?
este é o código:
buttonState = digitalRead(11);
if(buttonState==HIGH){
contador3=contador3-1;
if(contador3>0){
contador3=contador3;
contador4=contador4;
}
if(contador3==0){
contador4=contador4-1;
if(contador4==0){
contador1=contador1-1;
}
contador3=10;
}
if(contador4==0){
contador4=6;
}
if(contador1==0){
contador1=10;
contador2=contador2-1;
}
}
}
Ricardo, o seu post é uma desgraça!
Vamos por partes:
1º) Edite o post, seleccione o código e clique no botão com o símbolo'#' que está na barra de ferramentas. Isso fará que o código fique numa caixa própria para o efeito que o torna mais legível.
2º) Tratamos do código. Há aí muito desperdício, muita coisa repetida e muita coisa que precisa de ser alterada.
Olá!
Eu não entendi muito bem sua pergunta mas, se quer que a contagem seja executada apenas uma vez.
Mova as funções para o setup ou crie uma condição adicional.
Substitua:
while(1){
Por:
if(executar == true){
executar = false;
Adicione isto no começo do programa (variável global).
boolean executar = true;
Abraço.
Fernando Garcia
Isto não é o código todo...
Onde estão definidas as variáveis?
O bubulindo tem razão, a primeira vez havia mais código.
int contador1=2;//MINUTOS
int contador2=1;//MINUTOS
int contador3=1;//SEGUNDOS
int contador4=1;//SEGUNDOS
const int inc=11;
void setup() {
pinMode(23, OUTPUT);//SEGUNDOS
pinMode(25, OUTPUT);//SEGUNDOS
pinMode(27, OUTPUT);//SEGUNDOS
pinMode(29, OUTPUT);//SEGUNDOS
pinMode(31,OUTPUT);//ACTIVAR SEGUNDOS
pinMode(33,OUTPUT);//ACTIVAR SEGUNDOS
pinMode(22, OUTPUT);//MINUTOS
pinMode(24, OUTPUT);//MINUTOS
pinMode(26, OUTPUT);//MINUTOS
pinMode(28, OUTPUT);//MINUTOS
pinMode(30, OUTPUT);//ACTIVAR MINUTOS
pinMode(32, OUTPUT);//ACTIVAR MINUTOS
}
void loop(){
while(1){
buttonState = digitalRead(inc);
if(buttonState==HIGH){
contador3=contador3-1;
if(contador3>0){
contador3=contador3;
contador4=contador4;
}
if(contador3==0){
contador4=contador4-1;
if(contador4==0){
contador1=contador1-1;
}
contador3=10;
}
if(contador4==0){
contador4=6;
}
if(contador1==0){
contador1=10;
contador2=contador2-1;
}
}
}
}
ricardo_lamas, não sei qual foi a parte da minha primeira resposta que não compreendeu.
luisilva:
(...)
1º) Edite o post, seleccione o código e clique no botão com o símbolo'#' que está na barra de ferramentas. Isso fará que o código fique numa caixa própria para o efeito que o torna mais legível.
2º) Tratamos do código. Há aí muito desperdício, muita coisa repetida e muita coisa que precisa de ser alterada.
Se apaga a maior parte do código, como é que quer que os outros o ajudem, se nem sequer conhecem o código?
Na sua alteração do post original, deixou tão pouco código, que não dá para perceber se aquilo é parte da função loop() ou se é outra coisa qualquer.