FASTLED
- Войдите на сайт для отправки комментариев
Пт, 02/06/2017 - 23:57
Здравствуйте, возникла такая проблема, в общем суть заключается в том, что в при помощи 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 так тормозит ардуино или я где-то ошибся в коде?
заранее спасибо!