Olá Pessoal,

dentro de uma caixa de agua C1, tenho uma bomba que joga agua para uma segunda caixa C2. NA C2 coloquei dois sensores de nivel (redundantes)

sensor 2 = pinBotao2, pinLED2 

sensor 3 = pinBotao3, pinLED3

que ligam uma bomba pinLED4 que está na C1.


quando os sensores estão desligados, a bomba fica ligada enchendo a c2.

Aqui ta ok


if (digitalRead(pinLED2) == HIGH && digitalRead(pinLED3) == HIGH) { 
digitalWrite(pinLED4, LOW);
} else {
digitalWrite(pinLED4, HIGH);

}

 e na C1 tenho um sensor de nivel minimo pinBotao1, pinLED1, que se não tiver agua deveria desligar a bomba mas ta dando conflito pq  como o nivel está baixando a função de cima está ativando a boma, enquanto a função de baixo tenta desligar.

digitalWrite(pinLED1, HIGH);
} else {
digitalWrite(pinLED4, LOW);

}

como resolvo isso?

Sem brincadeira.... Estou tentando resolver isso, há uns 3 dias, rs

obrigado

Exibições: 338

As respostas para este tópico estão encerradas.

Respostas a este tópico

Bom dia EB,

A sua explicação está um pouco confusa.

Sugiro que faça o seguinte:

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo com o seu
sketch.

Dai podemos ver o código por completo e entender melhor o funcionamento do mesmo, e sugerir modificações.

RV

Se vc mandar o codigo como o RV disse ajuda muito, mas basicamente vc está tentando criar duas condições onde só existe uma.

Vc deve começar com um if(caixa está vazia) {...} else {if(...)}. 

Imagine um fluxograma. O processamento vai para um lado ou para o outro. Não tenha medo de colocar um if dentro do outro.

Boa tarde,

Acho que deveria fazer o sugerido pelo colega RV.

No meu canal tenho varias simulações com bombas de água segue link. LINK MEU CANAL

Abs.

CK

Olá pessoal,

achei um video do GV ensino no youtube que me ajudou muito...

entendi a lógica e consegui fazer o projeto sozinho!!!!

até modifiquei um pouco, onde não há mais redundância e sim níveis diferentes e possíveis erros.

void loop() {
// o botao3 é o minimo de agua. para funcionar a bomba, ele tem que estar ligado.
//o botao2 é o nivel maximo sem erro. quando estiver desligado a bomba ficara ligada
// o botão1 é o erro. O nivel 2 falhou. quando ele ativar, a bomba desliga e o alarme toca

if (digitalRead(pinBotao1) && digitalRead(pinBotao2) && !digitalRead(pinBotao3))
{
digitalWrite(pinLED4, HIGH);
delay (5000);
}

if(!digitalRead(pinBotao2)){
digitalWrite(pinLED4,LOW);
}

if(!digitalRead(pinBotao1)){
digitalWrite(pinLED4,LOW);
digitalWrite(pinLED5,HIGH);
}
else
digitalWrite(pinLED5,LOW);
{

if(digitalRead(pinBotao3)){
digitalWrite (pinLED4,LOW);
}

}
}

espero que este projeto possa ajudar os aquaristas

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço