Портал для радиолюбителей
   3x3x3 светодиодный куб на Arduino
    Главная -> Статьи -> Проекты на Arduino -> 3x3x3 светодиодный куб на Arduino


<< Назад в раздел   Распечатать Дата добавления: 2011-10-25 | Просмотров: 17944

3x3x3 LED куб

В данной статье я пошагово расскажу об изготовлении 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 катодами.

Шаблон для LED

Как видно на фото выше, для изготовления куба я использовал старый шаблон от проекта 4х4х4 светодиодного куба. Отверстия в дереве просверлены под головку светодиода, расстояние между отверстиями составляет приблизительно 15мм.

После того, как приспособа сделана, пора приступить к формовке выводов LED. Катоды всех светодиодов необходимо аккуратно согнуть на 90 градусов. Направление изгиба вывода должно быть одинаковым у всех LED.

Шаг 2. Сборка куба

Разместите первые девять светодиодов в деревянном приспособлении. С позиционируйте направление изогнутых ножек в одном направлении, скажем по часовой стрелке (или против часовой, это не принципиально).

Компоновка LED

При помощи "крокодилов" зафиксируйте ножки LED и спаяйте их вместе. В самом конце припаяйте центральный LED. После того, как один уровень закончен, можно проверить правильность подключений LED при помощи батарейки или мультиметра. Т.к. потом, что-либо отпаять будет очень сложно, особенно если это центральный LED.

Проверка LED

Таким образом сделайте все три уровня.

После этого, необходимо установить и припаять уровни друг над другом. При этом важно соблюсти заданное расстояние. Если в приспособлении расстояние между светодиодами было 15мм, то и расстояние между уровнями у вас должно быть 15мм, иначе получится вытянутый или сжатый куб.

Куб готов. Теперь можно разместить его на макетной плате.

Готовый LED куб

Шаг 3. Схемотехника

Схема устройства простая. Каждая из девяти колонн подключена к выводам Arduino через токоограничительные резисторы. А все 3 уровня подключены к общему выводу через NPN -транзисторы, которые, в свою очередь подключаются к Arduino.

Схема подключения

Т.о. используется только 12 выводов Arduino. В один момент времени будет загораться LED только одного уровня, но за счет быстрого переключения между уровнями, будет казаться, что одновременно горят все уровни (в зависимости от программы).

Первым делом необходимо припаять 9 резисторов. Я использовал резисторы сопротивлением 220 Ом, которые ограничивают ток на уровне 22 мА. Номинал резисторов зависит от типа применяемых светодиодов, и варьируется от 135 до 470 Ом. Более точный расчет резистора для светодиода можно произвести здесь: LED калькулятор. Каждый вывод Arduino способен выдать до 40 мА.
Резисторы на плате, я припаял вертикально.

Установка 9-ти резисторов

После, я наклеил слой изоленты, чтобы не коротнуло с перемычками.

Слой изоленты

Следующим этапом будет монтаж радиоэлементов для управления уровнями. Здесь используется три NPN-транзистора. Базы транзисторов, через резистор 22 кОм подсоединяются к выводам Arduino. Т.о. контроллер открывает транзистор и весь уровень LED соединяется с "общим".

Конечный результат

Шаг 4. Софт

В интернете я нашел несколько примеров управления подобными LED кубами. Но во всех них требовался огромный начальный массив bin или hex данных. Я все решил написать свою программу управления.

Первой задачей было сделать доступное для понимания соответствие программы и железа. Я принял решение обращаться к уровням и колоннам, вместо использования RAW-данных порта или традиционных x, y, z. Второй задачей было сделать базовые функции куба, такие как включение/отключение отдельного светодиода и др.

Также, я решил ввести две дополнительные возможности для реализации различных эффектов. Первая это буфер, который позволяет реализовывать основные функции для реализации сложных шаблонов, и вторая - это функция последовательности.

Всю эту функциональность я сделал в виде классов и сделал библиотеку Arduino, которую можно использовать для других проектов и даже с другой размерностью куба.

Скачать библиотеку и скетч PDE

Оригинал статьи на английском языке (перевод Колтыков А.В.)


Добавил:  Павел (Admin)  
Автор:  Неизвестно 

Вас может заинтересовать:

  1. Работа Arduino с датчиком DS18B20
  2. Arduino UNO урок 1 - Мигание LED
  3. Arduino UNO урок 4 - Бегущий огонь
  4. Arduino UNO урок 5 - Fade
  5. Arduino UNO урок 10 - LCD


    © PavKo, 2007-2018   Обратная связь   Ссылки   Яндекс.Метрика