Схема led 4x4x4 cube

Обновлено: 01.07.2024

Светодиодный куб 4x4x4

Представляю проект 3D светодиодного куба (LED Cube) с матрицей 4х4х4.

64 светодиода образуют куб со сторонами 4х4х4, который управляется микроконтроллером Atmel Atmega16. Каждый светодиод имеет свой виртуальный адрес и может управляться с микроконтроллера индивидуально, позволяя таким образом добиваться потрясающих эффектов.

Видео работы куба смотрите ниже:

Шаг 1. Что нам понадобится?

Первое, это терпение спаять все 64 светодиода вместе ;)

Знания, которые вам понадобятся:
- основы электроники
- умение хорошо паять
- знание программирования микроконтроллеров (если не уверены, то смотрите видеокурс по микроконтроллерам)

Список радиодеталей:
Макетная плата (ну или вытравленная печатная)
Микроконтроллер Atmel AVR Atmega16
Программатор Atmega16
64 светодиода
2 светодиода состояния. Я использовал красный и зеленый. (опционально)
Микросхема Max232 rs-232 или подобная
16х резисторов для светодиодов. (100-400 Ом)
2x резистора по 470 Ом для светодиодов состояния
1x резистор 10кОм
4x резистор 2.2кОм
4x NPN транзистора BC338 (отеч. аналоги КТ645, КТ646, КТ660Б) или другой выдерживающий ток до 250 мА
1x 10мкФ конденсатор
1x 1000мкФ конденсатор
6x 0.1мкФ керамический конденсатор
2x 22пФ керамический конденсатор
1x кварц 14.7456 MHz
2x кнопки
Выключатель питания
Разъем питания 12В
Разъем питания 5В

Шаг 2. Мультиплексирование

Как управлять 64 светодиодами, если нет столько выводов управления? Мультиплексирование!

Если к аноду каждого светодиода присоединить вывод управления, то это будет непрактично, да и выглядеть будет не очень красиво. Один из способов побороть эту проблему - это разделить куб на 4 слоя, в каждом из которых будет 4х4=16 светодиодов.

Подключение светодиодов

У светодиодов в вертикальных колонках общий анод (+)
У светодиодов в горизонтальных плоскостях общий катод (-)

Подключение светодиодов

Теперь, если нужно засветить светодиод в верхнем левом углу сзади (0,0,3), необходимо подать GND(-) к верхнему слою и Vcc(+) к колонке в левом углу куба.

Если нужно засветить один светодиод или полностью весь слой, то это работает отлично.

Однако, если нужно засветить нижний правый угол спереди (3,3,0), возникают проблемы. Когда я подал GND на нижний слой и Vcc к передней левой колонке, я также засветил верхний правый светодиод спереди (3,3,3) и нижний левый светодиод сзади (0,0,0). Эта проблему казалось бы не побороть, без использования 64 индивидуальных линий управления светодиодами.

Но можно одновременно засвечивать только один слой и делать это очень быстро, чтобы глаз не успел разглядеть время переключения между слоями. Этот эффект называется Persistence Of Vision

Каждый слой - это изображение из 4х4=16 точек (светодиодов) и если мы будем быстро переключать слои, то мы получим 4х4х4 3D куб!

Шаг 3. Конструирование шаблона для куба

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

Инструменты

Для начала, изготовим шаблон 4х4 из дерева.

Делаем шаблон

Т.к. я не хотел сильно замарачиваться с решеткой куба, то решил по возможности использовать выводы светодиодов как основу решетки куба. Дистанция линий на сетке шаблона была выбрана исходя из длины ножек светодиодов. У меня получилось 25мм. Т.о. при такой сетке, нет необходимости что-либо наращивать или обрезать.

Вставляем светодиоды

Итак, последовательность действий:
- найти и вырезать кусок фанеры
- нарисовать на ней решетку 4х4
- сделать углубления на всех пересечениях шилом или другим инструментом
- найти сверло, чтобы светодиод уверенно стоял в отверстии, и в то же время в последствии вы его могли легко вытащить
- просверлить 16 отверстий в шаблоне

Шаблон для куба готов!

Шаг 4. Конструирование светодиодных слоев

Пайка светодиодов

Пайка светодиодов

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

Пайка светодиодов

Пайка светодиодов

Процесс изготовления одного слоя (4х4) из светодиодов следующий:
- вставьте светодиоды в отверстия по 2-м дальним сторонам от вас и спаяйте их между собой
- вставьте светодиоды для следующего ряда, и также их спаяйте
- заполните так всю матрицу из 16 шт
- спереди, где нет соединения, добавьте связующие пересечения
- повторить процедуру 3 раза для оставшихся слоев.

Один слой светодиодов

Один слой светодиодов

Четыре слоя светодиодов

Шаг 5. Конструирование куба

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

Начинайте паять с углов

Положите первый слой на шаблон вниз головой. Это будет верхний слой куба.

Поместите второй слой на первый и очень точно совместите их. Также соблюдите расстояние между слоями 25мм, чтобы у вас получился идеальный куб. Это расстояние между катодами.
После того, как все выставили (воспользуйтесь приспособлением "третья рука"), припаяйте угловой анод первого слоя к угловому аноду второго слоя. И так все 4 угла.

Спаиваем 2 слоя

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

Спаиваем 2 слоя

Повторите процедуру для оставшихся 2-х слоев.

Шаг 6. Подбор токоограничивающих резисторов

Резисторы

Ток микроконтроллера AVR в сумме не может превышать 200 мА. Т.о. 200/16 дает нам 12 мА на один светодиод.

Я использовал резисторы номиналом 220 Ом. Получилось как раз 12 мА на один светодиод.

Шаг 7. Схемотехника

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

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

RS-232 опционален и может быть опущен (микросхема IC2).

Плата

Плата

RS232

Плата с кубом

Шаг 8. Присоединение МК к светодиодному кубу

Обьяснять я думаю не надо, все показано на картинках.

Подключение МК

Подключение земли к МК

Подключение земли к МК

Подключение земли к МК

Шаг 9. Программа, компиляция и прошивка МК

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

Если вы захотите использовать ATMega32 вместо ATMega16, то необходимо будет поменять настройки в makefile и перекомпилировать.

Для прошивки МК я использовал avrdude и программатор USBTinyISP.

Я работаю под Ubuntu. Подробнее о прошивки микроконтроллеров под эту ОС вы можете почитать в этих статьях: программирование МК AVR в ОС Ubuntu и программирование МК AVR в ОС Ubuntu. Часть 2 (GUI)

Итак, сперва нужно соединение программатора с микроконтроллером. Подсоедините программатор к плате куба и ПК.
Команда: avrdude -c usbtiny -p m16

Далее, заливаем прошивку командой: avrdude -c usbtiny -p m16 -U flash:w:main.hex

Наш куб должен будет перезапуститься и стартовать. МК запуститься на очень низкой частоте 1 МГц используя встроенный тактовый генератор. Некоторые LED работать не будут, потому что порты GPIO заняты под JTAG.

Чтобы подключить внешний тактовый генератор и выключить JTAG, нужно перезаписать фьюзы:
введите: avrdude -c usbtiny -p m16 -U lfuse:w:0xef:m
затем: avrdude -c usbtiny -p m16 -U hfuse:w:0xc9:m

Все, после этого, наш светодиодный куб должен запуститься в нормальном режиме!

Ниже вы можете скачать прошивку, исходники и печатную плату в формате LAY

astarter

да ! вход на 3-й и он крайний правый . плата готовая покупалась.

Serjmaster

astarter

При регулировке резистором R2 напряжение уменьшается максимум на 4 вольта. Подаю 12 вольт с аккумулятора .А если резистор R2 выкручен на минимум то R1 начинает греется и начинает дыметь.

maxssau

sulphur

Во пошли люди! Называют себя по-женски, а пишут про себя в мужском роде!

oleg1ma

где ты там увидел прямоход, простой полумостик на тарахтелке 2153

Похожие публикации

Denis Shestakov

Доброго всем времени суток.
Во время ремонта дома совершил ошибку -
Приобрел лампы для обычного диммера с крутилкой - Legrand Valena Life, а они оказались не диммйируемые Катастрофа. Лампа от компании JazzWay, модель PTR 2310, устанавливается на трек, заявленная мощность 10w. Сама из себя представляет алюминиевый цилиндр радиусов 8 см и длиной 40см.
Когда я понял какую ошибку я совершил первое что пришло в голову это было разобрать и посмотреть что там внутри) Оказалось что с торцов этого цилиндра просто на резьбе вкручены заглушка и стопор для линзы. Под которыми я обнаружил драйвер (наверно это так называется) и светодиод с маркировкой LM002. Фото я приложу в посту. Во время работы он выйдет 73в на контакты светодиода. Мощность 130мА, хотя в этом я не уверен так как не совсем понимаю как правильно измерить это, в разрыв линии или тоже с клейм. (замер делал на клеймах светодиода как и вольтаж)
Далее вопрос -
Какие есть возможности переделать лампу в диммируемую и какой будет бюджет?
Возможно ли заменить этот источник питания на диммируемый без замены светодиода?
Возможно, например, приобрести лампочку с подобным или подходящим по тех светодиодном и заменить плату или все целиком с сохранением штатных мест?

Прошу помощи у понимающих в этой теме людей )))
Help

Анастасия Елфинова

Подскажите в чем дело.
Есть прожектор с led светиками,3 из них сгорели и он не работал.
Удалил 1 светик и на его месте поставил перемычку,он заработал!
Но резисторы которые перед диодным мостом DB157 за пару секунд нагреваются.
2 уже вышли и строя я заменил их на такой же номинал но на 1ватт а не на 0,5 как было.
Вместо перемычки поставил резистор 1Ком,засветился но резистор быстро начал греться и пришлось разомкнуть.
Если вместо всех 3х установить перемычки поможет?

Здрасьте. Радиогубила в эфире. Давно не виделись. Тут это, такое дело. Пришёл значит драйвер с алика для светодиодов. Мастерю самопальный светильник в радиорубку. Вот он на картинке.

Мощность - 30-50 Вт. Выдает ток 480ма. Что для моих 3-х ваттных сборок диодов 5730 архидофига, мне надо хотя бы 300ма, а лучше 280ма. Ну собственно, параллельные токозадающие резисторы имеются, это rs1 - 1.5 ом, rs2 - 1.8 ом, и для rs3 rs4 соответственно. В сумме сопротивление где то - 0.8 ом. Подключил две сборки последовательно и амперметр в разрыв, включил, драйвер завелся, сборки очень ярко засветились, ток действительно 480 ма, думаю про конский нагрев сборок буквально за секунды от такого тока говорить излишне. Значит надо понизить ток. Для начала просто отпаял rs2 и rs4 которые по 1.8 ом. Итоговое сопротивление стало 1.5 ом. Подключил к двум сборкам, ток выдал 270 ма. То что нужно подумал я. Подключил 15 Led сборок. Включил, а диоды светят слабо, ток 125ма. Отпаял одну сборку, подключил снова, ток повыше, светит ярче, но все равно слабо. Отпаял еще одну, лучше, но недостаточно. Еще. И вот минус 3 сборки, светит нормально при токе 270ма.
Хочется запитать все диоды. Мощность драйвера позволяет. 3в на 15 сборок получим 45вт мощности. Начал пытаться подбирать общее сопротивление токозадающих резисторов. Впаял обратно выпаенные 1.8 ом - подключаю, светят ярко все 15 штук, но ток 480ма. Впаял вместо 1.8 ом, резистор 3,3 ом. Все диоды светят. Ток опустился до 350ма, что тоже многовато. Впаял 5.1 ом. И вот тут началось интересное. При включение ток стартует с 170 ма и начинает медленно расти, сборки при этом моргают, рост длиться примерно пол минуты и выходит на 315ма.
Начал искать почему так. На алике один челик писал подробный отзыв и упомянул что: " Микросхема S9268D. При подборе резисторов, драйвер может не запустится, светильник будет моргать, в этом случае необходимо подбирать "задающие резисторы R3 и R4." Во, мой случай, подумал я. Только, в какую сторону и каким номиналом их подбирать то? Этого к сожалению сказано не было.
Вот вам видосик как оно все происходит. Что скажут местные профи?

BullDozzer

Всем привет. Требуется помощь в подборе драйверов.
Искал хорошие led панели, но они оказали мне не по карману, поэтому принял решение сделать сам. Вот примеры LED панелей которые хочу сделать:


На одной панели планируется 72 светодиода по 3 Ватта каждый с напряжением 3,6v, помогите пожалуйста подобрать драйвер с запасом на эти 72 шт. Гуглил разные варианты но так и не смог разобраться с вольтажом.

Добрый день.
Есть вышедший из строя LED-светильник. Предположительно из-за образования конденсата внутри корпуса.
Фото драйвера
Был замечен пробитый резистор F1, заменён на аналогичный 10 Ом. При включении через лампу, лампа зажигается и
продолжает гореть, то есть где-то КЗ на плате. Что и как посоветуете проверить на этой плате?



Всем доброго времени суток!
Сегодня хочу рассказать Вам о Kit наборе из Китая, который позволяет собрать светодиодный куб 4х4х4 светодиода.
Всем кому интересно прошу под кат.
Давно любовался в интернете видео роликами разных кубиков, красиво смотрятся, даже чем то завораживает, особенно большие, но собрать все самому с нуля руки так и не дошли. А тут все совпало, общался с продавцов по поводу покупки ардуины, а он предложил взять вот такой маленький набор посмотреть, и вот набор пред моим несменным контролером.

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



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

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

Так что в итоге пришлось доламывать пластмассу и очищать все ножки от нее.

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

Теперь можно перевернуть плату и запаять все остальное, а осталось только две постельки для микросхем, четыре резистора и пара гребенок для соединения с Arduino Uno.
Как по мне паять гребенки лучше всего вставив весь шилд в ардуино, так гораздо проще, чем выравнивать каждую гребенку отдельно. Главное только не перегреть.

Первый этап сборки закончен, на все ушло примерно минут 30.
Вот так плата смотрится на Arduino.

Второй этап сборка куба светодиодов.

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

Который должен облегчить сборку. Но почему-то показалось, что это лишнее и что 64 светодиода я и так спаяю. Спаять то я спаял, но, наверное, лучше бы таки сделал макет, было бы гораздо проще.
Итак, первое, что нужно отогнуть на всех светодиодах катоды (короткая ножка) на угол 90 градусов. Ну, тут все просто тонкие плоскогубцы, зажимаем впритык к корпусу и гнем.

Теперь отогнутые ножки нужно спаять друг с другом (как на фото) получив ряд.
Для этого я решил воспользоваться уже собранной платой.

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

После того как будут спаяны все 4 матрицы их необходимо собрать между собой в куб. Сделать это можно используя свободные катоды в каждом из рядов и тонкую проволоку или остатки ножек от резисторов.

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

Куда именно подключать первый уровень (в D16 или D19) не так важно, главное, что бы уровни были включены последовательно, например так:D16>1, D17>2, D18>3, D19>4.

Контроль готового изделия.

В итоге на всю сборку конструктора я потратил примерно 3-3,5 часа, думаю, что если бы сделал макет получилось бы быстрее.
Теперь немного о том как это все заставить работать.
В архиве вместе с инструкцией лежит файл arduino库.zip который представляет собой подключаемую к среде разработки Arduino библиотеку, но подключить ее просто так нельзя. Для того что бы студия смогла подключить эту библиотеку нужно удалить иероглифы из имен всех папок внутри архива и из имени самого архива. Проще всего распаковать архив в любую папку и потом отдельно запаковать в ZIP архив папку ICStation_Light_cube со всем ее содержимым, вот она уже подключится к среде Arduino.

Честно говоря, этот пример меня особо не впечатлил, поэтому поискав по интернету, я нашел еще два скетча работающих именно с этим кубом. Увы, код слишком большой и вставить в обзор его нельзя, поэтому даю ссылки на первоисточники.

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

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

В данной статье мы расскажем об опыте сборки куба 4x4x4 на RGB-светодиодах, а также о разработке программного обеспечения, необходимого для использования куба в качестве визуализатора звука. Используется микроконтроллер Arduino Uno.

image

Подготовка

При исследовании подобных проектов была обнаружена реализация под названием «Чарликуб» («Charliecube») за авторством Эшера Глика (Asher Glick) и Кевина Бэйкера (Kevin Baker). Данный вариант примечателен тем, что, в отличие от других реализаций, не предусматривает наличие счётчиков, регистров сдвига либо каких-либо других компонентов для построения куба с целью его последующего программирования и задействует только 16 выводов микроконтроллера (позволяя при этом адресовать 64 светодиода). В основе этой реализации лежит конструкция светодиодной индикации под названием «Чарлиплексинг».

Чарлиплексинг

Цифровые выводы микроконтроллеров имеют трёхзначную логику: присоединён к питанию, присоединён к «земле» и не посоединён ни к чему. Если нам надо зажечь светодиод, необходимо подать "+" на X и "-" на «Y», только в таком случае он будет гореть. Если на Y ничего не подавать, до светодиод не загорится. Подробнее о методе можно почитать в одноимённой статье на Википедии, ниже приведено описание работы конкретно в нашем случае.

image

схема столбика светодиодов

Предположим, что мы хотим зажечь LED1 зелёным цветом. Если проследить по синей линии, видно, что необходимо подать "+" на вход 1. Проследив за красной линией, понимаем, что нужно подать "-" на вход 3. На остальные входы ничего не подаётся.

Визуализация

Было решено, что весь анализ музыки будет производится на подключённом к кубу ПК. Основная идея: ПК анализирует канал записи звука, преобразует звук в информацию о частотах и передаёт данные о ритме музыки в Arduino.Далее микроконтроллер на основе этой информации подсвечивает определённые светодиоды.

Поскольку у авторов проекта большой опыт работы с Ruby, в рамках проекта хотелось прибегнуть именно к этому языку программирования. Была обнаружена статья Дэвида Гутмана (David Guttman), описывающая визуализацию звука на JRuby с помощью гема ruby-processing и java-библиотеки Minim. Найденная статья была взята за основу для написания визуализатора.

Сборка
Собираем столбик

image

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

image
image

Затем каждый из светодиодов нужно вращать поочерёдно на 90° (каждый последующий должен быть повёрнут на 90° по часовой стрелке по отношению к предыдущему). Предварительно одну из ног можно пометить (у нас она помечена зелёным лаком), чтобы не запутаться.

image
image

Соединяем наши светодиоды в столбик. После соединения светодиодов обрезаем выступающие концы ног.

image
image
image

image
image

Размещаем столбики

Оставшиеся 15 столбиков собираются аналогичным образом.

image

Столбики расставляются на плате на одинаковом расстоянии друг от друга, формируя таким образом куб со стороной, равной 4 светодиодам. Все столбики должны быть повёрнуты в одинаковом направлении (тут очень пригодится предварительная маркировка «опорной» ноги).

image
image

image
image

Соединяем столбики между собой

Переворачиваем конструкцию и начинаем присоединять провода. Всего проводов 16, соединение проводилось в 4 этапа.

image
image

image
image

image
image

image
image

image

Осталось подключить к Arduino — и можно приступать к программированию.

Подключаем к Arduino

Авторы Чарликуба предусмотрели библиотеку cubeplex для удобного программирования куба с Arduino. Для того, чтобы данную библиотеку можно было использовать без модификаций, необходимо подключать наши провода в следующем порядке (нумерация соответствует проводам на изображениях из предыдущего раздела):

image
image

Программируем Arduino
Базовый функционал

Как было сказано выше, авторы воспользовались библиотекой charlieplex, которая предоставляет функцию drawLed(), принимающая цвет и позицию светодиода в координатах XYZ.
Выборочная подсветка куба с вводом пользователя
Программирование для светомузыки
Анализ звука на JRuby

В набор библиотеки Minim входит класс BeatDetect, который предоставляет инструменты для определения ритма музыки. Вообще с помощью этой библиотеки предельно просто подключиться к каналу приёма звука и произвести его частотный анализ. Для наших целей подошёл частотный метод определения ритма.
Код тестировался на Ubuntu 15.10; версия JRuby, использованная авторами — jruby 9.0.5.0. Для запуска скрипта необходимо установить Processing и подключить библиотеку Minim.
Демонстрация работы

Средствами PulseAudio визуализатору в качестве audio input был присвоен audio output, т.е. получаем визуализацию всего звука, который у нас идёт из динамиков. После записи на видео был наложен звук, который воспроизводился в момент создания ролика.

Посесловие

Нам удалось получить визуализатор звука в связке с пк. В дальнейшем можно улучшить алгоритм определения ритма (стандартные средства определения ритма библиотеки Minim далеки от идеала), также на куб можно выводить информацию о частотах. Как видите, куб несложен в построении и программировании; кроме того, он задействует минимум компонентов.

Авторы
Макоед Виктор и Евгений Куница, студенты 3 курса БГУиР ВМСиС

Читайте также: