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

Светодиодный куб 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 угла.

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

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

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

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

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

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

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

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

Шаг 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

4X4X4 Светодиодный куб набор из Китая. Шилд для Ардуино.

  • Цена: $2.77
  • Перейти в магазин

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

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

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

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

Теперь можно перевернуть плату и запаять все остальное, а осталось только две постельки для микросхем, четыре резистора и пара гребенок для соединения с 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 Правил сайта.

ARDUINO Куб 4х4х4 на RGB светодиодах

  • Форумы
  • Мастерская
  • Проекты участников

pi1985

Всем привет.
Надоел мне одноцветный куб. Его сборка была увлекательным процессом, но один цвет быстро наскучил. Захотелось разнообразия.
Сказано — сделано. Быстренько набросал схемку в EasyEDA для куба на RGB светодиодах и сдвиговых регистрах. Схемка просто три раза копирует схему одноцветного куба.

В отличии от схемы Алекса у меня транзисторы полевые, т. к. их у меня много, а биполярных не было. Ну и подтяжка кнопок внешняя к минусу, а не внутренняя к плюсу. Ради четырёх слоёв решил не ставить отдельный сдвиговый регистр, и вывел затворы транзисторов напрямую к ардуине к ногам D4-D7. Первоначально выводил к ногам D6-D9, но потом увидел, что это разные порты — D6 и D7 это порт D, а D8 и D9 это порт B — и перенёс все на порт D. Так удобнее переключать слои. Надписи на схеме Red, Green и Blue получились условные, потом будет ясно, почему.
В той же EasyEDA развёл печатную плату:

И вот она у меня на столе (верх и низ соответственно):

И уже с запаяными компонентами (список компонентов ниже):

Как всегда, чего-то не хватило — два сдвиговых регистра запаяны, а не вставлены в панельку. Ардуина так же вставлена в панельку (правда она на 40 ног, а не 30), а не припаяна. Конденсатор взят от старой материнской платы.
Теперь очередь светодиодов. Как видно на плате, места для пайки я сделал уголком. Так и будем сгибать ноги.
1. Сгибаем ногу, дальнюю от минусовой вбок.
2. Сгибаем остальные три ноги перпендикулярно первой. Минусовая нога в центре.
3. Теперь плоскогубцами загибаем плюсовые ноги вниз ступенькой.

Теперь паяем светодиоды. Для начала спаиваем по четыре штуки минусовыми ногами. Следим, чтобы не припаять минусовую ногу к сигнальной.

А тут я немного накосячил и припаял к сигнальной ноге:

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

Ну и вот готовая сетка, припаянная к плате:

Повторяем так четыре раза и получаем почти готовый куб. Остаётся спаять минусовые ноги каждого слоя и спустить их на плату. Для этого я взял моток медной проволоки, откусил 5 кусков в два раза длиннее, чем расстояние между крайними светодиодами в слое, сложил пополам и на шуруповёрте закрутил в спираль. Это сделало проволоку более жёсткой. Почему пять, а не четыре? Пятую я припаял к верхнему слою с обратной стороны, чтобы конструкция была более жёсткой. Ну и так же сделал проволоку для спуска слоёв на плату. Длина такой проволоки равна 10 расстояниям межу светодиодами по высоте. Ну и вот, что получилось:

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

Ну и как обещал, список компонентов:
1. Печатная плата — 1 шт.
2. Arduino nano — 1 шт.
3. Панелька DIP30 для arduio — 1 шт. по желанию
4. Резисторы 220 Ом — 48 шт. по 16 на каждый цвет
5. Резисторы 10 кОм — 6 шт.: 4 на подтяжку затвора транзистора к земле и два для подтяжки кнопок так же к земле
6. Резисторы 1 кОм — 4 шт. для защиты ног МК от тока заряда транзисторов
7. Сдвиговые регистры 74HC595N — 6 шт.
8. Панельки DIP16 для сдвиговых регистров — 6 шт. по желанию
9. Кнопки — 2 шт.
10. Транзисторы полевые IRFZ24N или аналогичные. — 4 шт.
11. Светодиоды RGB с общим катодом — 64 шт.
12. Зарядка для телефона 5В 0,5А — 1 шт.

Читайте также  Ввод информации в мк. подключение кнопки к мк bascom-avr

Как примерно работает данный куб, можно посмотреть на видео по ссылке. Прошивка пока ещё в стадии правки напильником, но 4 анимации уже есть: слои, случайное заполнение, дождь и ночник.

Ещё в планах сделать для куба корпус на 3Д принтере, когда он приедет. Модель так же почти готова.

Добавлено 18.01.2018:
Нарисовал в OpenSCAD нижнюю часть корпуса.

Исходный код

LED RGB куб 4x4x4 для визуализации музыки

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

Подготовка

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

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

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

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

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

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

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

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

Сборка

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

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

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

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

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

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

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

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

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

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

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

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

Программируем Arduino

Базовый функционал
Обмен сообщениями с ПК
Программирование для светомузыки

Анализ звука на JRuby

Демонстрация работы

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

Посесловие

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

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

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

В этой статье описано создание светодиодного куба 4х4х4 на ардуино. Arduino ( Freeduino ) имеет 20 контактов (вместе с контактами АЦП), поэтому можно обойтись без регистров сдвига.

1. 64 Светодиода
2. 16 Резисторов
3. 1 Arduino (я использовал Freeduino)
4. 1 Макетная плата
5. Паяльник
6. Дрель
7. Кусок дерева

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

Перед сборкой куба я рекомендую проверить каждый светодиод. Просто подайте на него +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 слоя между собой.

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

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

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

Помните о динамической индикации, и зажигайте только один слой за раз (хотя в моём коде это не везде соблюдается и Arduino нормально работает, лучше не экспериментировать). Когда на слое LOW(0В), а на столбце HIGH(+5В) появляется разность потенциалов, что позволяет току проходить через светодиод. Когда на слое HIGH(+5В), разности потенциалов нет, и светодиоды не загораются. Когда на столбе HIGH(+5В), на нем горит светодиод заданного слоя. Когда на столбе LOW(0В), светодиоды не горят.

Rakhimov

IT blog

LED Cube 4x4x4 на Arduino Uno

В этой статье я расскажу, как относительно недорого можно сделать светодиодный куб 4х4х4. Куб состоит из 64 синих светодиодов: 4 слоя по 16 столбцов. Все они подключены к Arduino Uno.

Arduino – популярный микроконтроллер. Почитать про него можно тут.

В итоге получится:

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

  1. 64 светодиода рассеивающего свечения
  2. Провода и пины для соединения
  3. Коробочка
  4. Источник питания или USB-кабель как в моем случае
  5. Arduino Uno
  6. Шило, ножницы, канцелярский нож, кусачки, плоскогубцы, паяльник и т.д.

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

Arduino Uno по этой ссылке можно заказать сразу с USB-проводом.

Резисторы по этой ссылке.

Шаг 2: Делаем заготовку

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

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

Шаг 3: Делаем куб.

Отсчитываем 64 светодиода, тестируем их (удобнее использовать круглую батарейку как в материнской плате компьютера CR2032). Сделайте это обязательно! Иначе придется очень помучиться, распаивая частично наш куб.

Далее 16 светодиодов помещаем в дырки, предварительно загнув ножки согласно направлению стрелок. Горизонтальными гранями у нас будут ножки анода, вертикальными – катода.

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

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

Повторяем процедуру еще три раза. А затем спаиваем слои между собой.

Делаем проводки для соединения куба и микроконтроллера. Их можно сделать из витой пары или, как я, из старого IDE-шлейфа от жесткого диска.

Припаиваем провода к кубу: 16 проводов к столбцам, 4 – к слоям. Последние я обмотал вокруг столбцов, чтобы они не сильно выделялись.

Шаг 4: Установка куба.

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

Намечаем и делаем 16 дырок в коробочке под наш куб.

Шаг 5: Подружим куб и ардуино.

Продеваем провода через отверстия.

К 16 столбцам куба припаиваем провода, а к ним пины, устанавливаем их в цифровые входы ардуино. К 4 проводам, идущим от слоев куба, припаиваем резисторы, затем пины и вставляем их в аналоговые входы ардуино.

Для удобства можно условно разделить куб по трем осям: X, Y, Z:

Столбцы

  • (1,1)-13
  • (1,2)-12
  • (1,3)-11
  • (1,4)-10
  • (2,1)-9
  • (2,2)-8
  • (2,3)-7
  • (2,4)-6
  • (3,1)-5
  • (3-2)-4
  • (3-3)-3
  • (3,4)-2
  • (4,1)-1
  • (4,2)-0
  • (4,3)-A5
  • (4,4)-A4
  • a-A0
  • b-A1
  • c-A2
  • d-A3

Шаг 6: Питание куба

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

Проделываем отверстие в коробке, просовываем USB-кабель и вставляем в ардуино.

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

Шаг 7: Код!

Код я нашел в интернете. Примеров очень много, но их нужно будет изменить под свой проект (номера контактов в arduino), я взял этот, его изменять не нужно.

Можно написать и свой код за пару вечеров, увлекательное занятие! =)