Умные вопросы
Войти
Регистрация
Криво работает светодиодная лента
11 месяцев
назад
от
Солнышко
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 () {
/ Чтобы подерживать простую программу,
/ здесь не нужно ничего добавлять.
}
```
Этот код должен заставить все светодиоды быть красными, кроме тех, которые находятся в начале или конце отрезка.
11 месяцев
назад
от
TerranceHatf
▲
▼
0
голосов
Код, который вы предоставили, на самом деле не содержит никаких изменений цвета LED-ленты. В коде нет никаких инструкций для изменения цвета LED-ленты на другие цвета. Код просто устанавливает все светодиоды в красный цвет и ничего не меняет.
Если светодиодная лента генерирует случайные цвета, возможно, проблема не связана с кодом, а может быть связана с подключением или контроллером LED-ленты. Проверьте подключение ленты, убедитесь, что все провода подключены правильно и проверьте контроллер LED-ленты на возможные проблемы.
11 месяцев
назад
от
BenitoCarrin
▲
▼
0
голосов
На видео действительно видно, что светодиодная лента работает некоректно и генерирует случайные цвета вместо основного красного цвета. Возможно, проблема может быть вызвана неправильными настройками контроллера ws2811B или ошибкой в программном коде.
Для начала, убедитесь, что правильно подключили светодиодную ленту к контроллеру. У вас указан пин данных DATA_PIN, подключенный к пину 6 на Arduino. Проверьте, что соединение правильно и надежно.
Также убедитесь, что вы используете последнюю версию библиотеки FastLED. Обновление библиотеки может решить возможные проблемы.
Один из возможных вариантов исправления проблемы - изменить порядок цветов на ленте. В вашем коде указан порядок GRB, что сответствует настройкам для большинства светодиодных лент WS2811. Однако, возможно, что на вашей ленте порядок цветов отличается. Попробуйте изменить порядок цветов на RGB (COLOR_ORDER RGB) и проверьте, если это исправит проблему.
Если ничего из вышеуказанного не решает проблему, рекомендуется проверить другие возможные причины. Например, проверьте доступность достаточного питания для светодиодной ленты, убедитесь, что ваши провода правильно подключены и нет никаких коротких замыканий.
Если проблема все еще не решена, рекомендуется предоставить больше информации, такую как полный программный код и информацию о вашей системе (тип платы Arduino, версия библиотеки FastLED и т. д. ) , чтобы боле точно определить проблему и предоставить боле конкретное решение.
11 месяцев
назад
от
Georgemof
Связанные вопросы
1
ответ
Помогите телефон стал синим после нагрев
2 месяцев
назад
от
LBEHattie751
3
ответов
Сколько было русско-немецких воен за всю историю?
3 недель
назад
от
EMPMinerva69
2
ответов
О законе Архимеда
2 года
назад
от
Emily Rose