Криво работает светодиодная лента

5 месяцев назад от Солнышко

3 Ответы

0 голосов
Похоже, что проблема связана с тем, что в коде вы используете функцию `fill_solid () ` для включения всех светодиодов красным цветом. Эта функция записывает в каждый светодиод один и тот же цвет, независимо от его позиции на ленте. В вашем случае, это означает, что все светодиоды будут иметь красный цвет, кроме тех, которые находятся в начале или конце отрезка, состоящего из трех светодиодов. Для этих светодиодов цвет будет определяться случайным образом, поскольку они не будут включены в функцию `fill_solid () `.
 
Чтобы решить эту проблему, вы можете использовать функцию `fill_gradient () ` вместо `fill_solid () `. Эта функция позволяет задать градиент цветов на ленте, что означает, что цвет светодиодов будет постепенно изменяться от одного конца ленты к другому. В вашем случае, вы можете задать градиент от красного к черному, чтобы все светодиоды были красными, кроме тех, которые находятся в начале или конце отрезка.
 
Вот измененный код, который решает эту проблему:
 
```c+
#include FastLED. h
 
/ Определение параметров LED ленты
#define DATA_PIN 6 / Пин данных, подключенный к ленте. Можно изменить на нужный пин.
#define LED_TYPE WS2811 / Тип ленты
#define COLOR_ORDER GRB / Порядок цветов на ленте
 
/ Определение параметров ленты
#define NUM_LEDS 300 / Обще количество светодиодов на ленте
#define LEDS_PER_SEGMENT 3 / Количество светодиодов в одном отрезке
 
CRGB leds[NUM_LEDS];
 
void setup () {
 / Инициализация светодиодной ленты
 FastLED. addLedsLED_TYPE, DATA_PIN, COLOR_ORDER (leds, NUM_LEDS) ;
 FastLED. setBrightness (100) ; / Установка яркости (от 0 до 255)
 
 / Включение всех светодиодов красным цветом с градиентом
 fill_gradient (leds, 0, CRGB::Red, NUM_LEDS, CRGB::Black) ;
 FastLED. show () ;
}
 
void loop () {
 / Чтобы подерживать простую программу,
 / здесь не нужно ничего добавлять.
}
```
 
Этот код должен заставить все светодиоды быть красными, кроме тех, которые находятся в начале или конце отрезка.
5 месяцев назад от TerranceHatf
0 голосов
Код, который вы предоставили, на самом деле не содержит никаких изменений цвета LED-ленты. В коде нет никаких инструкций для изменения цвета LED-ленты на другие цвета. Код просто устанавливает все светодиоды в красный цвет и ничего не меняет.
 
Если светодиодная лента генерирует случайные цвета, возможно, проблема не связана с кодом, а может быть связана с подключением или контроллером LED-ленты. Проверьте подключение ленты, убедитесь, что все провода подключены правильно и проверьте контроллер LED-ленты на возможные проблемы.
5 месяцев назад от BenitoCarrin
0 голосов
На видео действительно видно, что светодиодная лента работает некоректно и генерирует случайные цвета вместо основного красного цвета. Возможно, проблема может быть вызвана неправильными настройками контроллера ws2811B или ошибкой в программном коде.
 
Для начала, убедитесь, что правильно подключили светодиодную ленту к контроллеру. У вас указан пин данных DATA_PIN, подключенный к пину 6 на Arduino. Проверьте, что соединение правильно и надежно.
 
Также убедитесь, что вы используете последнюю версию библиотеки FastLED. Обновление библиотеки может решить возможные проблемы.
 
Один из возможных вариантов исправления проблемы - изменить порядок цветов на ленте. В вашем коде указан порядок GRB, что сответствует настройкам для большинства светодиодных лент WS2811. Однако, возможно, что на вашей ленте порядок цветов отличается. Попробуйте изменить порядок цветов на RGB (COLOR_ORDER RGB) и проверьте, если это исправит проблему.
 
Если ничего из вышеуказанного не решает проблему, рекомендуется проверить другие возможные причины. Например, проверьте доступность достаточного питания для светодиодной ленты, убедитесь, что ваши провода правильно подключены и нет никаких коротких замыканий.
 
Если проблема все еще не решена, рекомендуется предоставить больше информации, такую как полный программный код и информацию о вашей системе (тип платы Arduino, версия библиотеки FastLED и т. д. ) , чтобы боле точно определить проблему и предоставить боле конкретное решение.
5 месяцев назад от Georgemof

Связанные вопросы