Светодиодный куб на arduino. Cветодиодный куб (LED Cube)
В этой статье описано создание светодиодного куба 4х4х4 на Arduino. 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 слоя между собой.
Основа
Для основы куба я использовал макетную плату. Также на ней были размещены резисторы. Эта часть проекта выглядит не очень хорошо, т.к. я торопился. Вы можете сделать её намного лучше.
Корпус
Мне надоели постоянно болтающиеся провода, и я решил сделать корпус. Сам корпус я сделал из ДСП, а колпак на куб из акрила. Я покрасил печатную плату и ДСП для улучшения внешнего вида. У меня не было инструментов для нарезки акрила, поэтому я решил использовать самодельный резак. При помощи него по акрилу проводится несколько линий, по которым он ломается.
Прошивка
Создание прошивки может занять некоторое время, особенно если вы новичок, т.к. хороших книг по программированию достаточно мало. У меня было мало времени, поэтому я делал не очень сложную прошивку. Однако мне удалось сделать несколько программ, и глядя на них вам будет легче во всем разобраться. Моя прошивка прилагается ниже.
Доброго времени суток, друзья и гости сайта "Радиосхемы"! Закончил свой второй светодиодный куб. Схему и печатку нашел в просторах интернета, уже не помню где точно. После , хотелось чего-то побольше, посолиднее что-ли. Как раз и подвернулась эта схемка. На реализацию с закупкой деталей ушло около месяца. Первый запуск производился, как всегда, в навесном виде, собранным кое-как. Часть не работала, о корпусе и речи не было, на один этаж светодиодов вообще не хватило и пока так оставил на тот момент, просто хотелось посмотреть на него перед новым годом, а это было 30 декабря 00:01 на часах. Не горели два ряда по 8 этажей светодиодов и 4 светодиода горели постоянно. Недавно отремонтировал, проблема оказалась в том, что был обрыв дорожек на одной микросхеме (видимо когда травил, там тонер был поцарапан или волосок какой попал под него), а проблема с горящими постоянно светодиодами была исправлена путем проверки ключей управления с их обвязкой (не хотел покупать в DIPe транзисторы, купил в корпусе sot-23, при компактной разводке необходимо было использовать перемычку, smd резистор 0 сопротивления, 0805 типоразмера моего любимного, ну и закоротил этой перемычкой на дорожку между двумя транзисторами). При пайке самого куба был обнаружен недочет - ножки светодиодов коротковаты, а хотелось большой куб, ну и пришлось надставлять каждую ножку наращивать - сколько же терпения потребовалось... Led cube имеет всего 512 светодиодов по 2 ножки = 1024. Был коробок обрезков от резисторов и конденсаторов, его весь израсходовал. Потом проволока луженая пошла, ее несколько метров ушло, теперь ни одной ножки нет отрезанной. Но это были еще мелочи. Потом нужно было соединять этажи между собой, вот тут ушло около 2 дней только на это. При этом выявляются все кривые моменты, которые были незначительны при сборке этажей. Ну ничего, выровняли. Два дня были затрачены на изготовления корпуса из пластика от холодильника, ну там все крепления для платы, крепеж крышки, индикация, панель управления... Проводки на плате были аккуратно примазаны селиконовым герметиком, на случай "а мало ли чё". Для пайки этажей в ДСП сверлил небольшие отверстия, чтобы ставить светодиоды, а потом паять. Так удобнее, но потом понял, что надо было отдельно линиями паять, а не этажами - так куда проще.
Схема LED CUBE
Общий вид:
Покрасил короб куба в матовый цвет.
Лицевая и тыльная панель:
Внутренности с бородой из 72 проводов:
Провода рядов светодиодов приклеенные силиконовым герметиком:
Площадка-крепление для платы с противоположной стороны относительно входа питания и панели индикации с кнопками:
Панелька с кнопками управления кубом и весь вид в сборке:
Выявил еще один недостаток: светодиоды нужно было покупать матовые, а не сверхъяркие, а то по глазам чуть бьет. Фьюзы для ПониПрога далее, вроде шил Khazama"ой, ориентируюсь на Spienб так что даже не запоминаю от чего выкладываются фьюзы.
Прошивка и файл Eeprom"a, печатная плата и всё остальное для куба в архиве . Шил сначала память, потом прошивку, и про фьюзы не забываем. Видео снимал ночью. На одном виде led cube стоит на коробе, а на втором перевернут вверх-ногами.
Видео LED CUBE
В данном кубе также имеется COM-порт для подключения к компьютеру, чтобы через программу можно было самостоятельно послойно создавать фигуры, а потом проиграть их все вместе. Можно и без куба их создавать, потом подключить и увидеть, а можно в режиме реального времени зажигать определенные светодиоды и видеть их. Правда не пробовал еще так, надо провод поискать и компьютер с разъемом таким, или переходник под USB. Позже смотрел многоцветные светодиоды, думал их заказать, но на куб наверное они не самый лучший вариант, они ведь мигают в определенной последовательности, а там не знаю как получилось бы... В общем заказал RGB 100 штук, побалуюсь потом... Автор проекта DGR .
Обсудить статью LED CUBE
Представляю проект 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 индивидуальных линий управления светодиодами.
Но можно одновременно засвечивать только один слой и делать это очень быстро, чтобы глаз не успел разглядеть время переключения между слоями. Этот эффект называется
Каждый слой - это изображение из 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 -c usbtiny -p m16
Наш куб должен будет перезапуститься и стартовать. МК запуститься на очень низкой частоте 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
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | ATmega16 | 1 | В блокнот | ||
IC2 | ИС RS-232 интерфейса | MAX232 | 1 | В блокнот | ||
IC3 | Линейный регулятор | LM7805CT | 1 | 7805T | В блокнот | |
Q2-Q5 | Биполярный транзистор | BC338 | 4 | КТ645, КТ646, КТ660Б | В блокнот | |
LED1, LED2 | Светодиод | АЛ307В | 1 | В блокнот | ||
Светодиод | АЛ307Б | 1 | В блокнот | |||
Светодиод | 64 | Куб | В блокнот | |||
C1-C5 | Конденсатор | 0.1 мкФ | 6 | В блокнот | ||
C9 | 10 мкФ | 1 | В блокнот | |||
C10 | Электролитический конденсатор | 1000 мкФ | 1 | В блокнот | ||
Конденсатор | 22 пФ | 2 | Керамика | В блокнот | ||
R1-R16 | Резистор | 100-400 Ом | 16 | 12 мА на один светодиод | В блокнот | |
R17 | Резистор | 10 кОм | 1 | В блокнот | ||
R18-R21 | Резистор |
Светодиодный куб 8х8х8, интересно и красиво
- Схемотехника
Введение
Идея эта в голову пришла спонтанно, до осени этого года я и догадываться не мог, что люди занимаются чем-то подобным в жизни. На самом деле про то, что такие «кубики» существуют, рассказал преподаватель схемотехники и предложил взять данную тему в качестве курсового.Забегая вперёд, хочется сказать о том, что не нужно думать об объёме работы как о чём-то колоссальном. Напротив, делать совсем пришлось совсем немного, а вот те, кто думают: " Ха, я сделаю это за пару дней", - приготовьтесь к обратному. Да и сам процесс вовлекает в работу не хуже написания какого-нибудь программного кода…
Наблюдая за маленькими работами, размером 3х3х3, и 4х4х4, и 5х5х5, я потихоньку понимал, что чем больше - тем лучше.
Milestone #1:
Если вы до этого не работали с паяльником, для начала осознайте что нужно будет припайвать все ножки светодиодов, это 2*512, не так-то мало. Поэтому потренируйтесь на каких-нибудь кошках.
В интернете полно инструкций на эту тему. Но от начала до конца я увидел кажется только на instructables.com, и сразу скажу, как-то там слишком подробно в плане всего. Использовал лично я компонентов в раза два меньше. Естественно комплектация получилась попроще. В итоге для нашей маленькой игрушки нам понадобится:
512 светодиодов (6$ - aliexp)
- 5 специальных микросхем для светодиодов STP16CPS05MTR (9$ - aliexp)
такие детали выгоднее брать партиями естественно
- 8 BD136 pnp транзисторов (отечественные аналоги также подойдут)
- 5 1кОм резисторов (рабочая мощность 2 W)
- 5 10мкФ конденсаторов (рабочее напряжение 35-50 V)
- соединительные провода (около 10 м вышло, учитывая неудачи), припой и все, кто по-кайфу
Время приступить к изготовлению макета
Берем дрель, линейку, делаем сеточку 8х8 (главное не сделайте 8х9, как я) на чём угодно, будь то пенопласт, деревянная доска или что-то ещё. И аккуратно сверлим дырочки для светодиодов.Milestone #2:
Ключевое слово - «аккуратно», пару миллиметров влево или вправо, и у вас уже будет кривой куб в итоге.
После того, как этот шаг выполнен, вставляем светодиоды в ячейки и соблюдаем следующее правило:
А) Все аноды должны быть слева, а катоды справа. Или наоборот. Как вам удобнее.
б) Самый первый ряд сверху должен содержать светодиоды под углом:
По такому принципу соединяем катоды (-). Там, где отмечено пунктиром - прикрепите какую нибудь проволоку, чтобы слой держался с двух сторон крепко.
Держа эту нежную прослоечку, вам может показаться, что она вот-вот может развалиться, но на самом деле, когда вы начнёте скреплять слои, потом эту конструкцию можно будет спокойно бросать на пол, и скорее всего ничего не развалится.
Итог первого слоя
Перед тем, как начинать припаивать второй слой, нужно взять и загнуть все аноды следующим образом:
Соединяем несколько слоёв
Milestone #3:
Новички, пожалуйста, используйте специальную паяльную пасту (флюс), если бы имеете дело с проводами, таким образом сохраните себе очень много нервов (не то, что я в первый раз).
Когда ты немножко устал
Итак, припаяв 64 провода к анодам, которые у нас получились «на дне», можно приступать к самой электронной схеме.
Видим, что выходы наших микросхем по обе стороны переходят в общие аноды колонок куба, а в 5-ой мы мультиплексируем через транзисторы управление слоями. Вроде бы все не сложно: подаётся сигнал на определённые колонки и слои, и мы получаем пару светящихся светодиодов.
На деле это работает так:
Имеется 3 входа: тактирование, данные и защёлка. Когда отработалось 8 битов, идет защелка, и данные помещаются в регистр. Т.к. у нас микросхемы выполнены на сдвиговых регистрах, то для того, чтобы отрендерить 1 раз наш кубик разными битами информации, нам нужно записать 1 байт (8 битов с номерами слоев, на которые подавать напряжение), далее будут идти пустые данные, т.к. для пятого чипа у нас левые пины ни к чему не подсоединены. Далее мы записываем по 1 байту для каждой из группы из восьми колонок. Соответствующий бит будет определять, которая колонка должна гореть, и где это пересекается с активированным слоем, светодиод на их пересечении и должен получить напряжение.
Ниже представлена схема из даташита разработчика для общего ознакомления:
Как мы будем записывать 1 байт данных:
Void CUBE::send_data(char byte_to_send){ for(int i = 0; i < 8; i++){ if(byte_to_send & 0x01< Использовал Arduino UNO (взял попользоваться), но здесь подойдет вообще любая модель. И nano, и mini, поскольку используются только 3 цифровых входа и vcc + gnd.
Отдельно позаботьтесь о блоке дополнительного питания (я использовал адаптер 12V 2A), для отображения всех слоев кажется ток именно такой силы и нужен.
Весь исходный код в виде скетча для Arduino будет
Идея эта в голову пришла спонтанно, до осени этого года я и догадываться не мог, что люди занимаются чем-то подобным в жизни. На самом деле про то, что такие «кубики» существуют, рассказал преподаватель схемотехники и предложил взять данную тему в качестве курсового.Забегая вперёд, хочется сказать о том, что не нужно думать об объёме работы как о чём-то колоссальном. Напротив, делать совсем пришлось совсем немного, а вот те, кто думают: " Ха, я сделаю это за пару дней", - приготовьтесь к обратному. Да и сам процесс вовлекает в работу не хуже написания какого-нибудь программного кода…
Наблюдая за маленькими работами, размером 3х3х3, и 4х4х4, и 5х5х5, я потихоньку понимал, что чем больше - тем лучше.
Milestone #1:
Если вы до этого не работали с паяльником, для начала осознайте что нужно будет припайвать все ножки светодиодов, это 2*512, не так-то мало. Поэтому потренируйтесь на каких-нибудь кошках.
В интернете полно инструкций на эту тему. Но от начала до конца я увидел кажется только на instructables.com, и сразу скажу, как-то там слишком подробно в плане всего. Использовал лично я компонентов в раза два меньше. Естественно комплектация получилась попроще. В итоге для нашей маленькой игрушки нам понадобится:
512 светодиодов (6$ - aliexp)
- 5 специальных микросхем для светодиодов STP16CPS05MTR (9$ - aliexp)
такие детали выгоднее брать партиями естественно
- 8 BD136 pnp транзисторов (отечественные аналоги также подойдут)
- 5 1кОм резисторов (рабочая мощность 2 W)
- 5 10мкФ конденсаторов (рабочее напряжение 35-50 V)
- соединительные провода (около 10 м вышло, учитывая неудачи), припой и все, кто по-кайфу
Время приступить к изготовлению макета
Берем дрель, линейку, делаем сеточку 8х8 (главное не сделайте 8х9, как я) на чём угодно, будь то пенопласт, деревянная доска или что-то ещё. И аккуратно сверлим дырочки для светодиодов.Milestone #2:
Ключевое слово - «аккуратно», пару миллиметров влево или вправо, и у вас уже будет кривой куб в итоге.
После того, как этот шаг выполнен, вставляем светодиоды в ячейки и соблюдаем следующее правило:
А) Все аноды должны быть слева, а катоды справа. Или наоборот. Как вам удобнее.
б) Самый первый ряд сверху должен содержать светодиоды под углом:
По такому принципу соединяем катоды (-). Там, где отмечено пунктиром - прикрепите какую нибудь проволоку, чтобы слой держался с двух сторон крепко.
Держа эту нежную прослоечку, вам может показаться, что она вот-вот может развалиться, но на самом деле, когда вы начнёте скреплять слои, потом эту конструкцию можно будет спокойно бросать на пол, и скорее всего ничего не развалится.
Итог первого слоя
Перед тем, как начинать припаивать второй слой, нужно взять и загнуть все аноды следующим образом:
Соединяем несколько слоёв
Milestone #3:
Новички, пожалуйста, используйте специальную паяльную пасту (флюс), если бы имеете дело с проводами, таким образом сохраните себе очень много нервов (не то, что я в первый раз).
Когда ты немножко устал
Итак, припаяв 64 провода к анодам, которые у нас получились «на дне», можно приступать к самой электронной схеме.
Видим, что выходы наших микросхем по обе стороны переходят в общие аноды колонок куба, а в 5-ой мы мультиплексируем через транзисторы управление слоями. Вроде бы все не сложно: подаётся сигнал на определённые колонки и слои, и мы получаем пару светящихся светодиодов.
На деле это работает так:
Имеется 3 входа: тактирование, данные и защёлка. Когда отработалось 8 битов, идет защелка, и данные помещаются в регистр. Т.к. у нас микросхемы выполнены на сдвиговых регистрах, то для того, чтобы отрендерить 1 раз наш кубик разными битами информации, нам нужно записать 1 байт (8 битов с номерами слоев, на которые подавать напряжение), далее будут идти пустые данные, т.к. для пятого чипа у нас левые пины ни к чему не подсоединены. Далее мы записываем по 1 байту для каждой из группы из восьми колонок. Соответствующий бит будет определять, которая колонка должна гореть, и где это пересекается с активированным слоем, светодиод на их пересечении и должен получить напряжение.
Ниже представлена схема из даташита разработчика для общего ознакомления:
Как мы будем записывать 1 байт данных:
Void CUBE::send_data(char byte_to_send){ for(int i = 0; i < 8; i++){ if(byte_to_send & 0x01< Использовал Arduino UNO (взял попользоваться), но здесь подойдет вообще любая модель. И nano, и mini, поскольку используются только 3 цифровых входа и vcc + gnd.
Отдельно позаботьтесь о блоке дополнительного питания (я использовал адаптер 12V 2A), для отображения всех слоев кажется ток именно такой силы и нужен.
Весь исходный код в виде скетча для Arduino будет