В этой статье описано создание светодиодного куба 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 слоя между собой.
Основа
Для основы куба я использовал макетную плату. Также на ней были размещены резисторы. Эта часть проекта выглядит не очень хорошо, т.к. я торопился. Вы можете сделать её намного лучше.
Корпус
Мне надоели постоянно болтающиеся провода, и я решил сделать корпус. Сам корпус я сделал из ДСП, а колпак на куб из акрила. Я покрасил печатную плату и ДСП для улучшения внешнего вида. У меня не было инструментов для нарезки акрила, поэтому я решил использовать самодельный резак. При помощи него по акрилу проводится несколько линий, по которым он ломается.
Прошивка
Создание прошивки может занять некоторое время, особенно если вы новичок, т.к. хороших книг по программированию достаточно мало. У меня было мало времени, поэтому я делал не очень сложную прошивку. Но мне удалось сделать несколько программ, и глядя на них вам будет легче во всем разобраться. Моя прошивка прилагается ниже.
Помните о динамической индикации, и зажигайте лишь один слой за раз (хотя в моём коде это не везде соблюдается и Arduino нормально работает, лучше не экспериментировать). Когда на слое LOW(0В), а на столбце HIGH(+5В) появляется разность потенциалов, что позволяет току проходить через светодиод. Когда на слое HIGH(+5В), разности потенциалов нет, и светодиоды не загораются. Когда на столбе HIGH(+5В), на нем горит светодиод заданного слоя. Когда на столбе LOW(0В), светодиоды не горят.
Прикрепленные файлы:
- LEDCube_4x4x4.zip (1 Кб)