Добрый день!
Не могу победить стробоскоп из примера:
имеется ESP8266 с WiFi, на NodeMcu 1.0
переделал немного скетч. По виртуальной кнопке запускается мигание встроенным светодиодом, однако как бы ни крутил слайдер в приложении, частота мигания не меняется. А остаётся такой, какой её указываем в блоке void setup(). Такое впечатление, что программа отрабатывает функцию BLYNK_WRITE(V1), но при этом полностью игнорирует выполнение функции BLYNK_WRITE(V2). Иначе не могу понять, почему настройки таймера в блоке Setup запоминаются и интервал таймера больше не меняется, как должно происходить, если бы BLYNK_WRITE(V2) обрабатывалась. Да, вопрос чайниковский, согласен. Некоторое время потратил на понимание работы ардуино, чтобы уж совсем не тупить на вопросы. Но, видимо, тут мне без помощи вообще никак…
вот скетч:
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "XXXXXXXXXX"; //параметры сети для блинка
char ssid[] = "YYYYYYYYYY";
char pass[] = "ZZZZZZZZZZ";
#define BLYNK_PRINT Serial
BlynkTimer timer; //объявляем таймер
int t1;
//long interval=0;
#define Ledpin 2
void ledBlynk() //функция мигания. если светодиод включен - выключаем, и наоборот.
{
digitalWrite(Ledpin, !digitalRead(Ledpin));
}
BLYNK_WRITE(V1)
{
if (param.asInt()) {
timer.enable(t1);
} else {
timer.disable(t1);
digitalWrite(Ledpin, HIGH);
}
}
BLYNK_WRITE(V2)
{
long interval = param.asLong();
boolean wasEnabled = timer.isEnabled(t1);
timer.deleteTimer(t1);
t1 = timer.setInterval(interval, ledBlynk);
if (!wasEnabled) {
timer.disable(t1);
}
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(Ledpin, OUTPUT);
t1 = timer.setInterval(250L, ledBlynk);
timer.disable(t1);
}
void loop() {
Blynk.run();
timer.run();
}
помогите пожалуйста. Организовать стробоскоп полностью на железе, думаю мне вполне по силам, а вот с виртуальством - вообще никак не идёт(((
Прошу прощения, что не правильно оформил тему.