ПУХ, ты чего свои автоматы плохо пропагандируешь? Меня интересует классы каких устройств для автоматов уже реализованы, пора уроки давать...
PS ты же своими автоматами с концепцией ардуино угадал 100% смотрел твои классы просто как черный ящик, по сути digitalRead -digitalWrite и получается и даже класс кнопки чуток посмотрел, то-есть там реализовано и нажатие и отпускание оказывается...
да не, как говорят художники...это моё видение... )))
PS Тоже + поставил, может вернётся еще какими объектами для автомата, было бы интересно, с утреца хотел посмотреть насколько функции блокирующие
Ну так зачем вы свой switch запихнули внутрь процедуры блинк? Заведите переменную номер режима для кейса и внутри блинк делайте только установку этой переменной, а весь код вынесите в основную программу
Отлично, все заработало как надо! И автоматика не прошла мимо меня, она просто убегает от меня в противоположную сторону :))
Всем большое спасибо!
Состряпанный код "РЕЛЕ ЗАДЕРЖЕК" для управления циркуляционным насосом с выбором режима работы и управлением через приложение Blynk "MENU".
дык, не гнобили, а призывали (как я понял) где можно использовать digitalRead не пихать класс, и на if с case не накладывать конечный автомат.
а так да, Пух, красавец!
ПУХ, ты чего свои автоматы плохо пропагандируешь? Меня интересует классы каких устройств для автоматов уже реализованы, пора уроки давать...
PS ты же своими автоматами с концепцией ардуино угадал 100% смотрел твои классы просто как черный ящик, по сути digitalRead -digitalWrite и получается и даже класс кнопки чуток посмотрел, то-есть там реализовано и нажатие и отпускание оказывается...
PPS давай колись )))
да не, как говорят художники...это моё видение... )))
PS Тоже + поставил, может вернётся еще какими объектами для автомата, было бы интересно, с утреца хотел посмотреть насколько функции блокирующие
Отлично, все заработало как надо! И автоматика не прошла мимо меня, она просто убегает от меня в противоположную сторону :))
Всем большое спасибо!
Состряпанный код "РЕЛЕ ЗАДЕРЖЕК" для управления циркуляционным насосом с выбором режима работы и управлением через приложение Blynk "MENU".
#define Relay D1 //Реле #define BLYNK_PRINT Serial //Библиотека BLYNK #include <ESP8266WiFi.h> //Библиотека ESP #include <BlynkSimpleEsp8266.h> //Библиотека BLYNK //Генераторы gen1 и gen2 extern "C" { #include "user_interface.h"; } bool statusBlynk; bool _swi1; //bool для проверки логических условий или как флаг состояний, как выключатель - ВКЛ и ВЫКЛ (true и false) bool _gen1I = 0; bool _gen1O = 0; unsigned long _gen1P = 0UL; //_gen1P переменная, OUL присваиваемое значение bool _gen2I = 0; bool _gen2O = 0; unsigned long _gen2P = 0UL; char auth[] = "Токен авторизации"; char ssid[] = "Логин WIFi"; char pass[] = "Пароль WIFi"; void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); pinMode(Relay, OUTPUT); } //Blynk интерфейс "MENU" BLYNK_WRITE(V12){ switch(param.asInt()){ case 1: //Item 1 statusBlynk = 0; Serial.println("statusBlynk = 0"); break; case 2: //Item 2 statusBlynk = 1; Serial.println("statusBlynk = 1"); break; }} void loop(){ Blynk.run(); if (1) {if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0; } if (_gen1I ) { if (_gen1O) { if ( _isTimer( _gen1P , 500 )) { _gen1P = millis(); _gen1O = 0; } } else { if ( _isTimer( _gen1P , 100 )) { _gen1P = millis(); _gen1O = 1; } } } if (1) {if (! _gen2I) { _gen2I = 1; _gen2O = 1; _gen2P = millis(); } } else { _gen2I = 0 ; _gen2O= 0; } if (_gen2I ) { if (_gen2O) { if ( _isTimer( _gen2P , 2000 )) { _gen2P = millis(); _gen2O = 0; } } else { if ( _isTimer( _gen2P , 1000 )) { _gen2P = millis(); _gen2O = 1; } } } if(statusBlynk == 0) //переменная {_swi1=_gen2O;} else {_swi1=_gen1O;} digitalWrite(Relay, _swi1); Serial.print("statusBlynk_________"); Serial.println(statusBlynk); } bool _isTimer(unsigned long startTime, unsigned long period ) { unsigned long currentTime; currentTime = millis(); if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));} }мне 59 строка не нравится
так давно известно, что flProg бдит за переполнением миллис. А то вдруг переполнится.