Сделать светодиодный куб. Светодиодный куб


Введение

LED Кубы появились уже давно, есть множество примеров их изготовления. На просторах интернета можно найти различные, начиная от , заканчивая большими объемными 3D LED экранами. Наиболее оптимальный размер с которого можно начать освоение их построения и программирования для начинающих это 8х8х8 (512 светодиодов), кубы меньших величин, не столь явно показывают световые эффекты, а кубы начиная уже с 16х16х16, довольно сложны в изготовлении начинающим.

В этой статье я хочу поведать создание LED Куба, размером 8х8х8, с использованием в качестве управляющего микроконтроллера, платы Arduino Pro Mini. Данная модель куба, может работать в двух режимах: световых эффектов и режим часов. Это стало возможным, благодаря интеграции в схему модуля RTC.

Принцип действия

Управление световым кубом из 512 светодиодов осуществляется посредством MOSFET-транзисторов, 64 транзистора отвечают за подачу положительного напряжения на столбцы, и 8 транзисторов за подачу отрицательного напряжения на слои. Ток (соответственно яркость) светодиода регулируется по средством 64 резисторов (R011-R641) стоящих после выхода транзисторов на столбцах. Открытие и закрытие транзисторов осуществляется при помощи сдвиговых регистров, которые в свою очередь управляются по двум линиям (отдельно столбцы и слои) платой Arduino.

Вся конструкция куба разделена на части:

  • Схема №1 или главная плата, на которой установлен сам микроконтроллер (плата Arduino), RTC модуль, SD модуль, сдвиговый регистр и MOSFET-транзисторов, отвечающие за слои;
  • Схема №2 или плата контактов, которая отвечает за крепления самого куба и открытия подачи положительного напряжения на столбцы;
  • Схема №3 или пульт, отвечает за кнопочные команды устройству;
  • Блок питания 5V (15A в данной конструкции применён такой, но поддержка такого тока не обязательна, всё зависит от тока светодиодов, смотрите ниже расчёт);
  • Сам Куб 8х8х8 из 512 светодиодов.

Блок питания подбирается из учёта питания светодиодов, так как одновременно возможно свечение только одного слоя, то есть это 64 светодиода. Если принять ток одного светодиода равным 30мА, то получаем: 30мА*64=1920мА, то есть будет достаточно 3А блока питания, для питания всей конструкции.

Схемотехника

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

Схема №1, главная управляющая плата:

Коммутационная часть, осуществляет ввод основного питания на устройство (J6). Для прошивки платы Arduino Pro Mini, служит модуль USB to TTL, который подключается через J6-1, контакты J6-J1 и J6-J2, служат для подключения питания на плату Arduino от модуля (данное питание необходимо для прошивки, если не используется блок питания). Разъем J4, служит для подключения SD карты, а J5 для подключения модуля RTC. Плата Arduino Pro Mini, подключается через, группу разъемов J1 (1-1, 1-3, 1-4). Группы разъемов J2 и J3, служат для подключения сигнальных линий для управления платами контроля питания столбцов (Схема 2), и подачи питания. Группа разъемов J7, служит для подключения клавиатуры (Схема 3). И наконец группа J8, отвечает за подключение второй части Схемы 1 (управление слоями):

Вторая часть Схемы 1, предельно проста: сдвиговый регистр, дает команды MOSFET-транзисторам (1-открыть транзистор, 0-закрыть), сдвиговый регистр, получает через линию данных команды от первой части Схемы 1.

Рассмотрим, Схему 2, она разделена на две одинаковые части, для контроля по 32 столбца каждая. Так как они абсолютно идентичны, рассмотрим только одну:

Так же как и в предыдущей схеме, сдвиговый регистр даёт команды (которые получает через линию данных от платы Arduino Pro Mini), MOSFET-транзисторам (за исключением теперь, 0-открывает транзистор, а 1-закрывает). Так же тут присутствуют на выходе с транзистора, резисторы по 250 Ом, они служат для контроля тока светодиода, и могут быть заменены на номинал более подходящий для не совсем яркого свечения (в зависимости от используемых светодиодов).

И завершающая, Схема 3, плата кнопок, где всё предельно просто:

Проверка каждого слоя перед их спайкой:

Прошивка платы Arduino Pro Mini (sketch)

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

Есть две основные функции управления сдвиговыми регистрами ("column" - заполнение столбцов и "layer_column" - выбор слоя и вызов функции "column"), обе они реализованы через функцию shiftOut. Это самый легкий способ управления регистрами, но возможно не самый быстрый. Следом идет основная функция закрашивания всего куба "cube", смысл функции заключается в том, что она последовательно и по циклу (цикл получается само собой) закрашивает каждый слой куба. В веду такой реализации происходит мерцание куба, оно ели заметное из-за быстрого микропроцессора.

Существует два режима работы куба: "Демонстрация световых эффектов" и "Отображение времени". Смена осуществляется при помощи кнопки "Mode". При первом режиме, происходит последовательное считывание с SD карты данных, далее передача выше указанным функциям. Второй режим реализован гораздо сложнее, так как все данные этого режима вшиты в микропроцессор (этим и объясняется количество строк кода). Если коротко, то данные с RTC модуля считываются и исходя из этого, опять же, выше указанным функциям отправляются соответствующие битовые переменные, для отображения на светодиодах. Так же реализована возможность настройки часов, при помощи кнопок управления, для этого достаточно в режиме часов нажать кнопку "Setup", далее при помощи кнопки "Change" менять режим (часы, минуты, дни и т.д.) и настраивать при помощи кнопок "Up" и "Down". В конце нажав на кнопку "Reset", можно сохранить настройки.

Расположение кнопок, согласно Схемы 3:

Программа создания световых эффектов (C++ Builder 6)

Чтобы создание эффектов сделать упрощенным и функциональным, а так же просмотреть заранее спроецированные эффекты, перед их записью на SD, было решено написать программу на C++, с использованием Open GL.

Исходный код для Borland C++ Builder 6, приложен к статье.

Заключение

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

Сам проект задумывался, для небольшой практики, работы с микроконтроллерами, в ходе реализации было выяснено:

  1. Электрическая часть, не представляет сложности в реализации;
  2. Спайка куба, освещена во многих других статьях, по этому я не останавливался на этом, но спаять могу сказать довольно не простое занятие (т.е. больше 1000 точек припоя);
  3. Внедрение RTC модуля, не оправдало мои ожидания, так как показ времени не совсем разборчив, это можно наблюдать на видео, единственное если сделать белый матовый корпус, тогда цифры хорошо отличимы.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Схема №1, главная плата
Плата Arduino Arduino Pro Mini 1 5V, 16MHz В блокнот
Модуль USB to TTL CP2102 1 В блокнот
Часы реального времени (RTC)

DS1307

1 В блокнот
Модуль SD card SD card 1 В блокнот
U1 Сдвиговый регистр

SN74HC595

1 В блокнот
Q1-Q8 MOSFET-транзистор

IRLR024N

8 В блокнот
R1-R8 Резистор

10 кОм

8 В блокнот
R1-R8 Резистор

3 кОм

8 В блокнот
С1-С2 Электролитический конденсатор 1мкФ 1 В блокнот
Схема №2, плата кантактов
U1-U8 Сдвиговый регистр

SN74HC595

9 В блокнот
Q1-Q64 MOSFET-транзистор

IRLML6302TR

64

Весь комплект был изначально плотно обёрнут в несколько слоёв поролона - с этим всё хорошо. Отложив стенки акрилового корпуса, в пакете с остальными компонентами увидел вложенную бумажку со ссылкой на инструкцию по сборке куба.



6. Выводы, мысли и идеи


Сборка этого куба - занятие не для слабонервных. Потребуется много усердия и терпения, чтобы его построить. На сборку я потратил два дня: один световой день у меня ушёл только лишь на формирование светодиодных сеток, и 5-6 часов следующего дня - уже на сборку всего остального. Очень хотелось поскорее его собрать.
Мои впечатления о нём в целом положительные, поскольку это не просто игрушка, а уже дорабатываемый девайс, который предлагает реальный простор для творчества благодаря поддержке Ардуино. Для меня это также возможность наглядно отточить навыки работы с массивами, без которых в серьёзных проектах уже никак не обойтись. Это различные операции, например как кольцевой сдвиг определённого диапазона элементов массива в указанную сторону, который часто применяется в навесных дисплеях для вывода бегущей строки.
Однако нашлась кучка моментов, которые мне не понравились - это реализация анализа музыкального спектра , самая лишняя и ненужная вещь здесь, но это на мой взгляд. У вас может быть иное мнение.
Функционал пульта ДУ не задействован на 100%, всего четыре рабочие кнопки - не густо.
Хотя плюсик тут есть - это возможность выключить нижнюю подсветку из экономных или эстетических соображений, т.к. у кого-то она может вызвать ощущение «китайской игрушечности». Если берёте самую дешёвую версию куба с поддержкой Ардуино и без пульта, то скорее всего отключить нижнюю подсветку уже не получится, но и тут есть выход - светодиоды можно просто выпаять потом, коснувшись толстым жалом паяльника сразу обоих выводов светодиода.
Однако задействовать все кнопки пульта вполне реально, если написать соответствующий код для Ардуино, подключив уже к нему инфракрасный приёмник и тогда можно будет, используя пронумерованные клавиши, переключаться между своими анимациями или выводом данных, например между курсами валют, температурой и временем. Правда тут уже без ESP8266 не обойтись. В общем, сам факт возможности вывода полезной информации посредством Ардуино делает куб весьма интересным для исследования и реализации полезных его свойств.

  • Питание модуля производится от модуля Arduino Nano или от внешнего блока питания (5 вольт) подключаемого к разъему на плате управления.
  • Как оказалось схемы различных производителей Arduino-подобных модулей отличаются от оригинальных Arduino NANO. Мы учли это при разработке предлагаемого расширения. Оригинальный микроконтроллерный модуль устанавливается в левые разъемы, а, например, модуль c торговой маркой DFRduino в правые разъемы. Отличия между модулями можно найти в нашей схеме.
  • Практически любой инфракрасный пульт в доме может управлять вашим кубом.

Дополнительная информация

Краткое описание библиотек для LED CUBE 4x4x4

Специально для этого проекта нами была создана библиотека для языка WIRING.
MP1051.Init() - начальная инициализация
MP1051.Brightness(B) - установка яркости свечения светодиодов, B=0...32
MP1051.Set(D1,D2,D3,D4,D5,D6,D7,D8) - управление светодиодами послойно, D1-D2 - первый слой (A1), D7-D8 - 4-й слой (A4)
MP1051.IR(T) - ожидание команды ИК-пульта в течении T ms. Возвращает: 0 - не было команды, 1 - принята команда, 2 - принят повтор
MP1051.IRAdr() - возвращает адрес ИК-посылки
MP1051.IRData() - возвращает команду ИК-посылки

Порядок сборки светодиодного куба 4х4х4.

В первую очередь необходимо подготовить выводы светодиодов.
Шаг 1. Короткий отгибаем на 90 градусов.
Шаг 2. С помощью пинцета формуем короткий так, чтобы на 3 мм. увеличился шаг между выводами.
Шаг 3. Теперь, в сторону отгибаем длинный.

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

Установите в отформованные светодиоды в отверстия платы. Сначала первый ряд.

Соедините пайкой длинные выводы.

Затем второй слой.

Спаяйте длинные во втором ряду. В третьем и четвертом.

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

Получился один слой 4 х 4.

Можно его выровнять дополнительными отрезками провода.

Делаем четыре слоя. Первый слой аккуратно устанавливаем на плату управления, вставляя выводы светодиодов в отверстия L11-L14, L21-L24, L31-L34, L41-L44. В первую очередь припаиваем угловые выводы. Выравниваем слой в одной плоскости по углам, прогревая паяльником выводы и двигая их вверх-вниз (если нужно). Как только вы убедились, что угловые светодиоды находятся в одной плоскости, припаяйте остальные выводы.
Второй слой припаивается к первому. Короткий вывод к короткому. Смотрите на рис.10 с правой стороны, в крайнем столбике хорошо видны места пайки.

Answer

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

Светодиодный куб 4х4х4 на Arduino



В этой статье описано создание светодиодного куба 4х4х4 на Arduino.

Список элементов
1. 64 Светодиода
2. 16 Резисторов
3. 1 Arduino (я использовал Arduino Pro Mini atmega328 5V 16M (заказал на ebay))

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

Расчет резистора
Номинал резистора будет зависеть от типа ваших светодиодов. Используя закон Ома U = IR, мы можем рассчитать резистор. Мы должны знать максимальный рабочий ток и падение напряжения на светодиоде. У моих светодиодов падение напряжения 3.4В и максимальный ток 20мА. На выводах Arduino 5В и мы получаем (5-3.4) / 0.020 = 80. У нас получилось значение 80 Ом, я использовал резисторы 100 Ом. Рассчитать сопротивление для светодиода вы можете на он-лайн светодиодном калькуляторе .

Основной принцип куба

Куб 4x4x4 будет содержать 64 светодиода собранных в 16 столбцов и 4 горизонтальных слоя. Аноды(+) всех светодиодов каждого столбца соединены вместе. Слои состоят из соединённых катодов светодиодов. Для управления светодиодами надо подать 5В на необходимый столбец и GND на необходимый горизонтальный слой. Для предотвращения превышения тока можно запускать только один слой и столбец одновременно. Для зажигания нескольких светодиодов или всего куба сразу мы будем использовать динамическую индикацию, т.е. переключать их с частотой больше воспринимаемой человеком. Например, если надо зажечь третий светодиод на четвертом столбце, необходимо подать на столбец HIGH (5В) и на слой LOW (0В).

Изготовление шаблона
Для сборки красивого симметричного куба нам потребуется шаблон. Это кусок доски с просверленными в нем на равном расстоянии отверстиями(я использовал кусок плотного картона ). Расстояние между отверстиями определяется длиной согнутого катода светодиода. Длина согнутого катода моего светодиода оставляет около 25мм, поэтому я взял расстояние между светодиодами примерно 23мм. Размер отверстий необходимо подобрать так, чтобы светодиод сидел в них не слишком туго и не слишком свободно.

Порядок сборки светодиодного куба 4х4х4 (Фотографии взяты с сайта masterkit.ru)

1. В первую очередь необходимо подготовить выводы светодиодов. Смотрите рис. 1.
Шаг 1. Короткий отгибаем на 90 градусов.
Шаг 2. С помощью пинцета формуем короткий так, чтобы на 3 мм. увеличился шаг между выводами.
Шаг 3. Теперь, в сторону отгибаем длинный.

2. Установите в отформованные светодиоды в отверстия платы. Сначала первый ряд. Рис. 2. Соедините пайкой длинные выводы. Рис.3.

3. Длинные выводы от крайних светодиодов каждого ряда выступают за край платы. Аккуратно подгибайте их вдоль платы и соединяйте пайкой между собой. Рис.4

Опубліковано 05.08.2011

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

На Youtube можете найти много аналогичных и более крутых вещей. Самая ценная деталь – это куб, собранный из светодиодов. Мы будем строить простой куб с размерами грани 4x4x4 светодиода. Т.е. нам понадобиться 4x4x4=64 светодиода яркого свечения любого цвета. Хотел сделать куб 8x8x8, но тогда понадобилось бы 512 светодиодов. С учетом стоимости светодиодов дороговато как для простой игрушки, начнем с простого 4x4x4.

Как работает куб

Все сразу светодиоды нам не засветить, нужно много ног микроконтроллера. Поэтому поступают проще – поочередно включают по одному “этажу” светодиодов. Человеческих глаз инертен и не может уловить столь быстрое переключение и нам кажется, что горят светодиоды всех этажей. Но при этом нужно понимать, что каждый отдельно взятый этаж светодиодов горит не все время а отведенный ему период. Период свечения 1/кол этажей. В нашем случае 4. Т.е. Яркость свечения будет 1/4 от номинальной. Поэтому мы и взяли сверх яркие светодиоды, в противном случае у нас получился бы бледный куб.

Плата управления

На плате управления микроконтроллер ATMega8 отвечает за логику работы, пара микросхем – сдвиговых регистров для подачи сигналов на “столбы” и 4 транзисторных ключа, которыми включается нужный этаж светодиодов. Микроконтроллер отправляет в сдвиговые регистры необходимое число, а затем включает нужный транзисторный ключ, зажигая нужный этаж. Затем операция повторяется для каждого “этажа”.

На плате предусмотрен разъем для и подключения куба к компьютеру через модуль . Таким образом, можно заставить куб светиться по командам из компьютера. Однако, куб замечательно работает и без компьютера, правда тогда он сможет прокручивать только “фильм” зашитый в его памяти, но этого, как правило, более чем достаточно.

Куб можно питать от USB порта компьютера. Это удобно при подключении к компьютеру. Я питал отдельно, поскольку планировалось сделать отдельное устройство. На видео можно заметить отдельную плату простого стабилизатора напряжения на 5В, на который подается 12В от внешнего блока питания. Поскольку в один момент времени максимум могут гореть не 64 светодиода, а только 16, то их суммарный потребляемый ток (из расчета 20мА на каждый светодиод) 16*20=320мА. Что допустимо для USB порта.

Сборка светодиодного куба

Светодиоды спаиваются таким образом, чтобы одна из ножек соединялась с ножками других светодиодов по вертикали, формируя “столб”, а другая нога соединялась со всеми светодиодами в плоскости (в “этаже”). К кубу припаиваем провода по одному к столбу (16 шт.) и по одному на каждый этаж (4 шт.). По этим 20 проводам выполняется управление кубом. Подключается куб к плате следующим образом:

Интерфейс с компьютером

Взаимосвязь с платой осуществляется через COM-порт в случае использования модуля и через виртуальный COM-порт при использовании UART-USB. В том и другом случае для компьютера это COM-порт. Так что с разработкой софта проблем нет.

Софт для создания и проигрования эффектов

Для упрощения работ с созданием различных световых эффектов был создан простенький софт на Flash: . С его помощью можно составить различные эффекты и сохранить файл. Файл – это простая последовательность чисел, которую можно вставить в исходный код, скомпилировать и получить прошивку со своими собственными эффектами. Кроме того, этот файл можно проигрывать на подключенном к компьютеру кубе с помощью простой программы написанной на Delphi. Пример ее можно скачать здесь.







2024 © sdelano-krasnodar.ru.