Светящийся куб из светодиодов
Светодиодный куб 8x8x8 своими руками
Как работает декоративная скульптура из светодиодов? Можно ли её собрать самостоятельно? Сколько нужно светодиодов и что нужно кроме них? На все эти вопросы вы найдете ответ в этой статье.
Led куб – что нужно для самостоятельной сборки
Если вы увлекаетесь самоделками, любите ковыряться в схемах электроники – попробуйте собрать светодиодный куб своими руками. Для начала нужно определиться с размерами. Поняв принцип работы устройства, вы можете модернизировать схему как с целью увеличения светодиодов, так и с меньшим их количеством.
Давайте разберем как это работает на примере куба со стороной в 8 светодиодов. Такой куб может испугать начинающих, но если вы будете внимательным при изучении материалов – вы с лёгкостью освоите его.
Чтобы собрать led cube 8x8x8 вам понадобится:
- 512 светодиодов (например 5мм);
- сдвиговые регистры STP16CPS05MTR – 5 шт;
- микроконтроллер для управления, см. Arduino Uno или любую другую плату;
- компьютер для программирования системы;
Принцип работы схемы
Маленькие светодиоды типа 5 мм потребляют незначительный ток – 20 мА, но вы собираетесь зажигать их довольно много. Источник питания 12В и 2А прекрасно подойдет для этого.
Подключить все 512 светодиодов индивидуально у вас не выйдет потому, что вряд ли вы найдете микроконтроллер (МК) с таким количеством выводов. Чаще всего встречаются модели в корпусах с количеством ног от 8 до 64. Естественно вы можете найти варианты и с большим количеством ножек.
Как же подключить столько светодиодов? Элементарно! Сдвиговый регистр – микросхема которая может преобразовывать информацию из параллельного вида в последовательный и наоборот – из последовательного в параллельный. Преобразовав последовательный в параллельный вид, вы получите из одной сигнальной ножки 8 и более, в зависимости от разрядности регистра.
Ниже приведена диаграмма иллюстрирующая принцип работы сдвигового регистра.
Когда на последовательный вход Data вы подаете значение бита, а именно ноль или единицу, она по фронту тактового сигнала Clock передается на параллельный выход номер 0, не забывайте, что в цифровой электронике нумерация идёт с нуля).
Если в первый момент времени была единица, а затем в течении трёх тактовых импульсов на входе вы задали нулевой потенциал, в результате этого вы получите такое состояние входов «0001». Вы можете это наблюдать на диаграмме на строках Q0-Q3 – это четыре разряда параллельного выхода.
Как применить эти знания в построении LED куба? Дело в том, что можно применить не совсем обычный сдвиговый регистр, а специализированный драйвер для светодиодных экранов — STP16CPS05MTR. Он работает по такому же принципу.
Как соединять светодиоды?
Разумеется, что использование драйвера не полностью решит проблемы связанную с подключением большого количества светодиодов. Для подключения 512 светодиодов понадобится 32 таких драйвера, а от микроконтроллера еще больше управляющих ножек.
Поэтому мы пойдём другим путём и объединим светодиоды в строки и столбцы, таким образом мы получим двухмерную матрицу. Лед куб же занимает все три оси. Доработав идею объединения светодиодного куба 8x8x8 у которого светодиоды объединены в группы, можно прийти к такому выводу:
Объединить слои светодиодов (этажи) в схемы с общим анодом (катодом), а столбцы в схемы с общим катодом (или анодом, если на этажах объединяли катоды).
Чтобы управлять такой конструкцией нужно 8 x 8 = 16 управляющих пинов на колонки, и по одной на каждый этаж, всего этажей тоже 8. Итого вам нужно 24 управляющих канала.
На колодку input подаются сигнал с трех ножек микроконтроллера.
Чтобы зажечь необходимый светодиод, например, расположенный на первом этаже, в первой строке третий по счету, вам нужно подать минус на столбец номер 3, а плюс на этаж номер 1. Это справедливо если вы собрали этажи с общим анодом, а столбцы – катодом. Если наоборот, соответственно и управляющие напряжения должны быть инвертированы.
Практические рекомендации для успешной сборки
Для того, чтобы вам было удобно спаивать куб из светодиодов вам нужно:
- приготовить заранее просверленную матрицу из фанеры или картона в которую вы вставите «головку» каждого из светодиодов, а затем запаяете это всё в единое целое;
- располагайте светодиоды все одинаково, то есть минусовым выводом (катодом) вправо, а анодом (плюсом) влево, так будет легче разобраться в сборке, контакты первого ряда светодиодов расположите под углом в 45 градусов;
- вам необходимо приобрести отладочную плату Arduino любой модели, например, UNO, nano, pro mini. Прошивку для этой схемы можно найти здесь.
Для корректной работы куба из светодиодов нужно собрать его по слоям с общим катодом, а столбцы – анодом. Подключить к выводам Arduino то что на схеме обозначено, как input в такой последовательности:
№ вывода Arduino | Название цепи |
---|---|
2 | LE |
3 | SDI |
5 | CLK |
Что делать если у меня нет таких навыков?
Если вы не уверены в своих силах и знаниях электроники, но хотите себе такое украшение для рабочего стола, вы можете купить готовый куб. Для любителей мастерить простенькие электронные поделки, есть отличные варианты проще с гранями 4x4x4.
Куб с размером грани 4 диода
Готовые наборы для сборки можно приобрести в магазинах с радиодеталями, а также их огромный выбор на aliexpress.
Сборка такого куба разовьет у начинающего радиолюбителя навыки пайки, точность, правильность и качество соединений. Навыки работы с микроконтроллерами пригодятся для дальнейших проектов, а с помощью Arduino вы можете научится программировать простые игрушки, а также средства автоматизации для быта и производства.
К сожалению, из-за особенностей языка программирования Arduino – sketch есть некие ограничения в плане быстродействия, но поверьте, что когда вы упретесь в потолок возможностей этой платформы, скорее всего освоение работы с «чистыми» МК у вас не вызовет существенных трудностей.
LED-куб + змейка
Предисловие
В данной статье мы (т.к. статью писали и делали проект 2 человека) расскажем вам, как мы вдохнули жизнь в старую, позабытую всеми игру.
Подготовка
Создание собственного LED куба
Обсудив некоторые моменты, было решено делать куб размером 8х8х8. Нам удалось купить оптом 1000 светодиодов по хорошей цене, как раз то что нужно, правда это были не совсем подходящие светодиоды. Визуально лучше бы смотрелись светодиоды синего цвета с матовой линзой, свечение получается не такое яркое и более равномерное. Есть еще одна проблема прозрачных светодиодов, нижний слой подсвечивает верхние. Однако, несмотря на все это, светодиоды должны быть достаточно яркими, чтобы изображение получилась четкой. Для больше прозрачности куба лучше взять маленькие светодиоды, например, 3 мм. Еще один пункт при выборе светодиодов — длинна ног. Каркас куба будем делать из ног светодиодов, поэтому они не должны быть меньше, чем размер клетки.
Еще один важный пункт при построении куба – это его размер. Мы делаем каркас с помощью ног светодиода, хотя есть способы, где используются металлические стержни или проволока. Длинна катодов наших светодиодов оказалась примерно 25 мм, поэтому размер клетки мы выбрали 20 мм, а остальное использовать для пайки, решили, что так куб будет прочнее. Это как раз небольшое отличие от конструкции автора статьи, приведенной выше.
Следующий этап – создание макета для пайки слоев куба, это поможет облегчить пайку и куб будет более ровным. Макет делается очень просто, я взял кусок фанеры, расчертил его по размерам моего куба и просверлил в местах пересечения линий отверстия по размеру светодиодов.
Спаяв несколько слоев понял, что данной конструкции не хватает ножек, коими послужили длинные болты.
Прежде чем начать паять куб советую все подготовить. Из личного опыта могу сказать, что гораздо удобнее это делать вдвоем, т.к. рук реально не хватает, один человек прикладывает катоды, а второй подает припой и паяет. Делать это нужно быстро, светодиоды маленькие и боятся перегрева. Также в разных мануалах говорят проверить каждый светодиод перед пайкой. Я не вижу в этом смысла, потратите много времени на по сути бессмысленную операцию. Мы покупали новые светодиоды и все они оказались рабочими. А вот когда вы спаяли слой, там уже стоит хорошо все проверить потому, что выпаивать светодиод из центра неприятное занятие, проверено на личном опыте.
Итак, приступим непосредственно к пайке. Не могу сказать, что это самый верный способ, но мы это делали так. Для начала располагаем все светодиоды в нашем макете, желательно их установить ровно, потом не будет возможности что-то исправить.
Затем загибаем катоды так, чтобы они накладывались друг на друга. Когда все будет подготовлено можно начинать паять, но стоит помнить о возможном перегреве, и, если пайка не удалась, не стоит торопиться перепаивать, лучше дайте светодиоду остыть.
Спаяв все светодиоды, мы получим 8 полосок по 8 светодиодов. Чтобы это все превратить в один слой, мы использовали обычную алюминиевую проволоку, которую предварительно выпрямили. Решили использовать всего 2 таких «стержня», чтобы не усложнять конструкцию, к слову она и так получилась достаточно прочной.
Спаяв последний слой не нужно его доставать потому, что потом придется вставлять его обратно. Теперь имея все 8 слоев нам нужно их как-то объединить в один куб. Чтобы куб был более-менее ровным на пришлось отогнуть аноды как показано на рисунке, теперь он огибает светодиод, и может быть аккуратно припаян.
Паяем куб с верхнего слоя и до самого нижнего, при этом постоянно проверяя работоспособность светодиодов, лучше не ленитесь, т. к. потом будет сложнее исправить ошибку. Выставлять высоту между слоями лучше с помощью каких-то шаблонов, автор приведенной выше статьи использовал обычные кроны. У нас ничего подходящего не оказалось, но нас было двое, поэтому решили все выставлять вручную. Получилось достаточно ровно, но не идеально.
Сделав все эти действия, вы получите собранный вами LED куб и несколько обожженных пальцев, но это уже зависит от вашей аккуратности.
Разработка схемы
Для воплощения нашей задумки нам нужен был какой-то микроконтроллер. Мы решили остановиться на микроконтроллере Arduino Leonardo. Мы не хотели заморачиваться насчет программаторов и нужного ПО, так же нам не нужен мощный процессор для наших задач. Имея готовое устройство, мы поняли, что можно было использовать и Nano, но это не столь критично. Для управления кубом мы решили использовать телефон, подключенный к Arduino по Bluetooth, в нашем случае используется HC-05, но вы можете использовать любой другой.
А вот что действительно важно так это количество выводов микроконтроллера, т. к. мы получили 64 анодных и 8 катодных вывода, но о их подключении позже. Мы решили расширить порты IO с помощью сдвиговых регистров, в нашем случае это регистры фирмы TI 74HC595 в DIP корпусе, чтобы припаять сокеты к плате, а уже в них вставлять сами микросхемы. Подробнее об этих регистрах вы можете почитать в datasheet, скажу лишь что нами использовалось все кроме сигнала сброса регистра, мы подали на него единицу, т. к. он инверсный, и вход output enable мы завели на землю, он тоже инверсный и мы хотели всегда получать данные с регистров. Также можно было использовать и последовательные регистры, но тогда пришлось бы поставить дешифратор для выбора в какой именно регистр записывать информацию.
Для того, чтобы замыкать цепь на землю, выбирая уровень, который хотим зажечь, нам нужны транзисторные ключи, ну или просто транзисторы. Мы использовали обычные маломощные биполярные транзисторы N-P-N типа, соединенные по 2 параллельно. Не уверен, что в этом есть смысл, но так вроде как ток протекает лучше. База через подтягивающий резистор номиналом 100 Ом заведена на микроконтроллер, который и будет открывать наши транзисторы. На коллектор заведены слои куба, а эмиттеры соединены с землей.
Сборка куба воедино
Для питания куба не смогли найти ничего лучше, чем блок питания от планшета, параметры которого 5 В и 2 А. Может этого и мало, но куб светится достаточно ярко. Чтобы не сжечь светодиоды все анодные выводы соединены с регистрами через токоограничивающий резистор. По моим расчетам они должны были быть примерно по 40 Ом, но у меня таких не оказалось, поэтому использовал по 100 ОМ.
Разместили мы все это на 2 небольших печатных платах. Специально травить ничего не стали ввиду отсутствия практики, просто соединили все обычными проводниками. Регистры с анодами куба соединили с помощью шлейфов, которые мы достали из старого компьютера. Так проще ориентироваться в проводах.
Собрать прототип решили на том макете, который использовали для пайки.
Отладив все и исправив сделанные ошибки, мы сделали корпус из имеющегося у нас ламината, он оказался хорош тем, что его не пришлось красить. Вот конечный результат:
Да будет свет!
Куб есть, осталось заставить его светиться. Далее будут описаны различные моды (режимы) работы куба, для переключения которых использовался bluetooth + Android. Приложение для телефона писалось с использованием Cordova. Код приложения здесь описываться не будет, но ссылка на репозиторий представлена в заключении.
Алгоритм работы с кубом
Ввиду того, что мы не имеем доступ сразу ко всем светодиодам, мы не можем их зажечь все сразу. Вместо этого, нам надо зажигать их послойно.
Алгоритм таков:
- Текущий слой равен 0.
- Заносим в регистры маску для текущего слоя
- Закрываем транзистор для предыдущего слоя. Если текущий слой нулевой — то предыдущий для него — 7й слой
- Защелкиваем значения в регистры. Значение появляются на выходах регистров
- Открываем транзистор для текущего слоя. Ура, один слой светится!
- Текущий слой ++. goto: 2
Итого, данный алгоритм повторяется довольно быстро, что и даёт нам иллюзию того, что все светодиоды светятся одновременно (но мы то знаем что это не так). Маски хранятся в массиве 64х8 байт.
Написание модов
Данные моды появлялись не в том порядке, в каком они будут представлены здесь, так что прошу не наказывать за их нумерацию в коде. Начнём с самого простого: зажечь все светодиоды.
“Залипательный” мод
Идея: горят всего два слоя нулевой и седьмой, причём они являются инверсными по отношению друг к другу (светодиод в позиции Х горит только на одном из слоёв). Рандомно выбирается позиция (почему-то все пытаются найти алгоритм выбора позиции), и светодиод в данной позиции “переползает” на верхний слой, если он светился на нижнем слое, и соответственно на нижний, если светился на верхнем.
Как это выглядит в жизни:
“Ещё один залипательный мод”
Данный мод похож на предыдущий, за исключением, что горит не слой, а грань, и огоньки с данной грани, один за одним перемещаются на противоположную, а потом обратно.
Куб внутри куба
Идея: зажигать внутри куба светодиоды ввиде граней куба размерами от 1 до 8 светодиодов и обратно.
Как это выглядит:
И наконец змейка
Из особенностей реализации змейки, стоит отметить, что нету никаких ограничений на поле, и соответственно уходя за пределы куба с одной стороны, появляешься с другой. Проиграть можно, только если врезаться в себя же (по правде говоря, выиграть нельзя).
Так же стоит отдельно рассказать про управление:
В случае двумерной реализации данной игры никаких вопросов с управлением не возникает: четыре кнопки и всё очевидно. В случае трёхмерной реализации возникает несколько вариантов управления:
1. 6 кнопок. При таком варианте кнопке соответствует свое направление движения: для кнопок вверх и вниз всё очевидно, а остальные кнопки можно “привязать” к сторонам света, при нажатии кнопки “влево” вектор движения всегда меняется “на запад” и т.д. При таком варианте возникают ситуации, когда змейка движется “на восток” и и мы нажимает “на запад”. Т.к. змейка не может развернуться на 180 градусов, приходится такие случаи обрабатывать отдельно.
2. 4 кнопки (Up Down Left Right). Действия данных кнопок аналогичны действиям в двумерной реализации, за исключением того, что все изменения берутся относительно текущего направления вектора движения. Поясню на примере: при движении в горизонтальной плоскости, нажимая кнопку “Up”, мы переходим в вертикальную плоскость. При движении в вертикальной плоскости нажимая “Up”, мы переходим к движению в горизонтальной плоскости против направления оси Х, для “Down” — по направлению оси Х и т.д.
Безусловно, оба варианта имеют право на существование (было бы интересно узнать другие варианты управления). Для нашего проекта мы выбрали второй.
Результат работы программы:
Ссылки на исходный код прошивки куба и приложение для телефона:
Светодиодный «Куб бесконечности» реагирующий на звук
Отличие этого светодиодного куба от подобных устройств в том, что в работе устройства используется светодиодный музыкальный контроллер. Музыкальный RGB-контроллер, также, как и обычный, управляет сменой цвета, уровнем яркости и динамическими эффектами светодиодной ленты. Однако помимо этих стандартных функций, у него в корпус встроен еще микрофон и есть линейный вход для подключения внешнего источника музыкальных звуков. Микрофон при этом реагирует на музыку, играющую внутри помещения, а также на голос. Он воспринимает это в соответствии с тактом, и меняет цветность и динамические эффекты светодиодной ленты.
Давайте посмотрим демонстрационный видеоролик.
Шаг первый: резьба
Рама будет изготовлена из алюминия профиля с Т-образным пазом. Он прочный и с ним легко работать.
Основной недостаток планок с Т-образным пазом — приходится нарезать резьбу винта вручную, и это занимает около 2-3 минут на одно отверстие.
В конце каждой профиля есть пазы для соединения деталей (в нашем случае, которые будут удерживать стеклянные зеркала) и центральным отверстием для резьбы.
В принципе, есть ползунковые соединители, для установки которых не требуется нарезка резьбы, но они делают конструкцию более громоздкой и неудобной.
Резьба позволяет использовать кубические соединители с Т-образным пазом для соединения трех сторон вместе под прямым углом. Соединители имеют штифты, которые совпадают с каналами, и один винт очень плотно удерживает вместе каждую сторону.
Мастер использует алюминиевый профиль с пазом 3030 T. Стандартный размер отверстия для паза 3030 Т составляет 8 мм. Наиболее распространенный винт этого размера — 8 мм (диаметр) * 1,25 мм (шаг).
Всего для изготовления куба нужно 12 алюминиевых заготовок. С одной стороны каждой заготовки мастер нарезает резьбу. Вторая сторона будет обрезаться по размеру.
Отрезает профиль по разметке (не сторону с резьбой). При резке профиля пазы в нем заминаются и и нужно очистить. Используя его как шаблон обрезает остальной профиль.
Нарезает в другом конце каждой заготовки резьбу.
Шаг четвертый: зеркальная пленка
Перед установкой стекол на них нужно наклеить зеркальную пленку для создания эффекта «двустороннего зеркала».
Сначала ее нужно отрезать по размеру стекла. Затем стекло нужно вымыть и тщательно вытереть. На стекле не должно быть ворса.
Затем стекло опрыскивается мыльным раствором, и пленка наклеивается на стекло. Ракелем разглаживается и сгоняется воздух.
Для того, чтобы торцы стекла не бились и не кололись при контакте с металлической рамкой мастер, разрезает скотч вдоль и наклеивает половинки на торцы стекол.
Шаг пятый: монтаж
Теперь можно окончательно собрать куб.
Сначала собирает нижнюю часть куба, устанавливает первое стекло пленкой внутрь. При сборке зеркальная пленка всегда должна быть обращена внутрь, а стекло должно быть обращено наружу (для очистки / удаления пыли). Собирает весь куб кроме верхней панели.
У светодиодной ленты есть три провода: 5 В (красный: положительный), D0 (зеленый: данные), GND (черный: отрицательный). Перед приклеиванием ленты мастер отрезает ее по размерам припаивает провода с коннекторами.
Используя приложение LEDchord (с контроллером SP107E), нужно будет задать максимальное количество светодиодов. Оно должно быть больше, чем фактическое число. В противном случае передача сигнала остановится в определенной точке — дальнейший сигнал отправляться не будет.
В данном случае в LED Chord мастер задал следующие параметры: 32 сегмента, 24 пикселя / сегмент, всего: 768 светодиодов: GRB WS2811. Так как в кубе 600 светодиодов, то это больше необходимого минимума.
Чтобы вставить последнюю стеклянную пластину, потребуется хитрость. Нужно снять угловые соединители на «открытом» конце верхней рамы. Нужно удалить только одну «планку», которая будет возвращена на место после того, как будет вставлена последняя стеклянная пластина и приклеена последняя светодиодная лента.
Создаем большой LED куб
Светодиодные кубы никогда не потеряют свою популярность и привлекательность. На просторах интернета есть огромное множество проектов кубов 5х5 и меньше. Мы же сегодня построим куб 8х8х8 диодов.
Постройка куба довольно сложна для новичков и энтузиастов. Поэтому мы постарались максимально упростить этот процесс и создать инструкцию, которая будет предельно подробной и полной, так как любая незначительная ошибка может быть критичной, а устранить ее будет достаточно сложно.
Для работы над проектом достаточно обладать основными навыками пайки, иметь базовые знания электроники и быть знакомым с работой плат Arduino.
Расположение светодиодов
Сразу хочется отметить, что не следует выбирать большие светодиоды, так как они будут загораживать друг друга и дальние ряды будут плохо видны. Также не стоит использовать очень яркие диоды. Дабы свет каждого диода был точечным.
Для проекта мы будем использовать не очень яркие 3мм диффузные светодиоды с длинными ножками.
Для лучшего обзора каждого светодиода, мы будем использовать очень тонкие соединительные провода.
Между собой светодиоды будут соединяться при помощи своих ножек. Катоды с катодами, аноды с анодами. Для нашего куба нам понадобится 8 таких матриц.
Электронная схема
Создание восьми слоев из 64 диодов в каждом занимает достаточно много времени, но выполнить его достаточно просто.
Самый сложный момент – это построение схемы для управления светодиодным кубом и поиск неисправностей в цепи, если конечно таковые будут.
Для управления нашим кубом будет использоваться микросхема MAX7219. Изначально она предназначена для управления 7-сегментными светодиодными дисплеями. Используя данную микросхему, мы сведем количество элементов управления каждым слоем к минимуму.
Для управления каждым слоем из 64 диодов понадобится:
- Микросхема MAX7219;
- 10uF 16V электролитический конденсатор;
- 0.1uF керамический конденсатор;
- 12 кОм резистор (1/4W);
- 24 pin DIP IC socket;
- Плата Arduino Nano или Uno.
Для создания куба нам понадобится 8 комплектов вышеуказанных компонентов. Также стоит обратить внимание, что может понадобится другой резистор для конкретных светодиодов, которые вы будете использовать. Его роль в данной схеме – ограничить максимальное напряжение, которое будет выдавать микросхема MAX7219.
Для облегчения сборки куб был разбит на две части. По 4 слоя на каждой из них.
Куб может управляться извне любым микроконтроллером через интерфейс SPI. Для этого проекта мы будем использовать популярную плату Arduino (Nano). Для управления нашим кубом используя только 3 сигнальных провода (SPI) и 2 провода питания (5 В постоянного тока). Вы можете использовать более распространенную плату Arduino Uno вместо Nano. Они очень похожи (за исключением размера), так что проблем с подключением возникнуть не должно.
Также стоит обратить внимание на то, что все компоненты следует паять к нижней части печатной платы.
Для соединения плат вместе используются перемычки. Для соединения двух плат нужно 5 перемычек. Для создания одного блока из 4 слоев светодиодов понадобится 15 перемычек.
Большинство кубов цельные, в отличии от нашего. И при выходе из строя какого-либо светодиода в середине куба, добраться до него достаточно сложно. В нашем случае это не составит никакого труда.
База для пайки светодиодов
Подойдет лист фанеры иди ДВП, в котором следует просверлить отверстия диаметром 3 мм на расстоянии 18 мм друг от друга.
Сборка
Часть 1
Основные шаги для создания одного слоя:
- Подготовить 8 светодиодов с обрезанными катодными ножками до 10 мм;
- Заполнить все отверстия базы светодиодами;
- Согнуть и спаять катодные ножки;
- Согнуть и спаять анодные ножки;
- Припаять провода к катодным ножкам и закрепить их.
Данную процедуру необходимо повторить 8 раз.
Сборку одного слоя куба можно посмотреть на видео:
Часть 2
- Подготовить 15 перемычек;
- Припаять перемычки на печатную плату;
- Припаять электронные компоненты к плате;
- Припаять 5-контактный угловой коннектор для первого слоя;
- Обрезать пятый анодный контакт;
- Вставить и припаять все анодные ножки к отверстиям G, F, E, D, C, B, A и DP;
- Вставить и припаять катодные провода в отверстия D0, D1, D2, D3, D4, D5, D6 и D7;
- Обрезать провода и ножки с обратной стороны платы.
Вторая часть сборки на видео:
Проверка куба
Лучше проверять куб до полной сборки, каждый слой по отдельности. Так будет проще исправить проблемы, если они конечно же будут.
Для тестирования по очереди подключаем каждый слой к плате Arduino Nano (заранее следует установить тестовую программу). Строки должны загораться поочередно сверху вниз.
Необходимо загрузить код на вашу плату, а затем подключить к готовому кубу.
На этом все. Остается только наслаждаться полученным устройством.
Светодиодный куб 3х3х3 на Arduino Uno
На youtube.com можно найти достаточно много видеороликов, в которых демонстрируются красиво мигающие различные красочные светодиодные кубы, управляемые с помощью Arduino. Но доступ к технологии изготовления и программному коду этих устройств предлагается за деньги. Мы же в нашей статье рассмотрим создание простейшего подобного мигающего светодиодного куба 3х3х3 с простейшим алгоритмом мигания (проще для новичков), на основе которого вы потом можете запрограммировать свои образцы (паттерны) мигания (переключения) светодиодов этого куба. Причем все это будет для вас абсолютно бесплатно – наш сайт не требует никаких денег за чтение информации, размещенной на нем (если вы не собираетесь распространять ее потом где-нибудь – в этом случае это будет нарушение авторского права. Активные ссылки в интернете на статьи на нашем сайте разрешены).
Как показано на приведенном рисунке светодиодный куб 3*3*3 состоит из 27 светодиодов, упорядоченных по строкам и столбцам чтобы они образовывали форму куба.
Можно спроектировать много подобных кубов. Самым простым из них будет куб 3x3x3. Для проектирования куба 4*4*4 вам уже понадобится 64 светодиода. То есть с увеличением линейной размерности куба трудоемкость его изготовления возрастает многократно.
Светодиодный куб 3x3x3 является самым простым в изготовлении не только потому что в нем достаточно мало светодиодов, но еще и благодаря следующим условиям:
- при изготовлении такого куба нам не стоит беспокоиться об его энергопотреблении – он потребляет сравнительно мало энергии;
- не нужно никаких специальных переключающих устройств;
- логических выводов у этого куба сравнительно мало, поэтому контактов Arduino Uno хватит для управления им и у нас не будет необходимости в использовании регистров сдвига (или других подобных устройств) для увеличения количества логических контактов для управления кубом.
В большинстве случаев обычные светодиоды потребляют ток от 2 до 5 мА. Поэтому если мы используем светодиоды, потребляющие 2 мА, то управлять 9-ю такими светодиодами можно без проблем с одного контакта Arduino Uno, поскольку контакты Arduino Uno способны обеспечивать ток 20-30 мА.
В этом проекте были использованы белые светодиоды, однако вы можете использовать светодиоды любых цветов – с цветными светодиодами куб будет смотреться еще эффектнее.
Для управления этим кубом нам понадобится 12 контактов платы Arduino Uno.
Необходимые компоненты
Плата Arduino Uno, резистор 220 Ом (3 шт.), источник питания с напряжением 5 В.
Макетная плата, соединительные провода, 27 светодиодов.
Паяльник, припой и флюс (канифоль).
Батарейка SR2032, некоторые инструменты.
Пустая картонная коробка, карандаш, линейка и несколько перемычек (соединителей).
Конструирование светодиодного куба 3x3x3
Шаг 1.
Сначала необходимо с помощью батарейки SR2032 или мультиметра проверить светодиоды на исправность, потому что если потом выяснится что какой-то светодиод неисправен, то заменить его в уже собранном кубе будет не очень просто.
Шаг 2.
Затем необходимо с соединительных проводов удалить изоляцию как показано на рисунке. Для создания куба можно использовать любые соединительные провода, но стоит отметить, что провода для макетной платы для этой цели подойдут отлично. Затем полученные оголенные провода необходимо нарезать на отрезки длиной 7 см – всего необходимо 6 таких отрезков. Эти отрезки проводов будут использоваться для скрепления слоев светодиодов между собой.
Шаг 3.
На этом шаге необходимо взять пустую картонную коробку и наклеить на ее верх белую бумагу как показано на рисунке. Белая бумага нужна будет для точного позиционирования точек.
После этого возьмите карандаш и линейку и отметьте 9 точек на бумаге через каждые 2 см таким образом формируя структуру куба как показано на рисунке.
Мы здесь используем расстояние 2 см потому что длина отрицательных контактов светодиодов составляет 2.5 см. То есть в данном случае у нас будет 5 мм для припаивания одного светодиода к другому. Если мы выберем большее расстояние, то пайка может уже составить проблему, при меньшем расстоянии куб будет выглядеть несколько неуклюже. Поэтому 2 см будет в данном случае наиболее подходящим расстоянием.
После этого возьмите любой заостренный предмет, например ручку или карандаш и проделайте отверстие в каждой точке. Отверстия должны быть такого размера, чтобы в них достаточно устойчиво держался светодиод – они не должны быть слишком маленькими (светодиод не будет влезать в них или у нас не будет возможности покачивать его во время пайки) или слишком большими (светодиод будет проваливаться в них). Поэтому каждое сделанное отверстие проверяйте с помощью светодиода.
Шаг 4.
После этого поместите один светодиод в отверстие и согните его положительный контакт как показано на рисунке ниже.
После этого согните положительный контакт светодиода еще раз чтобы он сформировал форму буквы ‘L’. При близком рассмотрении на контакте светодиода можно рассмотреть небольшую выемку в том месте, где его следует сгибать в форму буквы ‘L’. После этого согните отрицательный контакт светодиода вправо как показано на следующем рисунке.
Шаг 5.
Затем повторите все эти шаги для остальных двух светодиодов и упорядочите эти 3 светодиода в форме ряда как показано на рисунке. Этот шаблон будет использован для всех остальных светодиодов куба. Можно даже сначала согнуть выводы у всех 27 светодиодов куба, а только потом упорядочить их и спаять их концы.
Но для начала повторим описанную процедуру для 9 светодиодов, которые упорядочим в форму матрицы как показано на рисунке.
Шаг 6.
После этого спаяйте все отрицательные выводы светодиодов как показано на рисунке. Три светодиода будут образовывать ряд.
После этого возьмите два оголенных проводника длиной по 7 см (их мы заготовили ранее), поместите их как показано на рисунке и припаяйте 6 концов этих светодиодов чтобы сформировать полную матрицу.
Теперь все отрицательные выводы 9 светодиодов соединены друг с другом, то есть мы будем иметь 9 положительных выводов (CP1-CP9) и один отрицательный вывод (CN1). После того как мы вынем эту структуру из отверстий в картоне и обрежем выступающие концы мы получим один слой нашего светодиодного куба как показано на следующем рисунке.
Шаг 7.
Аналогичную последовательность действий мы должны предпринять и для изготовления других двух слоев куба, внешний вид этих сконструированных двух слоев показан на следующем рисунке.
Шаг 8.
Теперь, когда у нас есть все 3 слоя куба, нам необходимо состыковать их вместе чтобы получить куб.
Сначала возьмем 1 и 2 слои и поместим один из них поверх другого. Спаяем все общие положительные выводы этих слоев как показано на рисунке ниже. К примеру, вывод CP1 первого слоя необходимо будет припаять к выводу CP1 второго слоя, вывод CP2 первого слоя — припаять к выводу CP2 второго слоя и т.д. Для удобства пайки желательно чтобы положительные выводы одного слоя «заходили» на положительные выводы другого слоя на расстояние примерно 5 мм.
После этого пристыкуем к получившейся структуре оставшийся 3-й слой и у нас получится полный куб. Припаивать 3-й слой будет немного сложнее чем 2-й к первому, поэтому старайтесь делать это осторожно чтобы не сломать структуру.
Во время пайки всей этой структуры имейте ввиду, что не следует паяльником нагревать (прикасаться) вывод светодиода более 5 секунд, иначе можете перегреть светодиод и он выйдет из строя – а заменить его в уже сделанной (хотя бы частично) структуре куба будет непросто.
Работа схемы
Когда куб будет закончен у нас в распоряжении будет его 12 контактов, из которых 9 будут общими положительными выводами (контактами), а остальные 3 – общими отрицательными выводами. Каждый общий положительный вывод соединяет положительные выводы 3-х светодиодов, а каждый общий отрицательный вывод соединяет отрицательные выводы 9-ти светодиодов. Таким образом, мы будем иметь 9 столбцов, представляющих 9 положительных выводов (CP1-CP9) и 3 слоя представляющих 3 отрицательных вывода (CN1-CN3). Эти выводы необходимо будет соединить со следующими контактами платы Arduino Uno:
PIN2 ——————CP1 (Common Positive)
PIN3 ——————CP2 (Common Positive)
PIN4 ——————CP3 (Common Positive)
PIN5 ——————CP4 (Common Positive)
PIN6 ——————CP5 (Common Positive)
PIN7 ——————CP6 (Common Positive)
PIN8 ——————CP7 (Common Positive)
PIN9 ——————CP8 (Common Positive)
PIN10 —————-CP9 (Common Positive)
PIN A0 ——————CN1 (Common Negative)
PIN A1 ——————CN2 (Common Negative)
PIN A2 ——————CN3 (Common Negative)
Полная схема устройства представлена на следующем рисунке.
Исходный код программы
В полученном кубе если мы хотим включить один светодиод, к примеру, светодиод во втором столбце первого слоя, нам будет необходимо запитать контакт CP2 и подать землю на контакт CN1. В соответствии со сделанными соединениями в схеме нам необходимо подать напряжение высокого уровня на контакт PIN3 платы Arduino (который подсоединен к CP2) и напряжение низкого уровня на контакт PIN A0 (который подсоединен к CN1).
Аналогичным образом мы можем зажечь любой другой светодиод. Далее в программе мы в бесконечном цикле будем зажигать поочередно все светодиоды в нашем кубе.
void setup()
<
for (int i=0;i
<
pinMode(i,OUTPUT); // контакты S0-10 устанавливаются в режим вывода данных
>
pinMode(A0,OUTPUT); //PIN A0 устанавливается на вывод данных
pinMode(A1,OUTPUT); // PIN A1 устанавливается на вывод данных
pinMode(A2,OUTPUT); // PIN A2 устанавливается на вывод данных
digitalWrite(A0,HIGH); //подаем логическую «1» на A0 pin
digitalWrite(A1,HIGH); // подаем логическую «1» на A1 pin
digitalWrite(A2,HIGH); // подаем логическую «1» на A2 pin
/* add setup code here, setup code runs once when the processor starts */
>
void loop()
<
digitalWrite(A0,LOW); // на слой 1 куба подана земля
for (int i=2;i
<
digitalWrite(i,HIGH); // поочередно включаем каждый светодиод в слое 1
delay(200);
delay(200);
delay(200);
digitalWrite(i,LOW);
>
digitalWrite(A0,HIGH); // на слой 1 куба подана логическая «1»
digitalWrite(A1,LOW); // на слой 2 куба подана земля
for (int i=2;i
<
digitalWrite(i,HIGH); // поочередно включаем каждый светодиод в слое 2
delay(200);
delay(200);
delay(200);
digitalWrite(i,LOW);
>
digitalWrite(A1,HIGH); // на слой 2 куба подана логическая «1»
digitalWrite(A2,LOW); // на слой 3 куба подана земля
for (int i=2;i
<
digitalWrite(i,HIGH); // поочередно включаем каждый светодиод в слое 3
delay(200);
delay(200);
delay(200);
digitalWrite(i,LOW);
>
digitalWrite(A2,HIGH); // на слой 3 куба подана логическая «1»
>