Гайд по адресным светодиодным матрицам
ПРОЕКТЫ
В этом гайде речь пойдёт о матрицах из адресных светодиодных лент. Если вы не в курсе про адресные ленты, то рекомендую изучить вот эту статейку. Фишка адресной ленты в том, что мы можем управлять любым из подключенных светодиодов. Если уложить ленту так, чтобы светодиоды образовывали ровную сетку, то мы получим матрицу, у которой можно зажечь любой “пиксель”, а зажечь можно одним из 16,7 миллионов цветов и оттенков! (светодиоды RGB, яркость каждого цвета имеет 256 градаций (8 бит), соответственно для трёх цветов у нас 256*256*256=16,7 лямов, что есть привычные 24 бита цветовой глубины). То есть по сути получаем полноценный 24 битный дисплей сверхнизкого разрешения! Зачем такое разрешение в 2к18 году? Спроси у своего папы, во что он играл в детстве =)
Начнём с компонентов. Матрицу можно склеить самому, для этого понадобится адресная светодиодная лента, например самая популярная на чипах WS2812b. Да, сейчас есть уже более новая WS2813, но для наших целей она преимуществ не имеет. Целесообразно брать ленту с плотностью пикселей 60 светодиодов на метр для маленьких матриц (ячейка 1.7×1.7 см) и 30 светодиодов на метр для больших матриц (ячейка 3.3×3.3 см). Также есть светодиодные модули по типу “гирлянды”, их можно брать для ОЧЕНЬ БОЛЬШИХ матриц (ячейка 12×12 см). Рассмотрим матрицу 20×10 светодиодов: из ленты 60 LED на метр размер матрицы будет 34×17 см, из 30 LED на метр – 66×33 см, и из модулей – 240×120 см.
Также хитрые китайцы уже продают готовые матрицы нескольких размеров, причём очень выгодно: матрица 16×16 стоит 1500р, она состоит из 256 диодов с плотностью 100 штук на метр. Лента такой же плотности стоит 1000р за метр (за 100 светодиодов). Для склейки матрицы размером 16×16 понадобится 2.5 метра ленты, то есть 2500р. А готовая матрица стоит на 1000р дешевле. Абсолютно то же самое касается матрицы 32×8 пикселей. Есть ещё готовая матрица 8×8, она стоит 300р. И вот она выходит уже не так выгодно =) Для питания матрицы нужен блок питания на 5V, по току расскажу дальше. Ссылок оставляю несколько, ищите выгодные предложения и скидки (P.S. Я закупаюсь в BTF-Lighting)
ВАЖНО! Чем больше матрица, тем больше места занимает прошивка в памяти. Для прошивки GyverMatrixOS:
- В Arduino Nano/UNO/Pro Mini при использовании всех эффектов и режимов очень впритык вмещается матрица 16х16 (256 диодов), возможны зависания и перебои в работе;
- В Arduino Leonardo/Micro/Pro Micro вмещается около 400 светодиодов (матрица 20×20);
- В Arduino Mega вмещается около 1700 светодиодов (матрица 40×42)
- В ESP8266/NodeMCU/Wemos вмещается ГОРАЗДО больше светодиодов, но нужно понимать, что скорость обновления ленты зависит от количества светодиодов, и при 500 диодах будет 60 кадров в секунду (fps), при 1000 будет 30 fps, при 2000 будет 15 fps, т.е. ощутимые глюки в быстрых эффектах.
СБОРКА
Начнём с типов соединения матрицы, их всего два: последовательный и параллельный, + совмещённый вариант по питанию. Плюсы и минусы указаны на рисунке, для больших матриц предпочтительнее использовать параллельный тип, так гораздо лучше организуется питание. Но вот с ответвлениями силовых проводов придётся повозиться. Если делать матрицу из гирлянды модулей, то естественно проще сделать её зигзагом. Но обязательно проверить на разной яркости и убедиться, что тока хватает дальним светодиодам (при просадке напряжения заданный белый цвет уходит в желтизну (небольшая просадка) или в красный (сильная просадка напряжения). В этом случае питание нужно будет продублировать толстыми проводами к каждому отрезку ленты (к каждой строке матрицы).
Матрица подключается к Arduino согласно гайду об адресной ленте, далее идёт выжимка из него. Важные моменты:
- Логический пин Arduino соединён с пином DIN ленты (матрицы) через резистор с номиналом 220 Ом (можно брать любой в диапазоне 100 Ом – 1 кОм). Нужен для защиты пина Ардуино от перегрузки, т.е. ограничить ток в цепи (см. закон Ома);
- GND (земля, минус) ленты обязательно соединяется с пином GND Arduino даже при раздельном питании;
- Электролитический конденсатор по питанию Arduino нужен для фильтрации резких перепадов напряжения, которые создаёт лента при смене цветов. Напряжение конденсатора от 6.3V (чем больше, тем крупнее и дороже кондер), ёмкость – в районе 470 мкФ, можно больше, меньше не рекомендуется. Можно вообще без него, но есть риск нарушения стабильности работы!
- Конденсатор по питанию ленты нужен для облегчения работы блока питания при резких изменениях яркости матрицы. Опять же можно вообще без него, но есть риск нарушения стабильности работы!
- Мощность (и максимальный отдаваемый ток) блока питания выбирается исходя из размера матрицы и режимов, в которых она будет работать. Смотрите табличку и помните о китайских амперах, т.е. блок питания нужно брать с запасом по току на 10-20%! В таблице приведены значения тока потребления ленты.
- В прошивке GyverMatrixOS версии 1.2 и выше настраивается ограничение тока системы. Как это работает: в настройках скетча есть параметр CURRENT_LIMIT, который задаёт максимальный ток потребления матрицы в миллиамперах. Ардуино будет делать расчёт на основе цветов и яркостей светодиодов и автоматически уменьшать яркость всей матрицы, чтобы не допустить превышения установленного лимита по току на особо “жрущих” режимах. Это очень крутая функция!
Чтобы матрица выглядела как мечта любителя 8-ми битной классики, нужно сделать следующее:
- Разграничить светодиоды объёмной решёткой (собрать из дерева/пластика/напечатать на 3D принтере)
- Поверх решётки положить рассеиватель (калька/бумага для запекания/полупрозрачный пластик)
- Затемнить “экран” матрицы (мусорный пакет/светлая тонировочная плёнка для окон)
2 и 3 пункт можно заменить матовым полупрозрачным тёмным плексигласом, рекламщики используют его как раз для создания светодиодных дисплеев!
Посмотреть на мою реализацию корпуса можно в видео про матрицу, файлы для 3D печати есть в архиве с проектом.
Источник
Светодиодная матрица 24×6
После того, как я изготовил матрицу 8х10, ко мне обратилось множество людей с просьбой создать матрицу большего размера, а также обеспечить запись данных в матрицу с помощью ПК. Поэтому в один прекрасный день я собрал светодиоды, которые остались после изготовления светодиодного куба, и решил все-таки сделать матрицу большего размера с учетом требований, о которых меня просили коллеги.
Ну, и чего же вы ждете? Берите светодиоды и паяльник, потому, что мы сейчас вместе будет делать светодиодную матрицу 24х6!
Шаг 1: Сбор всего необходимого
Для данного проекта вам потребуется базовый набор инструментов: паяльник, припой, щипцы, немного проволоки, кусачки, инструмент для снятия изоляции провода, а также приспособления для демонтажа, если они вам необходимы.
Для изготовления матрицы необходимо:
1. 144 светодиода
2. 24 резистора (номинал определяется по типу светодиодов, в моем случае 91 Ом)
3. Десятичный счетчик 4017
4. 6 резисторов номиналом 1 кОм
5. 6 транзисторов 2N3904
6. Длинная макетная плата
7. Arduino
8. 3 x 74HC595 регистра сдвига
10. Несколько штыревых разъемов
Шаг 2: Как это работает?
Идея работы светодиодной матрицы заключается в следующем: обычно информация разбивается на небольшие части, которые затем передаются одна за другой. Таким способом вы может сэкономить множество выводов на Arduino и сделать вашу программу достаточно простой.
Теперь пришло время задействовать 3 сдвиговых регистра, которые умножают несколько выходов и позволяют сэкономить множество выводов arduino.
Каждый сдвиговый регистр имеет 8 выходов и вам нужно только 3 вывода arduino для контроля почти неограниченного числа сдвиговых регистров.
Мы также будем использовать десятичный счетчик 4017 для сканирования рядов. С помощью него можно сканировать до 10 рядов, поскольку у вас есть только 10 выходов, однако для контроля их необходимо всего лишь 2 вывода.
4017 — это очень полезная микросхема. Ознакомиться с ее работой можно по сноске
Как я сказал ранее, сканирование выполняется с помощью десятичного счетчика 4017, посредством подсоединения одного ряда к земле за один раз и пересылки данных через сдвиговые резисторы в колонки.
Шаг 3: Схемное решение
Единственными элементами, которые я не указал на схеме, являются резисторы ограничения тока, поскольку их номинал зависит от типа используемых светодиодов. Поэтому их величину вам необходимо вычислить самостоятельно.
Для расчета величин 24 резисторов перейдите по следующей ссылке: LED-калькулятор.
Сначала необходимо посмотреть спецификацию светодиодов, чтобы узнать прямое напряжение и прямой ток. Эту информацию можно узнать у продавца. Схема работает от напряжения 5В. Следовательно, вам необходим источник питания напряжением 5В.
Загрузите оригинальный файл, чтобы более подробно изучить схему (нажмите на схему для увеличения изображения).
Я также добавил макет печатной платы управления. Данный макет изготовлен благодаря инструментальному средству Willard 2.0.
Шаг 4: Пайка светодиодов
Пайка 144 светодиодов для создания матрицы может оказать трудной задачей, если вы не знаете наверняка, как это сделать.
Последний раз я паял матрицу, используя много проволочных джамперов, которые очень тяжело припаивались. Поэтому в этот раз я более творчески подошел к данной проблеме.
Вам необходимо согнуть вниз положительный вывод светодиода по направлению к другим выводам и сделать ряд, затем отрезать неиспользуемую часть вывода, и попытаться сделать эти соединения низкими, насколько это возможно. Далее аналогично выполнить эту процедуру для всех положительных выводов.
Теперь отрицательные выводы соединены в колонку и их пайка затруднена из-за положительного ряда на их пути. Поэтому вам необходимо согнуть отрицательный вывод на 90 градусов, затем сделать мостик над положительным рядом к следующему отрицательному выводу и так далее для остальных светодиодов.
Я не стану объяснять, как припаивать сдвиговые регистры и остальные компоненты, поскольку у каждого есть свой стиль и методы работы.
Шаг 5: Программирование матрицы
Вот мы и подошли к последнему этапу нашего проекта – программированию матрицы.
До этого я уже написал две программы, которые имеют много общего.
Я добавил программу, которая получает слово или предложение от последовательного монитора IDE arduino и отображает его на матрице. Код программы достаточно простой и не претендует на лучший в мире, но он действительно работает. Вы можете написать свой код или изменить мой на свое усмотрение.
Я приложил файл в формате excel, чтобы вы смогли создать свои собственные знаки и символы.
Вот как это работает:
Создайте требуемый символ пиксель за пикселем (не беспокойтесь, это очень легко) и скопируйте выходную строку следующим образом — #define
В дальнейшем я планирую добавить код для анимации, когда у меня появится больше времени.
Шаг 6: Устройство готово!
Поздравляю! Вы самостоятельно сделали матрицу a 24×6 и теперь можете оперативно выводить на нее все, что вам нужно.
Теперь вы можете протестировать матрицу, придумать новые программы или улучшить интерфейс.
Источник
САМОДЕЛЬНАЯ СВЕТОДИОДНАЯ МАТРИЦА
Можно предположить, что самым простым (и часто первым) устройством на базе Arduino является автомат световых эффектов. В конце концов, нельзя просто так взять и не собрать автомат световых эффектов на Arduino.
Однако, просто подключить два десятка светодиодов к портам платы Arduino не очень продуктивно. Гораздо интереснее подключить к данной аппаратной платформе светодиодную матрицу. Разумеется, светодиодные матрицы существуют и достаточно широко используются, но, как правило, они собраны из светодиодов одного цвета свечения. Автору показалось интересным изготовить матрицу из разноцветных светодиодов. Основой устройства послужила макетная плата.
На нее установлено 8 столбцов, каждый из которых состоит из 5 светодиодов с различными цветами свечения. По сути, матрица представляет собой систему вертикальных и горизонтальных проводников, соединенных в узлах сетки через светодиоды. Таким образом, если подать на заданный столбец высокий логический уровень, а на строку низкий, то загорится светодиод, расположенный на пересечении заданного столбца и строки. Светодиоды подключаются через резисторы R1-R8 сопротивлением 300 Ом.
Очевидным преимуществом подобного способа включения является, то что к ограниченному количеству портов можно подключить гораздо больше датчиков или исполнительных устройств.
В данном случае к 13 портам удалось подключить 40 светодиодов.
Предложенная программа LEDM86 иллюстрирует работу матрицы. В программе имеется функция ST_, в которой сначала принудительно гасятся все светодиоды, а затем по заданному номеру строки и столбца зажигается один светодиод. В качестве иллюстрации в программе осуществляется зажигание одного светодиода по указанным координатам, проход бегущего огня по одной строке и проход бегущего огня по всей матрице.
Видео работы матрицы
Практически такую матрицу можно использовать для имитации работы телевизора. Разноцветная, хаотическая подсветка темной комнаты может создать у квартирных воров впечатление, что в помещении включен телевизор, а значит хозяева дома. При этом возможности Arduino позволяют включать светодиоды по достаточно сложному алгоритму, так что бы создавалось впечатление того, что в темной комнате работает телевизор, картинка на котором постоянно изменяется. Автор — Denev.
Форум по обсуждению материала САМОДЕЛЬНАЯ СВЕТОДИОДНАЯ МАТРИЦА
Схема усилителя и микрофона из пьезоэлемента, подходящая для сборки своими руками.
Как управлять подъемным электромагнитом — теория и практика создания схемы подходящего контроллера для этих целей.
Модуль драйвера BLDC двигателя жесткого диска — принципиальные электрические схемы включения и обзор готовых блоков.
Источник