I connect 6 buttons using various resistances to 1 analog pin and is working fine and each button will have different behaviours.
When one button is punched the process of that button begins and i want to block readings if other buttons are pressed. Is there a way when i press a button stop analog readings and in the end of the process start analog readings again from A0 (button pin readings)?
Below is the loop code i have to the buttons. Thanks in advance
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Definição de Botões
int botao = analogRead(A0);
if (botao > 10) {
if (botao > 560) {
delay(200);
last_botao = 2;
}
else if (botao > 510) {
delay(200);
last_botao = 1;
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<>>>>>>>>>>ARRANQUE DO CONTADOR E ZERAR A CONTAGEM
if (last_botao > 0) {
contagem_pulsos();
}
if (last_botao == 0) {
contagem_total = 0;
flow_frequency = 0;
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>COMPORTAMENTO DOS BOTÕES
if (last_botao == 1) {
if (contagem_total < fluxo1 - 80) {
digitalWrite(rele_enchimento, HIGH);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total < fluxo1) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, HIGH);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total == fluxo1 || contagem_total < fluxo1) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, LOW);
last_botao = 0;
}
}
if (last_botao == 2) {
if (contagem_total < fluxo2 - 80) {
digitalWrite(rele_enchimento, HIGH);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total < fluxo2) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, HIGH);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total == fluxo2 || contagem_total < fluxo2) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, LOW);
last_botao = 0;
}
}
I switch the values to true/false instead of inverting the state as recommended end print the result and the result is ok . However the process of the relays do not start.
if (botao_ocupado == false) {
botao = analogRead(A0);
}
if (botao > 10) {
if (botao > 560) {
delay(200);
last_botao = 2;
}
else if (botao > 510) {
delay(200);
last_botao = 1;
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<>>>>>>>>>>ARRANQUE DO CONTADOR E ZERAR A CONTAGEM
if (last_botao > 0) {
botao_ocupado = true;
contagem_pulsos();
}
if (last_botao == 0) {
contagem_total = 0;
flow_frequency = 0;
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>COMPORTAMENTO DOS BOTÕES
if (last_botao == 1) {
if (contagem_total < fluxo1 - 80) {
digitalWrite(rele_enchimento, HIGH);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total < fluxo1) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, HIGH);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total == fluxo1 || contagem_total < fluxo1) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, LOW);
last_botao = 0;
botao_ocupado = false;
}
}
if (last_botao == 2) {
if (contagem_total < fluxo2 - 80) {
digitalWrite(rele_enchimento, HIGH);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total < fluxo2) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, HIGH);
digitalWrite(rele_natural, HIGH);
}
else if (contagem_total == fluxo2 || contagem_total < fluxo2) {
digitalWrite(rele_enchimento, LOW);
digitalWrite(rele_fim, LOW);
digitalWrite(rele_natural, LOW);
last_botao = 0;
botao_ocupado = false;
}
}