Boa tarde!

Estou com um problema no meu programa.

Estou usando 4 boias  de nível flutuante 0/1 , placa arduino Uno.

A função é controlar 2 caixas de agua , 2 solenoides e uma bomba.

Preciso que no segundo IF onde é desligar a bomba seja prioridade. E quando a bomba desligar a Solenoide S2 feche e abra a solenoide S1, e quando a bomba ligar feche a solenoide S1 e abra a S2.

 Aqui é onde ligo a bomba, 

if (leitura_caixa_chuva_alto1 == HIGH && leitura_caixa_chuva_baixo2 == HIGH)//se tiver o nivel da caixa de baixo alto e a de cima baixo...
  {
    digitalWrite(pinBomba, HIGH);// liga bomba

a bomba deve desligar independente se  chuva alto1 seja HIGH e Chuva baixo2 Seja HIGH

(

  if (leitura_caixa_chuva_baixo1 == HIGH || leitura_caixa_chuva_alto2 == HIGH)//se o nivel da caixa de baixo estiver baixo ou a de cima estiver alto...
  {
    digitalWrite(pinBomba, LOW);// desliga a bomba

)

Quando a bomba desligar deve abrir solenoide S1 e fechar a S2, e quando a bomba ligar deve fechar a S2 e abrir a S1.

Segue o programa abaixo para analisarem o erro.

int pinAguaBaixaS1 = 12; //sensor de água baixa da caixa 1 chuva
int pinAguaBaixaS2 = 11; //sensor de água baixa da caixa 2 chuva
int pinAguaAltaS3 = 10; // sensor de nivel alto caixa 2 chuva
int pinAguaAltaS4 = 9; //sensor de nivel alto caixa 1 chuva
int pinSolenoideSO1 = 8; // solenoide da caixa 2 chuva
int pinSolenoideSO2 = 7; //solenoide da caixa 3 potavel
int pinBomba = 6; // bomba da caixa 2 chuva
int leitura_caixa_chuva_alto1, leitura_caixa_chuva_baixo1, leitura_caixa_chuva_alto2, leitura_caixa_chuva_baixo2;

void setup(){
  pinMode(pinAguaBaixaS1,INPUT);
  pinMode(pinAguaBaixaS2,INPUT);
  pinMode(pinAguaAltaS3,INPUT);
  pinMode(pinAguaAltaS4,INPUT);
  pinMode(pinSolenoideSO1,OUTPUT);
  pinMode(pinSolenoideSO2,OUTPUT);
  pinMode(pinBomba,OUTPUT);
}
  void loop()
{
  leitura_caixa_chuva_alto1 = digitalRead(pinAguaAltaS4);// sensor de nivel alto caixa 01 subsolo
  leitura_caixa_chuva_baixo1 = digitalRead(pinAguaBaixaS1);// sensor de nivel baixo caixa 01 subsolo
  leitura_caixa_chuva_alto2 = digitalRead(pinAguaAltaS3);// sensor de nivel alto caixa 02 laje
  leitura_caixa_chuva_baixo2 = digitalRead(pinAguaBaixaS2);// sensor nivel baixo 02 laje
 
  if (leitura_caixa_chuva_alto1 == HIGH && leitura_caixa_chuva_baixo2 == HIGH)//se tiver o nivel da caixa de baixo alto e a de cima baixo...
  {
    digitalWrite(pinBomba, HIGH);// liga bomba
  }
  if (leitura_caixa_chuva_baixo1 == HIGH || leitura_caixa_chuva_alto2 == HIGH)//se o nivel da caixa de baixo estiver baixo ou a de cima estiver alto...
  {
    digitalWrite(pinBomba, LOW);// desliga a bomba
  }
  if (leitura_caixa_chuva_alto2 == HIGH)// se a leitura do nivel da caixa de cima esta alto ....
  {
    digitalWrite(pinSolenoideSO2,LOW);// desliga a solenoide da potavel
    digitalWrite(pinSolenoideSO1,HIGH);//liga solenoide da chuva

  }
  if (leitura_caixa_chuva_baixo2 == HIGH)// se a leitura do nivel da caixa de cima esta baixo...
  {
    digitalWrite(pinSolenoideSO2,HIGH);// liga solenoide da caixa potavel
    digitalWrite(pinSolenoideSO1,LOW);// desliga solenoide da caixa da chuva

  }
 
}

Exibições: 1422

Responder esta

Respostas a este tópico

Você podia fazer um desenho, pode ser a mão e colocar aqui para entendermos melhor o que você quer.
Principalmente a parte dos solenoides.

Oi Guilhereme, boa tarde.

Experimenta este código, ligando as boias igual o desenho abaixo.

http://pastebin.com/NDcbDY8m

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço