Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //задаем статусы реле OFF-false
- bool relay1_on = false;
- bool relay2_on = false;
- bool relay3_on = false;
- bool relay4_on = false;
- bool relay5_on = false;
- bool nasosFlagOn = false;
- bool nasosFlagOff = false;
- static uint32_t tmr_nasos; // переменная времени насоса для включения
- static uint32_t tmr_nasos1; // переменная времени насоса для отключения
- bool SensorsOK = false; //Состояние сенсоров
- int temp_set = 25;//
- int gisterezis = 4;//
- //функция с логикой работы реле от температуры
- void relayControl() {
- if (SensorsOK)
- {
- if (temp_water < (temp_set - gisterezis))
- {
- relay1_on = true;
- relay2_on = true;
- relay3_on = true;
- relay4_on = true;
- if (relay1_on && relay2_on || relay1_on && relay3_on || relay1_on && relay4_on) {
- nasosFlagOn = true;
- } else {
- nasosFlagOn = false;
- }
- }
- else if (temp_water > temp_set)
- {
- relay2_on = false;
- relay3_on = false;
- relay4_on = false;
- if (relay1_on && !relay2_on && !relay3_on && !relay4_on) {
- nasosFlagOff = true;
- } else {
- nasosFlagOff = false;
- //nasosFlagOff = true;
- }
- }
- }
- else
- {
- relay1_on = false;
- }
- if (nasosFlagOn) {
- if (millis() - tmr_nasos >= 4000) { //включаем насос
- tmr_nasos = millis();
- nasosFlagOn = false;
- relay5_on = true;
- }
- }
- if (nasosFlagOff) {
- if (millis() - tmr_nasos1 >= 10000) { //отключаем насос
- tmr_nasos1 = millis();
- nasosFlagOff = false;
- relay5_on = false;
- }
- }
- updateStatePins();
- }
- void updateStatePins(void) {
- if (relay1_on) {//главное реле - команда allOk
- PCF.write(0, LOW);
- } else {
- PCF.write(0, HIGH);
- }
- if (relay2_on) {//реле тена 1
- PCF.write(1, LOW);
- } else {
- PCF.write(1, HIGH);
- }
- if (relay3_on) {//реле тена 2
- PCF.write(2, LOW);
- } else {
- PCF.write(2, HIGH);
- }
- if (relay4_on) {//реле тена 3
- PCF.write(3, LOW);
- } else {
- PCF.write(3, HIGH);
- }
- if (relay5_on) {//реле насоса
- PCF.write(4, LOW);
- } else {
- PCF.write(4, HIGH);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement