====== @amperka/led-strip ======
Библиотека для управления [[amp>product/ws2811-led-strip-sealed|светодиодной лентой]], [[amp>product/led-module-rgb-ws2811-20x3pcs-screw-mountable|светодиодными плашками]] и [[amp>product/troyka-rgb-led-4x4|RGB-матрицами]]. Работа с массивом байтов каждого цвета светодиодной ленты вызывает путаницу с порядком цветов, усложняет код и увеличивает его размер. Все эти проблемы библиотека берёт на себя, оставляя силы на творчество.
SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14});
var length = 20;
var ledStrip = require('@amperka/led-strip').connect(SPI2, length, 'BGR');
// гасим все светодиоды
ledStrip.clear();
setInterval(function() {
for (var i = 0; i < length; i++) {
// выбираем произвольную интенсивность красного цвета
var redTone = Math.random();
// устанавливаем цвет светодиода
ledStrip.putColor(i, [redTone, 0, 0]);
}
// применяем изменения
ledStrip.apply();
}, 1000);
===== Функции модуля =====
func:: connect(spi, length, type)
Создаёт новый объект Strip. Параметры функции:
* ''spi'' — SPI, к которому подключен модуль, например ''SPI2''
* ''length'' — количество диодов в ленте или гирлянде
* ''order'' — порядок цветов в устройстве. Параметр должен иметь вид строки вида ''%%'%%BGR%%'%%'', ''%%'%%RBG%%'%%'' и т. д, где каждый символ соответствует своему цвету: ''%%'%%R%%'%%'' — красный, ''%%'%%G%%'%%'' — зеленый, ''%%'%%B%%'%%'' — синий.
class:: Strip
Класс для подключения светодиодной ленты. Для создания нового объекта, используйте функцию ''connect''.
func:: Strip.putColor(index, color)
Устанавливает цвет светодиода с индексом ''index''. Параметр ''color'' должен быть массивом или объектом из трёх элементов:
* Если ''color'' — массив, цвет задается в формате ''[red, green, blue]'' (порядок важен).
* Если ''color'' — объект, цвет задается полями ''red'', ''green'' и ''blue'', в данном случае порядок не имеет значения.
Интенсивность каждого цвета лежит в диапазоне 0.0…1.0.
// устанавливаем цвет 11-го светодиода в ленте
// вызовы обеих функций эквивалентны
ledStrip.putColor(10, [0.5, 0.8, 0.7]);
ledStrip.putColor(10, {red: 0.5, green: 0.8, blue: 0.7});
// применяем изменения
ledStrip.apply();
func:: Strip.brightness([brightness])
При наличии параметра ''brightness'' функция устанавливает яркость всех светодиодов ленты одновременно. Параметр brightness принимает значения в диапазоне 0.0…1.0. Если параметр ''brightness'' не задан, функция возвращает текущее значение яркости.
// устанавливаем яркость ленты в 2 раза меньше максимальной
ledStrip.brightness(0.5);
// узнаем яркость ленты
var brightness = ledStrip.brightness();
// выведет в консоль 0.5
print(brightness);
func:: Strip.clear()
Устанавливает все светодиоды ленты в выключенное состояние.
// гасим все светодиоды
ledStrip.clear()
func:: Strip.apply()
Применяет изменения цвета светодиодов после функции ''putColor''.
func:: Strip.getColor(index[, type])
Возвращает значение цвета светодиода с индексом ''index''. Параметр ''type'' может принимать следующие значения:
* ''%%'%%object%%'%%'' — возвращаемое значение будет представлено в виде объекта с полями ''%%'%%red%%'%%'', ''%%'%%green%%'%%'' и ''%%'%%blue%%'%%''
* ''%%'%%array%%'%%'' — возвращаемое значение будет представлено в виде массива из трёх элементов в формате ''[red, green, blue]''
Значение ''type'' по умолчанию ''%%'%%object%%'%%''.
// узнаем цвет 11-го светодиода
var color = ledStrip.getColor(10, 'object');
// выведет в консоль {red: 0.5, green: 0.8, blue: 0.7}
print(color);