FASTLED

Нет ответов
_A_r_d_u_i_n_o
Offline
Зарегистрирован: 02.08.2015

Здравствуйте, возникла такая проблема, в общем суть заключается в том, что в при помощи Remotexy разработал интерфейс (простой очень - обычный RGB круг), подключение к смартфону при помощи esp8266, и при загрузке вот такого кода

#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h> 

// настройки соединения  
#define REMOTEXY_SERIAL Serial 
#define REMOTEXY_SERIAL_SPEED 115200 
#define REMOTEXY_WIFI_SSID "RemoteXY" 
#define REMOTEXY_WIFI_PASSWORD "12345678" 
#define REMOTEXY_SERVER_PORT 6377 


// конфигурация интерфейса   
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] = 
  { 255,3,0,0,0,14,0,6,5,2,
  6,0,22,2,60,60,3,18,56,56,
  2 }; 
   
// структура определяет все переменные вашего интерфейса управления  
struct { 

    // input variable
  uint8_t rgb_1_r; // =0..255 значение Красного цвета 
  uint8_t rgb_1_g; // =0..255 значение Зеленого цвета 
  uint8_t rgb_1_b; // =0..255 значение Синего цвета 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY; 
#pragma pack(pop) 

///////////////////////////////////////////// 
//           END RemoteXY include          // 
///////////////////////////////////////////// 

#define led1 3
#define led2 5
#define led3 6

void setup()  
{ 
  RemoteXY_Init ();  
   
   pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

  // TODO you setup code 
   
} 

void loop()  
{  
  RemoteXY_Handler (); 
   
  
  // TODO you loop code 
  // используйте структуру RemoteXY для передачи данных 
analogWrite(led1, RemoteXY.rgb_1_r);

analogWrite(led2,RemoteXY.rgb_1_g);

analogWrite(led3,RemoteXY.rgb_1_b);

}

всё работает отлично, без задержек, светодиод очень плавно меняет цвета. 

А когда подключаю ленту ws2812b к плате и загружаю в плату вот такой код 

#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h> 

// настройки соединения  
#define REMOTEXY_SERIAL Serial 
#define REMOTEXY_SERIAL_SPEED 115200 
#define REMOTEXY_WIFI_SSID "RemoteXY" 
#define REMOTEXY_WIFI_PASSWORD "12345678" 
#define REMOTEXY_SERVER_PORT 6377 


// конфигурация интерфейса   
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] = 
  { 255,3,0,0,0,14,0,6,5,2,
  6,0,22,2,60,60,3,18,56,56,
  2 }; 
   
// структура определяет все переменные вашего интерфейса управления  
struct { 

    // input variable
  uint8_t rgb_1_r; // =0..255 значение Красного цвета 
  uint8_t rgb_1_g; // =0..255 значение Зеленого цвета 
  uint8_t rgb_1_b; // =0..255 значениецц Синего цвета 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY; 
#pragma pack(pop) 

///////////////////////////////////////////// 
//           END RemoteXY include          // 
///////////////////////////////////////////// 

#include "FastLED.h"
FASTLED_USING_NAMESPACE
#define DATA_PIN     9
#define NUM_LEDS    12
#define CLOCK_P 13
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];


void setup()  
{ 
  RemoteXY_Init ();  
     FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);

     FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
    
   
  // TODO you setup code 
   
} 

void loop()  
{  
  RemoteXY_Handler (); 
   
    for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(RemoteXY.rgb_1_r,RemoteXY.rgb_1_g,RemoteXY.rgb_1_b );
    FastLED.show();   /*  текущее состояние C */

  // TODO you loop code 
  // используйте структуру RemoteXY для передачи данных 


}

начинают появляться так называемые тормоза, цвет светодиода меняется только секунд через 10, после включения его на экране смартфона, подскажите пожалуйста, это всё-таки fastled так тормозит ардуино или  я где-то ошибся в коде? 

заранее спасибо!