[Из песочницы] Светодиодный куб 8х8х8, интересно и красиво
Введение
Идея эта в голову пришла спонтанно, до осени этого года я и догадываться не мог, что люди занимаются чем-то подобным в жизни. На самом деле про то, что такие «кубики» существуют, рассказал преподаватель схемотехники и предложил взять данную тему в качестве курсового.
Забегая вперёд, хочется сказать о том, что не нужно думать об объёме работы как о чём-то колоссальном. Напротив, делать совсем пришлось совсем немного, а вот те, кто думают:» Ха, я сделаю это за пару дней», — приготовьтесь к обратному. Да и сам процесс вовлекает в работу не хуже написания какого-нибудь программного кода…
Наблюдая за маленькими работами, размером 3×3х3, и 4×4х4, и 5×5х5, я потихоньку понимал, что чем больше — тем лучше.
Если вы до этого не работали с паяльником, для начала осознайте что нужно будет припайвать все ножки светодиодов, это 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, как я) на чём угодно, будь то пенопласт, деревянная доска или что-то ещё. И аккуратно сверлим дырочки для светодиодов.
Ключевое слово — «аккуратно», пару миллиметров влево или вправо, и у вас уже будет кривой куб в итоге.
После того, как этот шаг выполнен, вставляем светодиоды в ячейки и соблюдаем следующее правило:
а) Все аноды должны быть слева, а катоды справа. Или наоборот. Как вам удобнее.
б) Самый первый ряд сверху должен содержать светодиоды под углом:
По такому принципу соединяем катоды ( —). Там, где отмечено пунктиром — прикрепите какую нибудь проволоку, чтобы слой держался с двух сторон крепко.
Держа эту нежную прослоечку, вам может показаться, что она вот-вот может развалиться, но на самом деле, когда вы начнёте скреплять слои, потом эту конструкцию можно будет спокойно бросать на пол, и скорее всего ничего не развалится.
Итог первого слоя
Перед тем, как начинать припаивать второй слой, нужно взять и загнуть все аноды следующим образом:
Соединяем несколько слоёв
Новички, пожалуйста, используйте специальную паяльную пасту (флюс), если бы имеете дело с проводами, таким образом сохраните себе очень много нервов (не то, что я в первый раз).
Когда ты немножко устал
Итак, припаяв 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 будет здесь.
- Такую вещь можно сделать самому за неделю, главное купить все компоненты;
- Можно поставить доп. модуль часов реального времени, и этот куб будет работать без подсоединения к ПК;
- Можно, конечно, кастомизировать данный предмет различными кнопочками и радиоуправлениями, но я не стал;
- Потренеровавшись на таком варианте «попроще», планирую в скором времени собрать RGB куб.
Выражается огромная благодарность автору данной идеи и духовному лидеру Nick`у Shulze. Материалы взяты с сайта hownottoengineer.com. Всем удачи и успехов во всех творческих начинаниях!