Advertisement
RuiViana

Controle de Bomba dagua

Jan 8th, 2016
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1.  
  2. #define Bomba1 5 // Relay da bomba1 no port 5 HIGH = Desligda
  3. #define Bomba2 6 // Relay da bomba2 no port 6 HIGH = Desligda
  4. #define SensorTorneira 7 // SensorTorneira no port 7 0 = Torneira aberta
  5. #define SensorBaixo 8 // SensorBaixo no port 8 0 = Tem água
  6. #define SensorAlto 9 // SensorAlto no port 9
  7. #define Pressao 10 // Sensor de pressão no port 10 0 = Tem presão
  8. byte BombaON = 0; // Variavel informase tem bombas ligada 1 = ligada
  9. byte Bomba1Ligada = 0; // Variavel Bomba1Ligada 0 = bomba desligada
  10. byte Bomba2Ligada = 0; // Variavel Bomba2Ligada 0 = bomba desligada
  11. //----------------------------------------------
  12. void setup()
  13. {
  14. pinMode(Bomba1,OUTPUT); // Bomba1 como saída
  15. pinMode(Bomba2,OUTPUT); // Bomba2 como saída
  16. pinMode(SensorTorneira,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
  17. pinMode(SensorBaixo,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
  18. pinMode(SensorAlto,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
  19. pinMode(Pressao,INPUT_PULLUP); // Bomba1 como entrada e PUL UP ligado
  20. digitalWrite(Bomba1 , HIGH); // HIGH bomba desligada
  21. digitalWrite(Bomba2 , HIGH); // HIGH bomba desligada
  22. }
  23. //----------------------------------------------
  24. void loop()
  25. {
  26. if ((digitalRead(SensorBaixo)) == 0) // Só liga se tiver água
  27. {
  28. if((digitalRead(SensorTorneira)) == 0 ) // Liga ao abrir a torneira
  29. {
  30. if((digitalRead(Pressao)) == 1) // Se não tiver presão
  31. { // Liga as 2 bombas
  32. digitalWrite(Bomba1 , LOW); // Liga bomba1
  33. digitalWrite(Bomba2 , LOW); // Liga bomba2
  34. }
  35. else // Se tiver presão
  36. {
  37. if (BombaON == 0) // Se não tem bomba ligada
  38. {
  39. BombaON = 1; // Informa que tem boma ligada
  40. Bomba1Ligada = !Bomba1Ligada; // Inverte bomba a ser usada
  41. if (Bomba1Ligada == 1) // Verifica se o flag da bomba1 está ligado
  42. Bomba2Ligada = 0; // Se tiver desliga o flag da bomba2
  43. else // Se o flag da bomba1 está desligado
  44. Bomba2Ligada = 1; // Liga o flag da bomba2
  45. if (Bomba1Ligada == 0) // Se o flag da bomba1 estiver desligado
  46. digitalWrite(Bomba1 , Bomba1Ligada); // Desliga uma bomba antes de ligar outra
  47. if (Bomba2Ligada == 0) // Se o flag da bomba2 estiver desligado
  48. digitalWrite(Bomba2 , Bomba2Ligada); // Desliga uma bomba antes de ligar outra
  49.  
  50. digitalWrite(Bomba1 , Bomba1Ligada); // Liga só bomba que estiver definida
  51. digitalWrite(Bomba2 , Bomba2Ligada); // Liga só bomba que estiver definida
  52. }
  53. }
  54. }
  55. else // Se torneira foi fechada
  56. {
  57. digitalWrite(Bomba1 , HIGH); // Desliga bomba1
  58. digitalWrite(Bomba2 , HIGH); // Desliga bomba2
  59. BombaON = 0; // Informa que não tem bomba ligada
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement