При подключению к WIFI начинает безумно моргать нулевой светодиод ленты.
Делаю ночник управляемый через Blynk.
Плата esp8266-01s.
Мучаюсь 5 день так и не придумал как исправить.
Делаю ночник управляемый через Blynk.
Плата esp8266-01s.
Мучаюсь 5 день так и не придумал как исправить.
C++:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
#include <BlynkSimpleEsp8266.h>
#ifndef STASSID
#define STASSID "xxxxxx"
#define STAPSK "xxxxxx"
#endif
const char* host = "esp8266";
const char* ssid = STASSID;
const char* password = STAPSK;
char auth[] = "XXXXX";
ESP8266WebServer httpServer(80);
ESP8266HTTPUpdateServer httpUpdater;
#include "FastLED.h"
#define LED_COUNT 87
#define LED_DT 0
int max_bright = 255;
int ledMode = 5;
// цвета мячиков для режима
byte ballColors[3][3] = {
{0xff, 0, 0},
{0xff, 0xff, 0xff},
{0 , 0 , 0xff},
};
// ---------------СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ-----------------
int BOTTOM_INDEX = 85;
int TOP_INDEX = int(LED_COUNT / 2);
int EVENODD = LED_COUNT % 2;
struct CRGB leds[LED_COUNT];
int ledsX[LED_COUNT][3];
int thisdelay = 20; //-FX LOOPS DELAY VAR
int thisstep = 10; //-FX LOOPS DELAY VAR
int thishue = 0; //-FX LOOPS DELAY VAR
int thissat = 255; //-FX LOOPS DELAY VAR
int thisindex = 0;
int thisRED = 0;
int thisGRN = 0;
int thisBLU = 0;
int idex = 0; //-LED INDEX (0 to LED_COUNT-1
int ihue = 0; //-HUE (0-255)
int ibright = 0; //-BRIGHTNESS (0-255)
int isat = 0; //-SATURATION (0-255)
int bouncedirection = 0; //-SWITCH FOR COLOR BOUNCE (0-1)
float tcount = 0.0; //-INC VAR FOR SIN LOOPS
int lcount = 0; //-ANOTHER COUNTING VAR
// ---------------СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ-----------------
void setup(void) {
pinMode(LED_DT, OUTPUT);
digitalWrite(LED_DT, LOW);
// delay(100);
LEDS.setBrightness(max_bright);
LEDS.addLeds<WS2812B, LED_DT, GRB>(leds, LED_COUNT);
one_color_all(0, 0, 0);
LEDS.show();
leds[0].setRGB(255, 0, 0); LEDS.show();
delay(1500);
leds[0].setRGB(0, 255, 0); LEDS.show();
delay(1500);
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(500);
}
leds[0].setRGB(0, 0, 255); LEDS.show();
delay(1500);
MDNS.begin(host);
httpUpdater.setup(&httpServer);
httpServer.begin();
MDNS.addService("http", "tcp", 80);
Blynk.config(auth);
leds[0].setRGB(0, 255, 255); LEDS.show();
delay(1500);
}
void loop(void) {
httpServer.handleClient();
MDNS.update();
Blynk.run();
switch (ledMode) {
case 999: break;
case 0: one_color_all(0, 0, 0); break;
case 1: one_color_all(255, 0, 0); break;
case 2: rainbow_fade(); break; // плавная смена цветов всей ленты
case 3: rainbow_loop(); break; // крутящаяся радуга
case 4: random_burst(); break; // случайная смена цветов
case 5: color_bounce(); break; // бегающий светодиод
case 6: color_bounceFADE(); break; // бегающий паровозик светодиодов
case 7: ems_lightsONE(); break; // вращаются красный и синий
case 8: ems_lightsALL(); break; // вращается половина красных и половина синих
case 9: flicker(); break; // случайный стробоскоп
case 10: pulse_one_color_all(); break; // пульсация одним цветом
case 11: pulse_one_color_all_rev(); break; // пульсация со сменой цветов
case 12: fade_vertical(); break; // плавная смена яркости по вертикали (для кольца)
case 13: rule30(); break; // безумие красных светодиодов
case 14: random_march(); break; // безумие случайных цветов
case 15: rwb_march(); break; // белый синий красный бегут по кругу (ПАТРИОТИЗМ!)
case 16: radiation(); break; // пульсирует значок радиации
case 17: color_loop_vardelay(); break; // красный светодиод бегает по кругу
case 18: white_temps(); break; // бело синий градиент (?)
case 19: sin_bright_wave(); break; // тоже хрень какая то
case 20: pop_horizontal(); break; // красные вспышки спускаются вниз
case 21: quad_bright_curve(); break; // полумесяц
case 22: flame(); break; // эффект пламени
case 23: rainbow_vertical(); break; // радуга в вертикаьной плоскости (кольцо)
case 24: pacman(); break; // пакман
case 25: random_color_pop(); break; // безумие случайных вспышек
case 26: ems_lightsSTROBE(); break; // полицейская мигалка
case 27: rgb_propeller(); break; // RGB пропеллер
case 28: kitt(); break; // случайные вспышки красного в вертикаьной плоскости
case 29: matrix(); break; // зелёненькие бегают по кругу случайно
case 30: new_rainbow_loop(); break; // крутая плавная вращающаяся радуга
case 31: strip_march_ccw(); break; // чёт сломалось
case 32: strip_march_cw(); break; // чёт сломалось
case 33: colorWipe(0x00, 0xff, 0x00, thisdelay);
colorWipe(0x00, 0x00, 0x00, thisdelay); break; // плавное заполнение цветом
case 34: CylonBounce(0xff, 0, 0, 4, 10, thisdelay); break; // бегающие светодиоды
case 35: Fire(55, 120, thisdelay); break; // линейный огонь
case 36: NewKITT(0xff, 0, 0, 8, 10, thisdelay); break; // беготня секторов круга (не работает)
case 37: rainbowCycle(thisdelay); break; // очень плавная вращающаяся радуга
case 38: TwinkleRandom(20, thisdelay, 1); break; // случайные разноцветные включения (1 - танцуют все, 0 - случайный 1 диод)
case 39: RunningLights(0xff, 0xff, 0x00, thisdelay); break; // бегущие огни
case 40: Sparkle(0xff, 0xff, 0xff, thisdelay); break; // случайные вспышки белого цвета
case 41: SnowSparkle(0x10, 0x10, 0x10, thisdelay, random(100, 1000)); break; // случайные вспышки белого цвета на белом фоне
case 42: theaterChase(0xff, 0, 0, thisdelay); break; // бегущие каждые 3 (ЧИСЛО СВЕТОДИОДОВ ДОЛЖНО БЫТЬ НЕЧЁТНОЕ)
case 43: theaterChaseRainbow(thisdelay); break; // бегущие каждые 3 радуга (ЧИСЛО СВЕТОДИОДОВ ДОЛЖНО БЫТЬ КРАТНО 3)
case 44: Strobe(0xff, 0xff, 0xff, 10, thisdelay, 1000); break; // стробоскоп
case 45: BouncingBalls(0xff, 0, 0, 3); break; // прыгающие мячики
case 46: BouncingColoredBalls(3, ballColors); break; // прыгающие мячики цветные
case 888: demo_modeA(); break; // длинное демо
case 889: demo_modeB(); break; // короткое демо
}
}
BLYNK_WRITE(V0)
{
int newmode = param.asInt();
change_mode(newmode);
}
Изменено: