суббота, 6 июля 2013 г.

Arduino LED cube 3x3x3

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

Видео работы куба:

Принцип работы

В кубе 9 столбов с общим анодом (плюс) и 3 слоя с общим катодом (минус). Ток на столбы подаётся контактами 2-10 на Arduino. Слои изначально закрыты транзисторами, транзисторы открываются подачай тока на базу с контактов 11,12,13 для первого, второго и третьего слоя соответственно. Таким образом можно зажечь любой светодиод или несколько светодиодов на любом уровне. Для того, чтобы включить несколько светодиодов на разных уровнях, слои поочерёдно включаются и выключаются, при этом на мгновение загораются светодиоды на одном уровне. Мигание происходит настолько быстро, что наши глаза его не замечают и кажется, что горит несколько светодиодов на разных уровнях.

Далее, я подробнее расскажу о создании куба.

Использовались:

  • 27 светодиодов
  • 3  NPN транзистора
  • 9 резисторов 220 Ом
  • 3 резистора 10 кОм
  • макетная плата
  • штырьковые соединители
  • соединительные провода
  • Ну, и конечно же, Arduino (Arduino Uno Rev 3)

Инструменты:

Можете использовать любые инструменты, которыми Вам удобно работать. 
Я пользовался следующим набором:
Паяльник, канифоль, флюс ЛТИ 120, припой ПОС60, пинцеты: обычный, широкий, под углом; бокорезы, узкогубцы, держатель (третья рука), мультиметр (необходим для проверки на разрыв и замыкание, тестирования светодиодов, резисторов, транзисторов), оловоотсос.

Процесс создания:

Светодиоды устанавливаются в дощечку с просверленными под размер светодиодов отверстиями, катоды отгибаются и спаиваются в один слой.
И так 3 слоя. У анодов ножки отгибаются в сторону и 3 слоя соединяются. При этом аноды спаиваются в 9 столбов (колонн).


 Чтобы каждый раз, когда я решу включить куб, не тянуть провода, я решил использовать штырьковые соединители, и подключать Arduino прямо к плате.
Нужное количество штырьковых соединителей припаиваются к макетной плате, к 9 выходам припаиваются резисторы 220 Ом, к 3, через резисторы 10 кОм, базы транзисторов (смотрите datasheet по своему транзистору, чтобы определить, где у него база, коллектор и эмиттер).



Ещё 3 штырька слева ни с чем не соединены, нужны только для того, чтобы Arduino не шаталась
Куб припаивается к макетной плате и колонны, через резисторы 220 Ом соединяются со штырьками.
Слои проводами соединяются с коллекторами транзисторов
В итоге, получается слудующее:



Перед подключением Arduino, необходимо внимательно проверить все соединения на разрыв и замыкание. Я так, по невнимательности, спалил светодиод на 13 пине. Транзисторы лучше проверить заранее: NPN транзистрор должен пропускать ток в направлении База-Эммитер, и База-Коллектор, и не должен пропускать в других направлениях.
Теперь, когда всё проверено, можно подключать плату Arduino Uno и загружать скетч.

Программирование

Для прошивки можно использовать готовую библиотеку ledcube. Нужно распаковать архив в папку libraries и открыть пример в меню Примеры/ledcube/

Фото работающего куба













Себестоимость:

В итоге, затраты на куб следующие:
  • LED: 27 * 3р = 81р (вообще, я брал 40 светодиодов, некоторые из них оказались с короткими ножками и не использовались)
  • Резисторы: 9 * 1р + 3 * 1р = 12р
  • Макетная плата: 80р
  • Транзисторы: выпаял из старого видеомагнитофона,
  • Arduino Uno Rev 3: ~$10 ~300р
  • Штырьковые соединители: достались вместе с Arduino Starter Kit,
Итого: не считая Arduino, проект укладывается в 200р. Можно удешивить, заказав компоненты из Китая, или выпаяв из старых приборов. Arduino не считается, потому что она может отсоединиться и использоваться в других проектах. Вместо Arduino лучше использовать отдельный микрочип Atmega328 за 80р, или ATtiny45 за 40р.

P.S. Я заказал в США 1000 сверхярких рассеивающих светодиодов на $40 (это получается гораздо дешевле, чем покупать в России), буду делать куб 8x8x8. Так что, продолжение следует...