F6040 светодиодная матрица как подключить
Перейти к содержимому

F6040 светодиодная матрица как подключить

  • автор:

СД матрица LS для прожектора F6040-20W-220V 20W 80-90Lm (25*25mm)

Светодиодная матрица – компактный и простой в монтаже модуль, предназначенный для ремонта или замены модулей в светодиодных прожекторах, уличных и промышленных светильниках. При монтаже обязательно использование дополнительного радиатора для отвода тепла. Преимущества: — Длительный срок эксплуатации (до 50 000 часов); — Обеспечение направленного света; — Высокий уровень энергоэффективности; — Возможность применения в различных температурных условиях. Область применения: Предназначена для применения в LED-прожекторах, промышленных и уличных светильниках и прочих мощных осветительных приборах.

Входное напряжение, V AC 220 V Артикул УТ000006771 Размер, мм (Д*Ш*Т) 60 x 40 x 1.5 Мощность, Вт (Вт/м) 20 Материал корпуса алюминий Вес, гр 10.4 Световой поток, ~Lm 80 — 90 Температура эксплуатации -20 . +70

  • Комментарии

Гайд по адресным светодиодным матрицам

Версия с WiFi! Данный проект продолжил развивать vvip-68, добавилось управление по WiFi и куча всего нового! Cсылка на проект (описание, исходники), ссылка на вики проекта — куча инструкций по установке и использованию × Закрыть это предупреждение.

В этом гайде речь пойдёт о матрицах из адресных светодиодных лент. Если вы не в курсе про адресные ленты, то рекомендую изучить вот эту статейку. Фишка адресной ленты в том, что мы можем управлять любым из подключенных светодиодов. Если уложить ленту так, чтобы светодиоды образовывали ровную сетку, то мы получим матрицу, у которой можно зажечь любой “пиксель”, а зажечь можно одним из 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, т.е. ощутимые глюки в быстрых эффектах.

СБОРКА

Начнём с типов соединения матрицы, их всего два: последовательный и параллельный, + совмещённый вариант по питанию. Плюсы и минусы указаны на рисунке, для больших матриц предпочтительнее использовать параллельный тип, так гораздо лучше организуется питание. Но вот с ответвлениями силовых проводов придётся повозиться. Если делать матрицу из гирлянды модулей, то естественно проще сделать её зигзагом. Но обязательно проверить на разной яркости и убедиться, что тока хватает дальним светодиодам (при просадке напряжения заданный белый цвет уходит в желтизну (небольшая просадка) или в красный (сильная просадка напряжения). В этом случае питание нужно будет продублировать толстыми проводами к каждому отрезку ленты (к каждой строке матрицы).

blank blank

Матрица подключается к 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 печати есть в архиве с проектом.

ПРОШИВКА И НАСТРОЙКИ

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

blank

Данный тип инициализации матрицы позволяет подключать матрицу любой конфигурации с любым положением начала матрицы. Это удобно для покупных матриц, которые можно только “крутить”, так и для самодельных, когда есть какие-то особенности корпуса или укладки проводов. То есть как бы вы ни сделали и не расположили матрицу, она всё равно будет работать с корректным положением начала координат. Кстати, можно очень легко “отзеркалить” матрицу по горизонтали или вертикали, если это зачем-то вдруг нужно: просто меняете подключение на “противоположное” по желаемой оси. Например хотим отзеркалить тип подключения (1, 0) по вертикали. Настраиваем его как (2, 2) – смотрите рисунок выше. Хотим отзеркалить тип (3, 1) по вертикали – настраиваем его как (2, 3). Тип (3, 2) по горизонтали? Пожалуйста, ставим его как (2, 2). Надеюсь логика понятна.

Если вы впервые работаете с Arduino, то остановитесь и изучите вот этот гайд. После установки драйверов и библиотек можно переходить к прошивке платформы. У меня есть готовый проект с играми и эффектами, переходите на страницу проекта за подробностями и прошивками. Дальше будет информация для разработчиков, то есть тех, кто хочет написать что-то для матрицы самостоятельно!

ДЛЯ РАЗРАБОТЧИКОВ

Для работы с лентой я использую библиотеку FastLED, потому что некоторые её возможности и функции действительно fast. Для работы с матрицей я написал собственный набор инструментов, который в разы оптимальнее и быстрее того же Adafruit Neo Matrix, в связке с FastLED мой код работает просто шикарно. Вы можете скачать “чистую” версию прошивки, в которой содержатся только настройки и инструменты для работы с матрицей, этот код будет интересен энтузиастам, которые хотят написать что то под матрицу с чистого листа. СКАЧАТЬ С САЙТА. Библиотека FastLED входит в архив. 22.02.2019 вышла версия 1.1

В самом начале прошивки содержатся настройки типа матрицы и её подключения, тип подключения определяется стоя лицом к матрице. Для упрощения настройки подключения матрицы (угол и направление) используйте подсказку сверху =)

Ардуино: управление светодиодной матрицей 8×8

На предыдущих уроках мы научились управлять группой из восьми светодиодов при помощи сдвигового регистра. Это оказалось немного сложнее, чем зажигать 1-2 светодиода напрямую с выводов общего назначения. Проблема, которую нам тогда предстояло решить, заключалась в ограниченном количестве управляемых выводов у контроллера Ардуино. Апогеем же наших изысканий стало использование динамической индикации для управления сразу тремя индикаторами-цифрами. Теперь пришло время еще немного усложнить задачу: учимся работать со светодиодной матрицей.

Список необходимых компонентов

Для выполнения всех экспериментов в данном уроке, кроме самой светодиодной матрицы, потребуются: Ардуино-совместимый контроллер, сдвиговый регистр, макетная плата и немного проводов вилка-вилка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.

Матричный индикатор

Как мы уже знаем, сегментные индикаторы, будь то шкалы или цифры, состоят из отдельных светодиодов, соединенных вместе. Например, у группы светодиодов могут быть соединены все катоды. Такой индикатор имеет приписку «с общим катодом», в противном случае — «с общим анодом».

А что будет, если мы разместим светодиоды не в виде цифры или шкалы, а в виде сетки? Получится уже вполне себе графический индикатор. То есть такой, на котором можно отобразить не только число, но и какое-то изображение.

Такая сетка называется матричным индикатором, а в случае использования светодиодов — светодиодной матрицей. Разрешение матричного индикатора — это количество точек по горизонтали и вертикали. Например, самые распространенные индикаторы имеют разрешение 8×8 точек.

Светодиодная матрица на Ардуино

Если требуется светодиодная матрица с большим разрешением, то её просто-напросто составляют из нескольких 8×8 индикаторов. Как это делать, мы увидим позже. А пока разберемся как соединяются все 64 светодиода внутри матрицы.

Конечно, можно бы было как и в случае семисегментного индикатора соединить все светодиоды общим катодом или анодом. В этом случае нам бы потребовалось либо 64 вывода контроллера, либо 8 сдвиговых регистров. Оба варианта весьма расточительны.

Более правильный вариант — объединить светодиоды в группы по 8 штук с общим катодом. Пусть это будут столбцы матрицы. Затем, параллельные светодиоды в этих столбцах объединить снова в группы по 8 штук уже с общим анодом. Получится вот такая схема:

Светодиодная матрица на Ардуино, схема

Предположим, стоит задача зажечь светодиод R6C3. Для этого нам потребуется подать высокий уровень сигнала на вывод R6, а вывод C3 соединить с землей.

Светодиодная матрица на Ардуино, схема

Не выключая эту точку, попробуем зажечь другую — R3C7. Положительный контакт питания соединим с R3 и землю с C7. Но в таком случае строки R6 и R3 будут пересекаться с колонками C3 и C7 не в двух, а в четырех местах! Следовательно и зажжется не две, а четыре точки. Проблема!

Светодиодная матрица на Ардуино, схема

Очевидно, что помочь сможет всё та же динамическая индикация. Если мы будем включать точки R6C3 и R3C7 по-очереди очень быстро, то сможем использовать персистентность зрения — способность интерпретировать быстро сменяющиеся изображения как одно целое.

Светодиодная матрица и сдвиговые регистры

В нашем уроке мы будем подключать к Ардуино Уно самую простую светодиодную матрицу 8×8 красного свечения. Нумерация выводов начинается с нижнего левого угла. При этом, нумерация ног 1-16 не связана никакой логикой с нумерацией колонок и строк C и R.

Распиновка светодиодной матрицы 8x8

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

Принципиальная схема

Принципиальная схема светодиодная матрица Ардуино

Важное замечание №1. Необходимо, чтобы резисторы в этой схеме были на линиях, идущих от первого сдвигового регистра. Этот сдвиговый регистр отвечает за колонки. При таком подключении, каждый резистор будет задавать ток только для одного светодиода на каждом шаге динамического алгоритма. Следовательно, все светодиоды будут светиться равномерно.

Важное замечание №2. Указанная выше схема носит сугубо ознакомительный характер. Правильнее будет включить в разрыв между вторым регистром и матрицей дополнительную силовую микросхему, например транзисторную сборку ULN2003.

Программа

Чтобы было веселей, попробуем высветить на индикаторе смайлик. Как уже было сказано, для вывода изображения на матрицу воспользуемся динамической индикацией. А именно, будем высвечивать нашу картинку построчно. Сначала зажжем нужные колонки в самой верхней строке, затем во второй, в третьей, и так все 8 строк.

За колонки у нас будет отвечать первый сдвиговый регистр, а за строки второй. Следовательно, вывод строки будет состоять из двух последовательных записей в регистр: сначала передаем код строки, затем код точек в этой строке.

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

Исходный код

const byte data_pin = PD2; const byte st_pin = PD3; const byte sh_pin = PD4; unsigned long tm, next_flick; const unsigned int to_flick = 500; byte line = 0; const byte data[8] = < 0b00111100, 0b01000010, 0b10100101, 0b10000001, 0b10100101, 0b10011001, 0b01000010, 0b00111100 >; void latchOn() < digitalWriteFast(st_pin, HIGH); digitalWriteFast(st_pin, LOW); >void fill( byte d ) < for(char i=0; i> void setPinFast(byte pin) < DDRD |= _BV(pin); >void digitalWriteFast(byte pin, byte sig) < if( sig ) PORTD |= _BV(pin); else PORTD &= ~_BV(pin); >void setup() < setPinFast(data_pin); setPinFast(st_pin); setPinFast(sh_pin); >void loop() < tm = micros(); if( tm >next_flick ) < next_flick = tm + to_flick; line++; if( line == 8 ) line = 0; // передаем код строки fill( ~(1<<(7-line)) ); // зажигаем точки в строке № line fill( data[line] ); // открываем защелку latchOn(); >>

Основная часть этой программы, включая переменные data_pin, sh_pin, st_pin, next_flick, to_flick и функцию fill уже известны нам из уроков про сдвиговый регистр и про динамическую индикацию.

Массив data хранит восемь строк нашей картинки. Для экономии памяти мы записали каждую комбинацию точек в бинарном виде.

Функция latchOn открывает защелку регистра. Это нужно делать только после заполнения обоих сдвиговых регистров.

После загрузки программы на Ардуино, на индикаторе появится смайл.

Анимация на светодиодной матрице

А теперь доработаем программу таким образом, чтобы изображение на индикаторе менялось каждые пол секунды. Для этого вспомним еще раз урок про выполнение действий по таймеру.

const byte data_pin = PD2; const byte st_pin = PD3; const byte sh_pin = PD4; unsigned long tm, next_flick, next_switch; const unsigned int to_flick = 500; const unsigned long to_switch = 500000; byte line = 0; byte frame = 0; const byte data[2][8] = < < 0b00111100, 0b01000010, 0b10100101, 0b10000001, 0b10100101, 0b10011001, 0b01000010, 0b00111100 >, < 0b00111100, 0b01000010, 0b10100101, 0b10000001, 0b10000001, 0b10111101, 0b01000010, 0b00111100 >>; void latchOn() < digitalWriteFast(st_pin, HIGH); digitalWriteFast(st_pin, LOW); >void fill( byte d ) < for(char i=0; i> void setPinFast(byte pin) < DDRD |= _BV(pin); >void digitalWriteFast(byte pin, byte sig) < if( sig ) PORTD |= _BV(pin); else PORTD &= ~_BV(pin); >void setup() < setPinFast(data_pin); setPinFast(st_pin); setPinFast(sh_pin); >void loop() < tm = micros(); if( tm >next_flick ) < next_flick = tm + to_flick; line++; if( line == 8 ) line = 0; fill( ~(1<<(7-line)) ); fill( data[frame][7-line] ); latchOn(); >tm = micros(); if( tm > next_switch ) < next_switch = tm + to_switch; frame = !frame; >>

Загружаем программу на Ардуино и наблюдаем результат.

Масштабирование светодиодной матрицы

Светодиодная матрица с разрешением 8×8 подойдет для отображения двух цифр или простого символа. Если требуется вывести на индикатор какое-то более или менее полезное изображение, необходимо объединить матрицы. Делается это с помощью добавления новых сдвиговых регистров как по вертикали, так и по горизонтали.

Следует отметить, что быстродействия контроллера Ардуино Уно в связке со сдвиговыми регистрами хватит разве что на дисплей 16×16. Дальнейшее увеличение размеров светодиодного дисплея приведет к появлению заметного мерцания.

Задания

  • Гипноз. Запрограммировать контроллер таким образом, чтобы на светодиодной матрице с периодом в 1 секунду появлялись концентрические окружности с постоянно увеличивающимся радиусом.
  • Игра змейка. Реализовать на светодиодной матрице 8×8 такую известную игру, как змейка. В схему необходимо добавить четыре кнопки для управления направлением движения, а также зуммер для сигнализации события съедания яблок (или что там ест змея…).
  • Электронный уровень. Добавить в схему акселерометр. Написать программу, которая будет отображать на светодиодной матрице точку, координаты которой зависят от наклона всего устройства. Например, когда устройство зафиксировано параллельно земле (перпендикулярно вектору гравитации), то точка находится в центре. При наклоне электронного уровня влево, точка пропорционально смещается право.

К размышлению

Собрав схему управления матрицей, у многих может возникнуть вопрос: «Ну неужели за 30 лет никто не придумал более простого способа работы с матрицей?» На самом деле, придумали. Существуют специализированные микросхемы для работы с разными типами дисплеев, в том числе и для работы со светодиодной матрицей.

1. У нас в RobotClass как раз есть такой модуль с I2C интерфейсом. Легко подключается к Ардуино. Познакомиться с этим модулем можно на уроке «Модуль матрицы 8×8 с I2C интерфейсом от ROC«.

2. В одном из следующих уроков мы также научимся управлять индикатором с помощью микросхемы MAX7219. Такой способ позволяет легко объединять несколько матриц в один большой дисплей, без необходимости сильно усложнять электрическую схему.

Изменено: 14 Дек, 2016 14:33

Ардуино: управление светодиодной матрицей 8×8 : 14 комментариев

SoftCat говорит 30.03.2018 в 02:13 :

А почему Вы во второй программе пишите:
fill( data[frame][7-line] );
?
Ведь в первой программе было:
fill( data[line] );
То есть изображение будет перевёрнутым.

Jeremy говорит 06.12.2019 в 18:53 :

Не подскажите как выполнить второе задание «Игра змейка»? Управление положением светодиода с помощью кнопок и границы игрового поля уже реализовал, а дальше не пойму что делать, «яблоко» сдвигается вместе с змейкой.

Олег Евсегнеев говорит 10.12.2019 в 22:00 :
Вот тут есть пример кода для этой игры: https://robotclass.ru/projects/arduino-hx1230-snake-game/
можете пожалуйста поделится схемой сборки?
SoftCat говорит 30.03.2018 в 20:56 :

1) Можно примерно в 2 раза увеличить быстродействие дисплея. Нет необходимости для каждой строки передавать в регистр все 8 бит кода строки, можно передать всего один бит и сразу его защелкнуть. Поэтому эти сдвиговые регистры лучше разъединить. А еще лучше для строк использовать регистр 74HC164 без защелки:
http://easyelectronics.ru/sdvigovyj-registr.html 2) В setup() желательно установить начальные значения next_flick и next_switch, а также поменять условия проверки на
if( tm >= next_flick )
и
if( tm >= next_switch )
Это также относится к уроку «Динамическая индикация»:
http://robotclass.ru/tutorials/arduino-dynamic-led-indication/

SoftCat говорит 01.04.2018 в 20:27 :

Ваши уроки самые лучшие из всех, которые я видел в интернете. Именно благодаря им я стал внимательно разбираться.

Emmerssion говорит 21.11.2019 в 18:09 :

Первый скетч не компилируется — выдает следующию ошибку
/var/folders/qj/pm02y_4n44qbtwzxzmzs136h0000gn/T/arduino_modified_sketch_137520/sketch_nov21b.ino: In function ‘void setup()’:
sketch_nov21b:49:16: error: ‘oe_pin’ was not declared in this scope
setPinFast(oe_pin);
^~~~~~
/var/folders/qj/pm02y_4n44qbtwzxzmzs136h0000gn/T/arduino_modified_sketch_137520/sketch_nov21b.ino:49:16: note: suggested alternative: ‘sh_pin’
setPinFast(oe_pin);
^~~~~~
sh_pin
exit status 1
‘oe_pin’ was not declared in this scope

F6040 светодиодная матрица как подключить

Уважаемые покупатели, в связи с техническими работами производимыми на сайте, наш интернет магазин работает только в режиме приёма заказов — до 11 марта. Всё заказы поступающие с 24 февраля по 10 марта будут обработаны день в день, а отправлены (оплаченные) 11 марта.

  • ← 220 Вольт cветодиодные матрицы прямого включения
  1. Главная
  2. Светодиодные матрицы 10-500 Вт.
  3. 220 Вольт cветодиодные матрицы прямого включения
  4. Светодиодная матрица 6040-F2525 50Вт. 4675 лм. COB 6000K 175-265V AC pF=0.9 60×40мм. 220V

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

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