В данной статье я пошагово расскажу об изготовлении 3D LED куба, с размерностью 3х3х3. Управление LED осуществляется при помощи контроллера Arduino.
Отличительной особенностью данного проекта от других является:
1. Небольшое число дополнительных компонентов, подключается напрямую к Arduino без использования различных мультиплексоров и т.п.
2. Простая для повторения принципиальная схема с множеством фотографий и разьяснений.
3. Использование универсальной библиотеки, что значительно упрощает написание программы.
Итак, нам понадобится:
- макетная плата
- 3 NPN транзистора (2N2222, 2N3904, BC547 и т.п.)
- 12 резисторов (~220 Ом и 22 кОм)
- 13 коннекторов (папа или мама)
- 27 светодиодов (LED)
- соединительные провода
А сначала, немного видео работы устройства:
Итак, посмотрели видео? Ну а теперь поехали!
Шаг 1. Подготовка LED
Этот шаг практически ни чем не отличается от предыдущего проекта светодиодного куба 4x4x4, за исключением соответственно размерностью. Куб 4х4х4 более сложен, т.к. требует введения в схему дополнительный элементов. У нас же куб будет с 3 уровнями, по 9 LED в каждом.
В каждом наборе из 9-ти LED, все катоды соединены между собой, т.е. подключены по схеме с общим катодом (минус). Далее, наборы мы будем называть "уровнями". Каждый LED соединен анодом с LED другого уровня (нижестоящими или вышестоящими). Далее, по тексту я буду называть это колоннами, т.е. в одной колонне соединено 3 светодиода анодами, а на одном уровне соединено 9 LED катодами.
Как видно на фото выше, для изготовления куба я использовал старый шаблон от проекта 4х4х4 светодиодного куба. Отверстия в дереве просверлены под головку светодиода, расстояние между отверстиями составляет приблизительно 15мм.
После того, как приспособа сделана, пора приступить к формовке выводов LED. Катоды всех светодиодов необходимо аккуратно согнуть на 90 градусов. Направление изгиба вывода должно быть одинаковым у всех LED. Как определить где катод, а где анод у светодиода читайте здесь или здесь.
Шаг 2. Сборка куба
Разместите первые девять светодиодов в деревянном приспособлении. С позиционируйте направление изогнутых ножек в одном направлении, скажем по часовой стрелке (или против часовой, это не принципиально).
При помощи "крокодилов" зафиксируйте ножки LED и спаяйте их вместе. В самом конце припаяйте центральный LED. После того, как один уровень закончен, можно проверить правильность подключений LED при помощи батарейки или мультиметра. Т.к. потом, что-либо отпаять будет очень сложно, особенно если это центральный LED.
Таким образом сделайте все три уровня.
После этого, необходимо установить и припаять уровни друг над другом. При этом важно соблюсти заданное расстояние. Если в приспособлении расстояние между светодиодами было 15мм, то и расстояние между уровнями у вас должно быть 15мм, иначе получится вытянутый или сжатый куб.
Куб готов. Теперь можно разместить его на макетной плате.
Шаг 3. Схемотехника
Схема устройства простая. Каждая из девяти колонн подключена к выводам Arduino через токоограничительные резисторы. А все 3 уровня подключены к общему выводу через NPN -транзисторы, которые, в свою очередь подключаются к Arduino.
Т.о. используется только 12 выводов Arduino. В один момент времени будет загораться LED только одного уровня, но за счет быстрого переключения между уровнями, будет казаться, что одновременно горят все уровни (в зависимости от программы).
Первым делом необходимо припаять 9 резисторов. Я использовал резисторы сопротивлением 220 Ом, которые ограничивают ток на уровне 22 мА. Номинал резисторов зависит от типа применяемых светодиодов, и варьируется от 135 до 470 Ом. Более точный расчет резистора для светодиода можно произвести здесь: LED калькулятор. Каждый вывод Arduino способен выдать до 40 мА.
Резисторы на плате, я припаял вертикально.
После, я наклеил слой изоленты, чтобы не коротнуло с перемычками.
Следующим этапом будет монтаж радиоэлементов для управления уровнями. Здесь используется три NPN-транзистора. Базы транзисторов, через резистор 22 кОм подсоединяются к выводам Arduino. Т.о. контроллер открывает транзистор и весь уровень LED соединяется с "общим".
Шаг 4. Софт
В интернете я нашел несколько примеров управления подобными LED кубами. Но во всех них требовался огромный начальный массив bin или hex данных. Я все решил написать свою программу управления.
Первой задачей было сделать доступное для понимания соответствие программы и железа. Я принял решение обращаться к уровням и колоннам, вместо использования RAW-данных порта или традиционных x, y, z. Второй задачей было сделать базовые функции куба, такие как включение/отключение отдельного светодиода и др.
Также, я решил ввести две дополнительные возможности для реализации различных эффектов. Первая это буфер, который позволяет реализовывать основные функции для реализации сложных шаблонов, и вторая - это функция последовательности.
Всю эту функциональность я сделал в виде классов и сделал библиотеку Arduino, которую можно использовать для других проектов и даже с другой размерностью куба.
- LedCube.zip (8 Кб)
Комментарии (7) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Arduino: 1.6.1 (Windows 8.1), Плата "Arduino Uno"
C:\Users\Spart\Documents\Arduino\libraries\LedCube/LedCube.h:10:22: fatal error: WProgram.h: No such file or directory
#include "WProgram.h"
^
compilation terminated.
Ошибка компиляции.
Все файлы из архива закинул как написано в readme.