Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define Bomba1 5 // Relay da bomba1 no port 5 HIGH = Desligda
- #define Bomba2 6 // Relay da bomba2 no port 6 HIGH = Desligda
- #define SensorTorneira 7 // SensorTorneira no port 7 0 = Torneira aberta
- #define SensorBaixo 8 // SensorBaixo no port 8 0 = Tem água
- #define SensorAlto 9 // SensorAlto no port 9
- #define Pressao 10 // Sensor de pressão no port 10 0 = Tem presão
- byte BombaON = 0; // Variavel informase tem bombas ligada 1 = ligada
- byte Bomba1Ligada = 0; // Variavel Bomba1Ligada 0 = bomba desligada
- byte Bomba2Ligada = 0; // Variavel Bomba2Ligada 0 = bomba desligada
- //----------------------------------------------
- void setup()
- {
- pinMode(Bomba1,OUTPUT); // Bomba1 como saída
- pinMode(Bomba2,OUTPUT); // Bomba2 como saída
- pinMode(SensorTorneira,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
- pinMode(SensorBaixo,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
- pinMode(SensorAlto,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
- pinMode(Pressao,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
- digitalWrite(Bomba1 , HIGH); // HIGH bomba desligada
- digitalWrite(Bomba2 , HIGH); // HIGH bomba desligada
- }
- //----------------------------------------------
- void loop()
- {
- if ((digitalRead(SensorBaixo)) == 0) // Só liga se tiver água
- {
- if((digitalRead(SensorTorneira)) == 0 ) // Liga ao abrir a torneira
- {
- if((digitalRead(Pressao)) == 1) // Se não tiver presão
- { // Liga as 2 bombas
- digitalWrite(Bomba1 , LOW); // Liga bomba1
- digitalWrite(Bomba2 , LOW); // Liga bomba2
- }
- else // Se tiver presão
- {
- if (BombaON == 0) // Se não tem bomba ligada
- {
- BombaON = 1; // Informa que tem boma ligada
- Bomba1Ligada = !Bomba1Ligada; // Inverte bomba a ser usada
- if (Bomba1Ligada == 1) // Verifica se o flag da bomba1 está ligado
- Bomba2Ligada = 0; // Se tiver desliga o flag da bomba2
- else // Se o flag da bomba1 está desligado
- Bomba2Ligada = 1; // Liga o flag da bomba2
- if (Bomba1Ligada == 0) // Se o flag da bomba1 estiver desligado
- digitalWrite(Bomba1 , Bomba1Ligada); // Desliga uma bomba antes de ligar outra
- if (Bomba2Ligada == 0) // Se o flag da bomba2 estiver desligado
- digitalWrite(Bomba2 , Bomba2Ligada); // Desliga uma bomba antes de ligar outra
- digitalWrite(Bomba1 , Bomba1Ligada); // Liga só bomba que estiver definida
- digitalWrite(Bomba2 , Bomba2Ligada); // Liga só bomba que estiver definida
- }
- }
- }
- else // Se torneira foi fechada
- {
- digitalWrite(Bomba1 , HIGH); // Desliga bomba1
- digitalWrite(Bomba2 , HIGH); // Desliga bomba2
- BombaON = 0; // Informa que não tem bomba ligada
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement