safwan092

Untitled

Feb 9th, 2023
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. #define WaterLevelLow A2
  4. #define WaterLevelMed A1
  5. #define WaterLevelHigh A0
  6. #define flowsensor 2
  7. #define rxPin 3
  8. #define txPin 4
  9.  
  10. SoftwareSerial ss(rxPin, txPin);
  11.  
  12. float var1;
  13. int var2;
  14. int waterLevel = 0;
  15. int WaterLevelLowValue = 0;
  16. int WaterLevelMedValue = 0;
  17. int WaterLevelHighValue = 0;
  18. double flow; //Water flow L/Min
  19. unsigned long currentTime;
  20. unsigned long lastTime;
  21. unsigned long pulse_freq;
  22.  
  23. void pulse () { // Interrupt function
  24. pulse_freq++;
  25. }
  26.  
  27. void setup() {
  28. pinMode(WaterLevelLow, INPUT);
  29. pinMode(WaterLevelMed, INPUT);
  30. pinMode(WaterLevelHigh, INPUT);
  31. pinMode(flowsensor, INPUT);
  32. Serial.begin(9600);
  33. ss.begin(9600);
  34. attachInterrupt(0, pulse, RISING); // Setup Interrupt
  35. currentTime = millis();
  36. lastTime = currentTime;
  37. }
  38.  
  39. void loop () {
  40. WaterLevelLowValue = analogRead(WaterLevelLow);
  41. WaterLevelMedValue = analogRead(WaterLevelMed);
  42. WaterLevelHighValue = analogRead(WaterLevelHigh);
  43. if (WaterLevelLowValue < 130 && WaterLevelMedValue < 130 && WaterLevelHighValue < 130) {
  44. waterLevel = 0;//tank is @ 0% Empty
  45. }
  46. else if (WaterLevelLowValue > 130 && WaterLevelMedValue < 130 && WaterLevelHighValue < 130) {
  47. waterLevel = 30;//tank is @ 30%
  48. }
  49. else if (WaterLevelLowValue > 130 && WaterLevelMedValue > 130 && WaterLevelHighValue < 130) {
  50. waterLevel = 60;//tank is @ 60%
  51. }
  52. else if (WaterLevelLowValue > 130 && WaterLevelMedValue > 130 && WaterLevelHighValue > 130) {
  53. waterLevel = 100;//tank is @ 100% Full
  54. }
  55. currentTime = millis();
  56. // Every second, calculate and print L/Min
  57. if (currentTime >= (lastTime + 1000))
  58. {
  59. lastTime = currentTime;
  60. // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
  61. flow = (pulse_freq / 7.5);
  62. pulse_freq = 0; // Reset Counter
  63. Serial.print(flow, DEC);
  64. Serial.println(" L/Min");
  65. Serial.println("______________________");
  66. Serial.print("Water Level: ");
  67. Serial.println(waterLevel);
  68. Serial.println("______________________");
  69. Serial.print("LowValue: ");
  70. Serial.println(WaterLevelLowValue);
  71. Serial.print("MedValue: ");
  72. Serial.println(WaterLevelMedValue);
  73. Serial.print("HighValue: ");
  74. Serial.println(WaterLevelHighValue);
  75. var1 = flow;
  76. var2 = waterLevel;
  77. ss.print(var1, 2);
  78. ss.print("A");
  79. ss.print(var2);
  80. ss.print("B");
  81. ss.print("\n");
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment