====== Светодиодная RGB матрица 4×4 (Troyka-модуль) ======
{{ :продукты:troyka-rgb-matrix:rgb_led_4x4.title.jpg |}}
[[amp>product/troyka-rgb-led-4x4?utm_source=man&utm_campaign=rgb-4x4&utm_medium=wiki|RGB Matrix]] — цепочка из шестнадцати цветных светодиодов, собранная на одноюнитовом модуле.
===== Видеообзор ======
{{youtube>tcJzxudYORY?large}}
===== Подключение и настройка =====
RGB-матрица общается с управляющей электроникой по [[сенсоры:3-провода|трём проводам]]. При подключении к [[amp>collection/arduino?utm_source=man&utm_campaign=rgb-4x4&utm_medium=wiki|Arduino]] или [[amp>product/iskra-js?utm_source=man&utm_campaign=troyka-rgb-matrix&utm_medium=wiki|Iskra JS]] удобно использовать [[amp>/product/arduino-troyka-shield?utm_source=man&utm_campaign=rgb-4x4&utm_medium=wiki|Troyka Shield]].
{{ :продукты:troyka-rgb-matrix:troyka-rgb-matrix_scheme_troykashield.png |}}
С [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=rgb-4x4&utm_medium=wiki|Troyka Slot Shield]] можно обойтись без лишних проводов.
{{ :продукты:troyka-rgb-matrix:troyka-rgb-matrix_scheme_troykaslotshield.png |}}
===== Примеры работы =====
==== Пример работы для Arduino ====
// библиотека для работы с RGB-матрицей
#include
// номер пина, к которому подключена RGB-матрица
#define MATRIX_PIN 4
// количество светодиодов в матрице
#define LED_COUNT 16
// создаём объект класса Adafruit_NeoPixel
Adafruit_NeoPixel matrix = Adafruit_NeoPixel(LED_COUNT, MATRIX_PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
// инициализация RGB-матрицы
matrix.begin();
}
void loop()
{
// заполняем RGB-матрицу по сегментам «бегущий огонь» красного цвета
colorWipe(matrix.Color(255, 0, 0), 50);
// заполняем RGB-матрицу по сегментам «бегущий огонь» зелёного цвета
colorWipe(matrix.Color(0, 255, 0), 50);
// заполняем RGB-матрицу по сегментам «бегущий огонь» синего цвета
colorWipe(matrix.Color(0, 0, 255), 50);
// гасим RGB-матрицу по сегментам «бегущая тень»
colorWipe(matrix.Color(0, 0, 0), 50);
}
// функция заполнения каждого сегмента
void colorWipe(uint32_t c, uint8_t wait)
{
for (uint16_t i = 0; i < matrix.numPixels(); i++) {
// заполняем текущий сегмент выбранным цветом
matrix.setPixelColor(i, c);
matrix.show();
// ждём
delay(wait);
}
}
После прошивки управляющей платформы, вы увидите заполнение по очереди каждого светодиода матрицы из красного, зелёного и синего цветов.{{ :продукты:troyka-rgb-matrix:troyka-rgb-matrix_scheme_troykaslotshield.gif?nolink |}}
==== Пример работы для Iskra JS ====
Iskra JS использует для работы с модулем пин SPI MOSI, поэтому подключать модуль следует к пину ''P3'':
{{ :продукты:troyka-rgb-matrix:troyka-rgb-matrix_scheme_troykashieldjs.png?nolink |}}
SPI1.setup({baud:3200000, mosi:P3, sck:A5, miso:P2});
var length = 16;
var matrix = require('@amperka/led-strip').connect(SPI1, length, 'GRB');
// гасим все светодиоды
matrix.clear();
setInterval(function() {
for (var i = 0; i < length; i++) {
// выбираем произвольную интенсивность красного цвета
var redTone = Math.random();
// устанавливаем цвет светодиода
matrix.putColor(i, [redTone, 0, 0]);
}
// применяем изменения
matrix.apply();
}, 1000);
===== Элементы платы =====
{{ :продукты:troyka-rgb-matrix:troyka-rgb-matrix_annotation.png |}}
==== RGB-светодиод SK6812 ====
SK6812 представляет собой RGB-светодиод со встроенным контроллером. Протокол управления этим светодиодом аналогичен протоколу популярной микросхемы WS2812.
==== Буфер преобразования логических уровней =====
Необходим для сопряжения устройств с разными напряжениями логических уровней. Родное напряжение модуля — 5 В, но он будет отлично работать и с Iskra JS, рабочее напряжение которой 3,3 В.
==== Перемычки выходных пинов ====
Соедините капелькой припоя контакты специальных перемычек на модуле. Это позволит соединить несколько RGB-матриц последовательно.
Использовать модуль совместно с [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-rgb-matrix&utm_medium=wiki|Troyka Slot Shield]] безопаснее с нераспаянными перемычками.
==== Контакты подключения трёхпроводных шлейфов ====
//Входная группа контактов//
* Сигнальный (DI) — цифровой вход первого RGB-светодиода. Подключите к любому цифровому пину микроконтроллера.
* Питание (V) — питание модуля. Соедините с питанием микроконтроллера.
* Земля (G) — земля модуля. Соедините с землёй микроконтроллера.
//Выходная группа контактов//
Используется, если требуется подключить несколько RGB-матриц в одну сигнальную линию. По умолчанию выключена. Для включения капните немного припоя на перемычки выходных пинов.
* Сигнальный (DO) — цифровой выход последнего RGB-светодиода.
* Сигнальный (V) — питание линии.
* Сигнальный (G) — земля линии.
===== Принципиальная и монтажная схемы =====
{{:продукты:troyka-rgb-matrix:troyka-rgb-matrix_schematic.png?direct&490 |}}
{{:продукты:troyka-rgb-matrix:troyka-rgb-matrix_layout_top.png?direct&150 |}}
{{:продукты:troyka-rgb-matrix:troyka-rgb-matrix_layout_bottom.png?direct&150 |}}
===== Характеристики =====
* Модуль: адресный RGB-светодиод SK6812
* Количество светодиодов: 16
* Рабочее напряжение: 3,3–5 В
* Потребляемый ток: до 0.6 А
* Габариты: 25,4×25,4 мм
===== Ресурсы =====
* [[amp>product/troyka-rgb-led-4x4?utm_source=man&utm_campaign=rgb-4x4&utm_medium=wiki|RGB-Matrix (Troyka-модуль)]] в магазине
* [[https://github.com/amperka/hardware-drawings/blob/master/troyka-rgb-matrix.svg|Векторное изображение RGB-Matrix]]
* [[https://github.com/adafruit/Adafruit_NeoPixel|Библиотека для Arduino]]
* [[/js:led-strip|Библиотека для Iskra JS]]