o funcionamento seria: ao apertar o botão, a válvula(rele1) e a bomba(bomba) ligam, e quando der 450 pulsos, desliga ambos e zera a quantidade de pulso.
porém quando aperta o botão novamente, não acontece nada.
obs:só funciona na primeira vez
obs: a bomba e a válvula são ligadas por relés
volatile int pulsos;
int botao1 = 8;
int rele1 = 4;
int bomba = 7;
int estadobotao1 = 0;
#define sensordefluxo 2
void fluxo ()
{
pulsos++;
}
void setup()
{
pinMode(botao1, INPUT);
pinMode(bomba, OUTPUT);
pinMode(rele1,OUTPUT);
pinMode(sensordefluxo, INPUT);
Serial.begin(9600);
attachInterrupt(0, fluxo, RISING);
interrupts();
}
void loop ()
{
estadobotao1=digitalRead(botao1);
while(estadobotao1 == 1){
while(pulsos<450){
Serial.print("Pulsos: ");
Serial.println(pulsos);
if(estadobotao1==1 && pulsos<449){
digitalWrite(rele1, HIGH);
digitalWrite(bomba, HIGH);
}
else{
digitalWrite(rele1, LOW);
digitalWrite(bomba, LOW);
}
if(pulsos==450){
pulsos=0;
estadobotao1=0;
}
}
}
}
@Isadora Ferraz @Bommu Perneta