WS2811 задание параметров при старте
- Войдите на сайт для отправки комментариев
Чт, 22/02/2018 - 10:19
Всем привет!
Вот и я решил приобщиться к Arduino и приобрел Uno и ktyne 2811 5 вольт
Собрал схему, загрузил примеры, всё нормально.
Теперь решил программировать самому.
Есть небольшой опыт программирования на PHP.
Поставил себе задачу сделать следующий алгоритм: при включении на всех светодиодах установить яркость в 0 и задать цвет, например, зеленый. Затем плавно вывести яркость на максимум (255).
Бьюсь - не получается.
Подскажите пожалуйста как сделать, потому как у меня пока что первые шаги, не дайте упасть :-)
Вот код:
#include "FastLED.h" #define NUM_LEDS 50 // всего светодиодов в ленте CRGB leds[NUM_LEDS]; #define PIN 13 // Пин для команд #define COLOR_ORDER RGB int fadeAmount = 1; int brightness = 0; void setup() { FastLED.addLeds<WS2811, PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness(0); // все светодиоды выключаются (яркость 0) CRGB::Green; // все светодиоды в зеленый цвет } void loop() { fade_in(brightness, fadeAmount); // плавное нарастание яркости } void fade_in(int brightness, int fadeAmount) { for(int i = 0; i < NUM_LEDS; i++ ) { leds[i].fadeLightBy(brightness); } FastLED.show(); brightness = brightness + fadeAmount; }
У кого вы подсмотрели строку #13 ?
Сам попробовал. Ошибки вроде компилятор не дает..
Неправильно?
Если компилятор ошибки не дает, то правильно. Но бессмысленно.
Вот в стр.26 вы ко всем элементам страйпа применяете некое действие. Наверное логично было бы так же во все элементы страйпа поместить число, обозначающее "зеленый", так?
Вот, к примеру, на https://github.com/FastLED/FastLED/wiki/Basic-usage , начиная с раздела "Writing an led" приводятся примеры того, что вы пытаетесь сделать.
ЗаREMил строку 13, добавил в цикле установку цвета светодиода в зеленый. Не разгораются светодиоды.
ЗаREMил строку 12. Теперь при запуске все светодиоды зеленые и сразу светятся. а я хотел что бы они плавно разгорелись.
Вашу ссылку читаю.
Ну вы же словами человечьими всё уже описали, почему в программе делаете иначе?
1) Выставили яркость в 0;
2) Первый цикл: все элементы массива => "зеленый цвет".
3) Второй цикл: увеличиваете яркость от нуля до нужного уровня.
Всего-то и надо было, что на стр. 13 произвести действие №2.
Поштудировал и сделал так:
Работает. Всем спасибо.