Ргб матрица ардуино

Светодиодная RGB Матрица 64×32

Воспользуйтесь цветной светодиодной панелью для создания рекламы в вашем магазине.

Видеообзор

Общие сведения

Светодиодная панель выполнена в пластмассовой рамки. С лицевой стороны расположены 2048 RGB-светодиодов в виде сетки, а с обратной — печатная плата с электронными компонентами.

На рамке корпуса с обратной стороны расположены отверстия под винт М3 для крепления матриц между собой или установкой в корпус.

Матрица фактически разделена на два блока: верхние 16 строк и нижние 16 строк. В верхний блок данные поступают через сигналы R1 , G1 и B1 , а в нижние — через R2 , G2 и B2 .

Одновременно светится только одна строка каждого блока. Для полноценного свечения организована развёртка и данные передаются динамически. Фактически в каждом блоке расположен сдвиговый регистр с выбором адреса на строку.

Сигналом LAT сигнализируем, чтобы сдвиговый регистр принял строку данных. Дальше в цикле 16 раз выставляем данные (R1,G1,B1,R2,G2,B2) и запихиваем их низким импульсом CLK. Сразу в оба сдвиговых регистра.

Входами A, B, C, D выбираем строку отображения. А точнее две строки верхнего и нижнего блока.

Сигнал поступает на вход панели, через буферные микросхемы транслируется дальше, к следующим панелям. Попутно сигнал ответвляется и попадает на контроллеры ICN2012, которые уже управляют драйверами DP5020B. Светодиоды соединены в матрицу и соответственно есть горизонтальные и вертикальные линии.

Каждый из драйверов получает как сигнал включения светодиода, так и команду управления его яркостью свечения, так управляются светодиоды.

Источник

Светодиодная панель с Arduino

Светодиодные матрицы не содержат на борту микроконтроллеров, памяти и контроллеров ШИМ. По принципу своей работы панели рассчитаны на использования технологии «CPLD» или «FPGA». Arduino Mega 2560 удалось адаптировать для управления матрицей, но для полной раскачки панели вам необходимо найти более высокоскоростной контроллер.

Видеообзор

Что понадобится

Подключение и настройка

Шаг 1

Подключите 16-проводной шлейф к входному сигнальному разъёму матрицы DATA IN .

Шаг 2

С помощью проводов «папа-папа» подключите второй конец шлейфа к платформе Arduino Mega 2560.

Номера пинов изменять нельзя

Вывод шлейфа Вывод Arduino Mega
R1 24
G1 25
B1 26
GND GND
R2 27
G2 28
B2 29
GND GND
A A0
B A1
C A2
D A3
CLK 11
LAT 10
OE 9
GND GND

Шаг 3

Подключите питание на светодиодную матрицу через силовой шнур. Один конец провода к блоку питания, а второй — в разъём POWER на матрице. Каждая LED панель питается строго от 5 вольт. Потребление тока зависит от вида матрицы.

Рекомендуем использовать блок питания с выходным напряжением 5 вольт и током не менее 4 ампер. Идеально подойдёт блок питания с выходным напряжением 5 вольт и током 5 ампер.

При подключении нескольких светодиодных панелей, соответственно увеличивайте запас по току в N-раз, где N — количество матриц в цепочке.

На схеме матрицы нет встроенного регулятора напряжения. При подаче напряжения более 5 вольт — вы убьёте LED панель.

Железо собрано. Теперь можно переходить к примерам работы.

Примеры работы

Для работы примеров скачайте и установите библиотеки RGBmatrixPanel,Adafruit_BusIO и Adafruit GFX через менеджер библиотек Arduino.

Тест матрицы

Для начала сделаем простой тест светодиодов «битых пикселей» на матрице.

Вывод геометрических фигур

Методы библиотеки легко позволяют выводить геометрические фигуры.

Анимация шариков

Заставим фигуры двигаться и отталкиваться от стен.

Вывод текста

Матрицы идеально подходят для объявлений и рекламных вывесок. Выведем цветной и яркий текст.

Бегущая строка

Добавим тексту движения — сделаем бегущую строку.

Источник

Arduino.ru

Arduino и RGB светодиодная матрица 8х8

В этом проекте автор покажет, как можно подключить полноцветную светодиодную матрицу 8×8 к Arduino. Сама матрица имеет 32 входа: 8 анодов, 8 катодов красного цвета, 8 зеленого и 8 синего. При этом для управления матрицей будут задействованы всего 3 выхода на Arduino. Никакой магии тут нет, а есть 4 сдвиговых регистра 74HC595.

Более подробно об использовании 74HC59 с Arduino можно почитать в инструкции Использование сдвигового регистра 74HC595 для увеличения количества выходов.

Один регистр дает нам 8 выходов, так как у нашей матрицы 32 входа, в проекте использована техника каскадирования сдвиговых регистров. Нам понадобится 4 регистра 74HC59, при этом количество подключений к Arduino не изменится и будут задействованы 3 выхода на Arduino.

В процессе сборки на плате быстрого прототипирования выяснилась интересная особенность светодиодной матрицы. Прямое напряжение для красных светодиодов несколько ниже, чем для зеленных и синих. Выход был найден в подключении красных катодов через ограничительные резисторы 330 ом, тогда как катоды синих и зеленых были подключены через 220-омный резистор.


На схеме синий, зеленый и желтый провода идут к выходам Arduino.

Как пишет автор, его управляющий код для Arduino практически полностью повторяет код другого автора, который он и приводит.

Управление светодиодов использует внутренний обработчик прерываний (Interrupt Service Routine (ISR)). Подробнее про прерывания на Arduino можно почитать здесь (англ.). Использование обработчика прерываний позволяет нам обновлять матрицу вне основного цикла программы, как бы в параллельном процессе.

Каждый RGB-светодиод состоит из трех светодиодов: красного, зеленого и синего. У каждого светодиода два состояния: «включен» и «выключен». Если включить два цвета, то мы получим промежуточные цвета, но их всего семь (R, G, B, RG, RB, GB, RGB). Для того чтобы получить широкий охват цветов, используется широтно-импульсная модуляция (ШИМ).

В дополнение видео, здесь автор пошел еще дальше — он управляет описанной выше сборкой программы на Processing языке.

Источник

LED-матрица 8×8

Матричный светодиодный индикатор состоит из нескольких рядов и столбцов светодиодов, которыми можно управлять по отдельности или группами.

Светодиодные матрицы бывают одноцветными, двухцветными и RGB (позволяют получать любой цвет). /p>

Очень популярна разновидность матричного индикатора, имеющего восемь рядов и восемь столбцов с красными или зелёными светодиодами (общее число 64). Все светодиоды в матрице соединены по схеме с общим катодом.

Принципиальная схема выглядит немного запутано.

Fritzing: led matrix display

Если смотреть с обратной стороны матрицы, вывод 1 будет находиться справа внизу. Иногда у вывода можно увидеть маленькую цифру 1. Либо имеется дополнительная выемка на стороне матрицы. Выводы нумеруются в направлении по часовой стрелке (если смотреть со стороны выводов), то есть вывод 8 находится слева внизу, а вывод 16 — справа вверху.

Если смотреть со стороны матрицы, то первый вывод будет в левом нижнем углу, затем нумерация идёт против часовой стрелки.

Пробное подключение

У матрицы шестнадцать выводов, что представляет определённую проблему при прототипировании. Приходится задействовать практически все выводы платы. Но так как все светодиоды в матрице независимы, мы можем поиграться с одной. Соединим матрицу с платой по следующей схеме: вывод 9 от матрицы соединяем с выводом 2 на плате, а вывод 13 от матрицы с GND через резистор.

При таком подключении мы задействуем самый верхний левый светодиод матрицы. Запускаем скетч мигания светодиодом Blink, чтобы увидеть работу одного светодиода.

В реальных проектах мы должны соединить все выводы матрицы. Так как их шестнадцать, то кроме цифровых портов нам нужно задействовать и аналоговые, которые могут работать как цифровые. В этом случае порт A0 становится 14, A1 — 15 и т.д. Соединив все выводы матрицы, можно включить нужный светодиод, подавая HIGH на вывод ряда и LOW на вывод столбца. Включим светодиод из второй строки и первой колонки.

07.Display: RowColumnScanning

В состав Android IDE входит пример для светодиодной матрицы File | Examples | 07.Display | RowColumnScanning. Суть в следующем — с помощью двух потенциометров считываем показания с аналоговых выводов в интервале от 0 до 7. Показания от первого потенциометра указывают на вывод из ряда, а от второго на вывод из колонки матрицы. Таким образом, мы можем крутить ручки двух потенциометров и выбирать, какой светодиод из матрицы следует включить.

Я предлагаю упростить пример. Уберём потенциометры и удалим функцию readSensors() из скетча. Теперь, чтобы включить любой светодиод, нужно указать номер ряда и номер колонки в двумерном массиве и подать на него LOW.

Включим светодиоды по диагонали.

Бегущие огни

Модифицируем скетч, чтобы создать анимацию бегущих огней (источник).

Создаём битовую карту для символов

Можно заранее подготовить некоторые наборы включённых и выключенных светодиодов для отображения символов. Сделаем карту для символов A, B, C, D, E.

Управление через сдвиговый регистр

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

Находим выводы 1 и 16 с помощью мультиметра

Если у вашей LED-матрицы нет маркировки, то определить выводы 1 и 16 можно с помощью мультиметра. Включите его в режим прозвонки диодов и приставьте щупы к крайним выводам в разных комбинациях. Одна из комбинаций включит светодиод (5 ряд, 8 столбец). Красный щуп укажет на первый вывод, чёрный — на 16.

Матрица с драйвером MAX7219

Существует более удобный вариант матрицы с драйвером MAX7219 в виде отдельного модуля. Есть полностью готовые модули, а есть вариант, когда детали поставляются в разобранном виде и нужно самостоятельно паять.

Благодаря применению SPI модуль имеет только пять выводов с двух сторон: питание, земля и три цифровых вывода.

Модули можно соединять между собой, получая большое табло.

Сначала попробуем вариант включения любого светодиода матрицы вручную. В коде используются несколько функций. Для одиночного модуля вызываем функцию maxSingle(). Если используется несколько модулей, то уберите комментарии с вызовов функций maxAll(), maxOne().

При вызове функции maxSingle() в первом аргументе указываем номер ряда, во втором число в степени двойки — 1, 2, 4, 8 и т.д.

Драйвер MAX7219 и библиотека LedControl

Управлять светодиодной матрицей можно не только самостоятельно, но и с помощью различных библиотек. Одна из таких библиотек LedControl (не обновляется с 2015 года). Библиотека доступна через менеджер библиотек (LedControl by Eberhard Fahle Version 1.0.6).

Основные функции библиотеки: setLed(), setRow(), setColumn().

Синтаксис функции setLed():

В параметре add указывается адрес матрицы. Если матрица одна, то значение должно быть равно 0.

Параметр row отвечает за ряд, параметр col за столбец. Параметр state отвечает за состояние светодиода: true или 1 включает его, а false или 0 — выключает.

Функции setRow(addr, row, value) и setCol(addr, column, value) работают непосредственно с рядами или столбцами.

Скетч с применением библиотеки. Будет запущена небольшая анимация.

Хотя в предыдущем примере использовались порты 2, 3 и 4, принято для матрицы использовать порты 9 (CS), 11 (DIN), 13 (CLK) или другие варианты. Ещё один скетч, который будет поочерёдно выводить смайлики трёх видов: грустный, нейтральный, весёлый.

Дополнительные материалы для изучения библиотеки доступны на отдельном сайте.

Визуальный редактор

Рассмотрим ещё один пример создания бегущей строки со словами «Я ❤ кота». Символы для фразы уже подготовлены. Вы можете создать собственные символы и добавить в код.

Редактор для создания собственных символов для матрицы с драйвером MAX7219

Источник

Adblock
detector