Подключение RGB матрицы к STM32

Введение

Хотите создать яркую вывеску, информационный экран или интерактивную арт-инсталляцию? Светодиодная RGB матрица идеально подходит для этих задач. Из этого руководства вы узнаете, как подключить матрицу к микроконтроллеру STM32, а программу напишем в среде разработке Arduino IDE.

Необходимые детали

Компонент Количество Купить
1 Отладочная плата STM32F411 1 шт Авито | AliExpress | RobotChip
2 Блок питания AC-DC, 5В, 3А 1 шт Авито | AliExpress | RobotChip
3 RGB матрица 64х32 1 шт Авито | AliExpress | RobotChip
4 Провод DuPont 16 шт Авито | AliExpress | RobotChip

Технические параметры

  • Разрешение: 64×32;
  • Цвет: RGB;
  • Количество светодиодов «пикселей»: 2048;
  • Тип светодиодов: SMD2121;
  • Шаг пикселя: 4 мм;
  • Номинальное напряжение: 5 В;
  • Максимальный ток: до 4 А;
  • Интерфейс матрицы: HUB75;
  • Структура пикселя: 1R1G1B;
  • Режим сканирования: 1/16;
  • Яркость: ~1200 кд/м²;
  • Углы обзора: 160°;
  • Габариты: 256×128×15 мм.

Описание

Панель RGB матрицы представляет собой модуль, на котором распаяна сетка из множества светодиодов. Они выпускаются в различных форм-факторах с разным количеством пикселей (16×32, 32×32, 64×32 и другие), так-же разделяются по классу защиты IP для эксплуатации на улице или внутри зданий. В статье буду использовать стандартную матрицу для помещений, размером 64×32.

Давайте разберём матрицу подробнее: корпус выполнен из пластмассовой рамки. На передней части расположено 2048 RGB-светодиодов, которые закрыты пластиковой защитой. На обратной стороне расположен текстолит с радиодеталями и винтовые крепления М3 (по контуру).

Принцип работы прост: матрица разбита пополам на 16 верхних и 16 нижних строк. У каждой половины свои сигнальные выводы: для верхней это R1,G1,B1, для нижней — R2,G2,B2. Одновременно может гореть всего одна строка сверху и одна снизу. Контроллер очень быстро перебирает все 16 пар строк по очереди, обновляя картинку десятки раз в секунду — глаз этого не замечает и видит цельное изображение.

Чтобы включить определённый светодиод, сначала пинами A, B, C и D мы выбираем, какую именно пару строк будем сейчас отрисовывать. Затем сигналом LAT подготавливаем регистры к приёму данных. После этого быстрым потоком передаём биты цвета (R1, G1, B1, R2, G2, B2), подтверждая каждый байт тактовым сигналом CLK

Назначение контактов

Интерфейсный разъем:
Подключение к контроллеру осуществляется через пару стандартных 16-пиновых колодок HUB75. Крайне важно не перепутать направление передачи данных: кабель от контроллера всегда вставляется в разъём с маркировкой IN. Со второго разъёма (OUT) сигнал уходит на вход следующей матрицы.

  • Входной разъём — DATA IN
  • Выходной разъём — DATA OUT

Назначение каждого контакт:

Вывод Обозначение Описание
1 R1 Сигнал данных красного цвета для верхней половины матрицы
2 G1 Сигнал данных зелёного цвета для верхней половины матрицы
3 B1 Сигнал данных синего цвета для верхней половины матрицы
4 GND Земля
5 R2 Сигнал данных красного цвета для верхней половины матрицы
6 G2 Сигнал данных зелёного цвета для верхней половины матрицы
7 B2 Сигнал данных синего цвета для верхней половины матрицы
8 GND Земля
9 A Выбор строки
10 B Выбор строки
11 C Выбор строки
12 D Выбор строки
13 CLK Тактовый сигнал для согласования скорости передачи
14 LAT Управляющий сигнал
15 OE Пин контроля отображения свечения всего дисплея
16 GND Земля

Разъем питания:
Питание подаётся через четыре контакта: линии питания (VCC) и земли (GND), которые продублированы для увеличения нагрузочной способности по току

  • VCC — питание матрицы 5В
  • GND — земля матрицы

Каждая RGB матрица питается от источника постоянного тока напряжением 5 Вольт. При одновременном включении всех RGB-светодиодов на полной яркости матрица потребляет ток до 4 Ампер, нужно это учитывать при выборе блока питания.

Подключение

Давайте соберём схему подключения RGB матрицы 64×32 к плате STM32F411. Для этого необходимо соединить выводы A, B, C и D подключить к портам PB6, PB5, PB4 и PB3 соответственно; сигнал разрешения выхода nOE — к выводу PB0; тактовый сигнал CLK — к выводу PA0. Цветовые каналы нижнего регистра R1, G1 и B1 подключаются к выводам PA0, PA1 и PA2, а цветовые каналы верхнего регистра R2, G2 и B2 — к выводам PA3, PA4 и PA5. Питание самой матрицы следует подключить к источнику напряжения 5 Вольт.

Таблица подключения

Вывод STM32F411 RGB матрица
1 R1 PA0
2 G1 PA1
3 B1 PA2
4 GND GND
5 R2 PA3
6 G2 PA4
7 B2 PA5
8 GND GND
9 A PB6
10 B PB5
11 C PB4
12 D PB3
13 CLK PA0
14 LAT PB7
15 OE PA0
16 GND GND

В данной статье я использую плату Black Pill на базе микроконтроллера STM32F411CEU6. После установки поддержки платы в Arduino IDE необходимо настроить параметры проекта во вкладке «Инструменты» следующим образом.

Установка библиотеки

Для работы, будем использовать библиотеку «DMD_STM32» скачать можно используя интегрированную среду разработки Arduino IDE», для этого откройте «Скетч → Подключение библиотеки → Менеджер библиотек…», так же выложу библиотеки в конце статьи или скачайте с GitHub.

В строке поиска введите «DMD_STM32» и нажмите «Установить »

Для работы библиотеки необходимо установить зависимые библиотеки, нажимаем «Установить все»

Программа для передатчика

Ниже приведён исходный код передатчика, переведен и удалено лишние (пример dmd_rgb из библиотеки), загрузите скетч в плату STM.

Не буду описывать весь код, добавил небольшое описание в самом коде, можно подключать несколько RGB матриц, для этого необходимо изменить два параметра.

Полезные ссылки

Описание
1 Библиотека для работы с RGB матрицей «DMD_STM32_1.2.16» Скачать
2 Библиотека «Adafruit GFX v.1.12.6» Скачать
2 Библиотека «Adafruit_BusIO v.1.14.7» Скачать

О нас Сергей

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *