Boa tarde, estou tentando fazer um controlador do nível de um poço que tenho na "roça" que não dá agua o suficiente pra encher a caixa de água de uma vez, ele é estreito (tubo 100mm) e não consigo usar uma boia elétrica tradicional.
Hoje utilizo um sensor de nível resistivo comercial, porém como é na roça, quando tem problemas na rede elétrica ele acaba queimando, e como o circuito é integrado, perco todo o sistema do sensor de nível. Esse sensor trabalha da seguinte forma, verifica se há água no poço artesiano (um sensor de nível mínimo e um de nível máximo), se há água no poço e a caixa não está cheia (tem um sensor de nível na caixa), ele aciona o rele que liga a bomba.
Atualmente consegui um código no youtube que utiliza apenas dois sensores, um na caixa e um no poço, porém dessa forma quando a bomba ligar vai logo baixar o nível do poço e desligar a bomba, gerando assim uma ineficiência.
Gostaria de deixar como é o sensor comercial que uso, que aciona a bomba ao atingir o nível máximo e desliga a bomba ao atingir o nível mínimo, voltando a acionar apenas quando o nível máximo é atingido. Estou nesse etapa, na verdade só fiz algumas modificações no código original pra facilitar o meu entendimento, alterar algumas portas e os sensores estão atuando junto, em redundância.
Se conseguirem me ajudar agradeço muito.
Obrigado
#define pinSensorCaixa 13
#define pinSensorPocoMax 12
#define pinSensorPocoMin 11
#define pinRele 8
#define pinAlerta 3
bool estadoCaixa = HIGH;
bool estadoPocoMax = HIGH;
bool estadoPocoMin = HIGH;
void setup() {
pinMode(pinSensorCaixa, INPUT_PULLUP);
pinMode(pinSensorPocoMax, INPUT_PULLUP);
pinMode(pinSensorPocoMin, INPUT_PULLUP);
pinMode(pinRele, OUTPUT);
pinMode(pinAlerta, OUTPUT);
}
void loop() {
estadoCaixa = !digitalRead(pinSensorCaixa);
estadoPocoMax = !digitalRead(pinSensorPocoMax);
estadoPocoMin = !digitalRead(pinSensorPocoMin);
if ((estadoPocoMin) && (estadoPocoMax)) {
if (estadoCaixa) {
digitalWrite(pinRele, HIGH);
} else {
digitalWrite(pinRele, LOW);
}
digitalWrite(pinAlerta, LOW);
} else {
digitalWrite(pinRele, HIGH);
digitalWrite(pinAlerta, HIGH);
}
}