====== @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);