Advertisement
Guest User

Untitled

a guest
Dec 12th, 2022
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. //задаем статусы реле OFF-false
  2. bool relay1_on = false;
  3. bool relay2_on = false;
  4. bool relay3_on = false;
  5. bool relay4_on = false;
  6. bool relay5_on = false;
  7. bool nasosFlagOn = false;
  8. bool nasosFlagOff = false;
  9.  
  10. static uint32_t tmr_nasos; // переменная времени насоса для включения
  11. static uint32_t tmr_nasos1; // переменная времени насоса для отключения
  12.  
  13. bool SensorsOK = false; //Состояние сенсоров
  14.  
  15. int temp_set = 25;//
  16. int gisterezis = 4;//
  17.  
  18. //функция с логикой работы реле от температуры
  19. void relayControl() {
  20. if (SensorsOK)
  21. {
  22. if (temp_water < (temp_set - gisterezis))
  23. {
  24. relay1_on = true;
  25. relay2_on = true;
  26. relay3_on = true;
  27. relay4_on = true;
  28. if (relay1_on && relay2_on || relay1_on && relay3_on || relay1_on && relay4_on) {
  29. nasosFlagOn = true;
  30. } else {
  31. nasosFlagOn = false;
  32. }
  33. }
  34. else if (temp_water > temp_set)
  35. {
  36. relay2_on = false;
  37. relay3_on = false;
  38. relay4_on = false;
  39. if (relay1_on && !relay2_on && !relay3_on && !relay4_on) {
  40. nasosFlagOff = true;
  41. } else {
  42. nasosFlagOff = false;
  43. //nasosFlagOff = true;
  44. }
  45. }
  46. }
  47. else
  48. {
  49. relay1_on = false;
  50. }
  51. if (nasosFlagOn) {
  52. if (millis() - tmr_nasos >= 4000) { //включаем насос
  53. tmr_nasos = millis();
  54. nasosFlagOn = false;
  55. relay5_on = true;
  56. }
  57. }
  58.  
  59. if (nasosFlagOff) {
  60. if (millis() - tmr_nasos1 >= 10000) { //отключаем насос
  61. tmr_nasos1 = millis();
  62. nasosFlagOff = false;
  63. relay5_on = false;
  64. }
  65. }
  66. updateStatePins();
  67. }
  68.  
  69. void updateStatePins(void) {
  70.  
  71. if (relay1_on) {//главное реле - команда allOk
  72. PCF.write(0, LOW);
  73. } else {
  74. PCF.write(0, HIGH);
  75. }
  76. if (relay2_on) {//реле тена 1
  77. PCF.write(1, LOW);
  78. } else {
  79. PCF.write(1, HIGH);
  80. }
  81. if (relay3_on) {//реле тена 2
  82. PCF.write(2, LOW);
  83. } else {
  84. PCF.write(2, HIGH);
  85. }
  86. if (relay4_on) {//реле тена 3
  87. PCF.write(3, LOW);
  88. } else {
  89. PCF.write(3, HIGH);
  90. }
  91. if (relay5_on) {//реле насоса
  92. PCF.write(4, LOW);
  93. } else {
  94. PCF.write(4, HIGH);
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement