@amperka/led-matrix
Библиотека для управления монохромной LED матрицей 8×8 (Troyka-модуль). Используйте редактор пиктограмм для красивых изображений.
// Подгружаем объект простых печатных символов var symbols = require('@amperka/basic-font').font; // Настраиваем интерфейс I2C и подключаем библиотеку PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000}); var matrix = require('@amperka/led-matrix').connect(PrimaryI2C); // Печатаем символы в строке 'Amperka' var amperka= 'Amperka'; var index = 0; setInterval(function() { // записываем символ под номером index в строке 'Amperka' var char = amperka[index]; index += 1; if (index == 7) index = 0; matrix.print(symbols[char]); }, 200);
Функции модуля
Создаёт новый объект Matrix. Параметры функции:
i2c
— i2c, к которому подключен модульopts
— объект дополнительных параметров: Полеaddress
задаёт адрес модуля, если он отличается от стандартного. Можно подключить до четырёх модулей с разными адресами. Стандартный адрес0x60
. Допустимые адреса:0x60
,0x61
,0x62
,0x63
.
Класс для подключения матрицы. Для создания нового объекта, используйте функцию connect
.
Выводит изображение на матрицу. Изображение передаётся в массиве из 8 целых чисел. Каждое число — строка матрицы. Разряд числа — столбец. Нумерация строк и столбцов с 0 до 7.
// создаём массив «пикселей». Нарисуем английскую букву F. var picture = [ 0b11111100, 0b11111100, 0b11000000, 0b11111100, 0b11111100, 0b11000000, 0b11000000, 0b11000000 ]; // Нарисует matrix.print(picture);
Редактор пиктограмм создаёт массив изображений. Каждое доступно по индексу.
// скопировали массив из редактора var pictures = [ [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10], [0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10], [0x00, 0x00, 0x00, 0x28, 0x10, 0x10, 0x00, 0x00], [0x00, 0x00, 0x46, 0x28, 0x04, 0x08, 0x00, 0x00], [0x20, 0x92, 0x46, 0x00, 0x03, 0x00, 0x00, 0x00], [0x20, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00] ]; // Рисуем GIF`ку var frame = 0; setInterval(function() { matrix.print(pictures[(frame++) % pictures.length]); }, 100);
Изменяет изображение по одном пикселю. Если state == 1
, зажжёт светодиод в строке x
в столбце y
. Погасит светодиод, если state == 0
. Начало координат в верхнем левом углу.
// Закрасим нижний правый угол matrix.write(6, 6, 1) .write(6, 7, 1) .write(7, 6, 1) .write(7, 7, 1);
// Нарисуем квадратный бублик: закрасим всё, кроме центральных пикселей matrix.print([255,255,255,255,255,255,255,255]); matrix.write(3, 3, 0) .write(3, 4, 0) .write(4, 3, 0) .write(4, 4, 0);
Возвращает массив из 8 целых чисел, соответствующий текущему изображению на матрице.
Устанавливает яркость матрицы. Параметр value
принимает значения в диапазоне 0.0…1.0. Яркость изменяется ступенчато, всего 16 градаций. При запуске модуля яркость устанавливается примерно в половину от максимальной.
// устанавливаем яркость в 2 раза меньше максимальной matrix.brightness(0.5); // полностью выключена matrix.brightness(0); // максимум яркости matrix.brightness(1);
// меняем яркость с помощью потенциометра var brightnessControl = require('@amperka/pot').connect(A1); setInterval(function() { matrix.brightness(brightnessControl.read()); }, 100);
Устанавливает все светодиоды в выключенное состояние. Эквивалентно вызову matrix.print([0,0,0,0,0,0,0,0]);
// гасим все светодиоды matrix.clear();
Выключает матрицу, если state == false
. Включает, если state == true
. По умолчанию матрица включена.
// выключаем матрицу для экономии энергии matrix.power(false);
Включает режим эквалайзера, если state == true
, иначе переводит в обычный режим. Перед запуском необходимо вызвать функцию analogInput(true);
.
// переводим матрицу в режим эквалайзера matrix.analogInput(true).equalizer(true);
Устанавливает пин S на модуле в режим аналогово входа.
Устанавливает коэффициент усиления на аналоговом входе. Параметр value
принимает значения от 0 до 1. Усиление меняется ступенчато.
// меняем усиление эквалайзера с помощью потенциометра var gainControl = require('@amperka/pot').connect(A0); setInterval(function() { matrix.audioGain(gainControl.read()); }, 100);