Главная » Световые эффекты
Призовой фонд
на октябрь 2020 г.
1. 1500 руб
Сайт Паяльник
2. Тестер компонентов MG328
Сайт Паяльник
3. 150 руб.
От пользователей

Похожие статьи:



Программатор ST-Link V2

Светодиодный куб 4x4x4

Светодиодный куб 4x4x4

Представляю проект 3D светодиодного куба (LED Cube) с матрицей 4х4х4.

64 светодиода образуют куб со сторонами 4х4х4, который управляется микроконтроллером Atmel Atmega16. Каждый светодиод имеет свой виртуальный адрес и может управляться с микроконтроллера индивидуально, позволяя таким образом добиваться потрясающих эффектов.

Видео работы куба смотрите ниже:

Итак, начнем...

Шаг 1. Что нам понадобится?

Первое, это терпение спаять все 64 светодиода вместе ;)

Знания, которые вам понадобятся:
- основы электроники
- умение хорошо паять
- знание программирования микроконтроллеров (если не уверены, то смотрите видеокурс по микроконтроллерам)

Список радиодеталей:
Макетная плата (ну или вытравленная печатная)
Микроконтроллер Atmel AVR Atmega16
Программатор Atmega16
64 светодиода
2 светодиода состояния. Я использовал красный и зеленый. (опционально)
Микросхема Max232 rs-232 или подобная
16х резисторов для светодиодов. (100-400 Ом)
2x резистора по 470 Ом для светодиодов состояния
1x резистор 10кОм
4x резистор 2.2кОм
4x NPN транзистора BC338 (отеч. аналоги КТ645, КТ646, КТ660Б) или другой выдерживающий ток до 250 мА
1x 10мкФ конденсатор
1x 1000мкФ конденсатор
6x 0.1мкФ керамический конденсатор
2x 22пФ керамический конденсатор
1x кварц 14.7456 MHz
2x кнопки
Выключатель питания
Разъем питания 12В
Разъем питания 5В

Шаг 2. Мультиплексирование

Как управлять 64 светодиодами, если нет столько выводов управления? Мультиплексирование!

Если к аноду каждого светодиода присоединить вывод управления, то это будет непрактично, да и выглядеть будет не очень красиво. Один из способов побороть эту проблему - это разделить куб на 4 слоя, в каждом из которых будет 4х4=16 светодиодов.

Подключение светодиодов

У светодиодов в вертикальных колонках общий анод (+)
У светодиодов в горизонтальных плоскостях общий катод (-)

Подключение светодиодов

Теперь, если нужно засветить светодиод в верхнем левом углу сзади (0,0,3), необходимо подать GND(-) к верхнему слою и Vcc(+) к колонке в левом углу куба.

Если нужно засветить один светодиод или полностью весь слой, то это работает отлично...

Однако, если нужно засветить нижний правый угол спереди (3,3,0), возникают проблемы. Когда я подал GND на нижний слой и Vcc к передней левой колонке, я также засветил верхний правый светодиод спереди (3,3,3) и нижний левый светодиод сзади (0,0,0). Эта проблему казалось бы не побороть, без использования 64 индивидуальных линий управления светодиодами.

Но можно одновременно засвечивать только один слой и делать это очень быстро, чтобы глаз не успел разглядеть время переключения между слоями. Этот эффект называется Persistence Of Vision

Каждый слой - это изображение из 4х4=16 точек (светодиодов) и если мы будем быстро переключать слои, то мы получим 4х4х4 3D куб!

Шаг 3. Конструирование шаблона для куба

Спаять обьемный куб из 64 светодиодов без каких-либо приспособлений будет сложно. Поэтому мы облегчим нашу задачу воспользовавшись инструментом и приспособлениями:

Инструменты

Для начала, изготовим шаблон 4х4 из дерева.

Делаем шаблон

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

Вставляем светодиоды

Итак, последовательность действий:
- найти и вырезать кусок фанеры
- нарисовать на ней решетку 4х4
- сделать углубления на всех пересечениях шилом или другим инструментом
- найти сверло, чтобы светодиод уверенно стоял в отверстии, и в то же время в последствии вы его могли легко вытащить
- просверлить 16 отверстий в шаблоне

Шаблон для куба готов!

Шаг 4. Конструирование светодиодных слоев

Пайка светодиодов

Пайка светодиодов

Итак, нам необходимо спаять 4 слоя светодиодов по 16 в каждом, а затем все 4 слоя спаять в один обьемный куб.

Пайка светодиодов

Пайка светодиодов

Процесс изготовления одного слоя (4х4) из светодиодов следующий:
- вставьте светодиоды в отверстия по 2-м дальним сторонам от вас и спаяйте их между собой
- вставьте светодиоды для следующего ряда, и также их спаяйте
- заполните так всю матрицу из 16 шт
- спереди, где нет соединения, добавьте связующие пересечения
- повторить процедуру 3 раза для оставшихся слоев.

Один слой светодиодов

Один слой светодиодов

Четыре слоя светодиодов

Шаг 5. Конструирование куба

Все четыре слоя готовы, осталось их спаять вместе в один куб.

Начинайте паять с углов

Положите первый слой на шаблон вниз головой. Это будет верхний слой куба.

Поместите второй слой на первый и очень точно совместите их. Также соблюдите расстояние между слоями 25мм, чтобы у вас получился идеальный куб. Это расстояние между катодами.
После того, как все выставили (воспользуйтесь приспособлением "третья рука"), припаяйте угловой анод первого слоя к угловому аноду второго слоя. И так все 4 угла.

Спаиваем 2 слоя

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

Спаиваем 2 слоя

Повторите процедуру для оставшихся 2-х слоев.

Шаг 6. Подбор токоограничивающих резисторов

Резисторы

Ток микроконтроллера AVR в сумме не может превышать 200 мА. Т.о. 200/16 дает нам 12 мА на один светодиод.

Я использовал резисторы номиналом 220 Ом. Получилось как раз 12 мА на один светодиод.

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

Схема светодиодного куба

Схема контроллера для управления кубом, показана на рисунке выше.

RS-232 опционален и может быть опущен (микросхема IC2).

Плата

Плата

RS232

Плата с кубом

Шаг 8. Присоединение МК к светодиодному кубу

Обьяснять я думаю не надо, все показано на картинках.

Подключение МК

Подключение земли к МК

Подключение земли к МК

Подключение земли к МК

Шаг 9. Программа, компиляция и прошивка МК

Наш куб готов, осталась только программная часть.
Вы можете использовать мою программу, написать сами ее, либо дополнить мою программу дополнительными эффектами.

Если вы захотите использовать ATMega32 вместо ATMega16, то необходимо будет поменять настройки в makefile и перекомпилировать.

Для прошивки МК я использовал avrdude и программатор USBTinyISP.

Я работаю под Ubuntu. Подробнее о прошивки микроконтроллеров под эту ОС вы можете почитать в этих статьях: программирование МК AVR в ОС Ubuntu и программирование МК AVR в ОС Ubuntu. Часть 2 (GUI)

Итак, сперва нужно соединение программатора с микроконтроллером. Подсоедините программатор к плате куба и ПК.
Команда: avrdude -c usbtiny -p m16

Далее, заливаем прошивку командой: avrdude -c usbtiny -p m16 -U flash:w:main.hex

Наш куб должен будет перезапуститься и стартовать. МК запуститься на очень низкой частоте 1 МГц используя встроенный тактовый генератор. Некоторые LED работать не будут, потому что порты GPIO заняты под JTAG.

Чтобы подключить внешний тактовый генератор и выключить JTAG, нужно перезаписать фьюзы:
введите: avrdude -c usbtiny -p m16 -U lfuse:w:0xef:m
затем: avrdude -c usbtiny -p m16 -U hfuse:w:0xc9:m

Все, после этого, наш светодиодный куб должен запуститься в нормальном режиме!

Ниже вы можете скачать прошивку, исходники и печатную плату в формате LAY

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATmega16
1 Поиск в магазине ОтронВ блокнот
IC2 ИС RS-232 интерфейса
MAX232
1 Поиск в магазине ОтронВ блокнот
IC3 Линейный регулятор
LM7805CT
1 7805TПоиск в магазине ОтронВ блокнот
Q2-Q5 Биполярный транзистор
BC338
4 КТ645, КТ646, КТ660БПоиск в магазине ОтронВ блокнот
LED1, LED2 Светодиод
АЛ307В
1 Поиск в магазине ОтронВ блокнот
Светодиод
АЛ307Б
1 Поиск в магазине ОтронВ блокнот
Светодиод64 КубПоиск в магазине ОтронВ блокнот
C1-C5 Конденсатор0.1 мкФ6 Поиск в магазине ОтронВ блокнот
C9 Электролитический конденсатор10 мкФ1 Поиск в магазине ОтронВ блокнот
C10 Электролитический конденсатор1000 мкФ1 Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ2 КерамикаПоиск в магазине ОтронВ блокнот
R1-R16 Резистор100-400 Ом16 12 мА на один светодиодПоиск в магазине ОтронВ блокнот
R17 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R18-R21 Резистор
2.2 кОм
4 Поиск в магазине ОтронВ блокнот
Резистор
470 Ом
2 Поиск в магазине ОтронВ блокнот
Кварцевый резонатор14.7456 MHz1 Поиск в магазине ОтронВ блокнот
SB1-SB2 КнопкаPB-22E2 Поиск в магазине ОтронВ блокнот
X1 ГнездоDB 9F1 Поиск в магазине ОтронВ блокнот
DIP панельSCL-401 Для ATmega16Поиск в магазине ОтронВ блокнот
DIP панельSCS-161 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

none Опубликована: 2011 г. 0 5
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.7 Проголосовало: 1 чел.

Комментарии (135) | Я собрал (0) | Подписаться

+1
Fenja #
Фьюзы, если кому нужны.
Прикрепленный файл: fuse.PNG
Ответить
0
lemur5931 #
Спасибо за фьюзы все собрал - работает.
Две микрухи запорол буду восстанавливать
Ответить
0
Алексей #
А на Atmega8 получится? И какого размера требуется макетная плата?
Ответить
0
Андрей #
А можно сделать спектральный анализатор (цветомузыку) на данном примере?
Ответить
0
Максим #
Для чего нужен здесь com порт? Если для программирования, то зачем тогда разъем под программатор?
Ответить
0
Fenja #
Он нужен для подключению к компу, однако, в коде прошивки нет обработки получения данных с com порта, поэтому его можно не ставить.
Ответить
0
djtms #
В оригинальной статье подключение выводов портов контролера к анодам пронумеровано по другому. Где ошибка?
Ответить
0
Фархат #
Можно ли в схеме применить Atmega16l-8au?
Ответить
0
Fenja #
Врятли. Судя по маркировке, контроллер работает максимум на 8МГц, схема же рассчитана на 14МГц. Собрать по идее можно, но эффекты будут медленно работать.
Ответить
0
Иван #
Подскажите, из чего можно сделать решетку? У меня светодиоды с короткими ножками, не получится так соединить
Ответить
0
Bogdan #
Можно добавить светодиоды длинными ножками от других радиоэлементов
Ответить
0
Иван #
Не понял, вы предлагаете использовать другие светодиоды? Это не вариант, я не найду еще 64 других светодиода. Мне бы решетку сделать, но вот из чего я не знаю
Ответить
0
Максим #
Можно из кусочков медной проволоки проставки сделать
Ответить
0
Fenja #
А что мешает взять кусок фанеры и рассверлить под нужное расстояние?
Ответить
0
Fylhtq #
Всё сделал, но на Atmega16A и кварце 14МГц, прошил и выставил фьюзы как написано. Работает только два верхних уровня и то очень тускло и не совсем правильно, в чём может быть проблема?
Ответить
0
Fenja #
Проверь цоколевку транзисторов. Что значит не совсем правильно?
Ответить
0
joker75 #
Заработало сразу...Кварц не ставил (использовал внутренний). А свежей прошивки случайно нет? А то в написании программ не силён
Ответить
0
КД #
Ну вот и я сделал этот куб. Оригинальная прошивка не понравилась, поэтому написал свою в Баскоме.
В прошивке 13 эффектов + задействована кнопка подключена к Pinb.3. Долгое нажатия-смена между мануальным и автоматическим переключениям эффектов, короткое-смена эффектов. Фьюзы как в статье.
Прикрепленный файл: Cubetest.hex
Ответить
0
joker75 #
Ваша прошивка поинтересней... а увеличить число эффектов можете (ну и поделится конечно тоже?)
Ответить
0
КД #
Некоторые эффекты сменены + добавлен 1 эффект, куб стартует с автоматической смены эффектов. Кстати из-за не эффектности бейсика память заполнена на 99%. А другими языками пользоваться не умею, т.к. мне 14 лет.
Прикрепленный файл: Cubetest.hex
Ответить
0
КД #
Ну вот, удалось сжать прошивку, число эффектов возросло на 16. Кстати ножку Pb.3 желательно подтянуть к плюсу через 10К резистор.
Прикрепленный файл: Cubetest 2.hex
Ответить
0
Wolf #
В старой прошивке при сбросе загорались светодиоды LED1 и LED2, в твоей они не работают. Можешь задействовать?
Ответить
0
Andriyovich Olexiy #
atmega16 можно программировать с помощью USBasp?
Ответить
0
Игорь #
Я использую ардуино уно (дёшево и сердито)
Ответить
0
Константин #
Почему светодиоды горят в полную силу? Они ведь получают от контроллера 12 миллиампер каждый, а для света в полную силу нужно 40, они должны гореть в четверть силы, то есть очень тускло, почему этого не происходит?
Ответить
0
Xorder #
Сделал, запустился с полпинка. Спасибо !
Теперь делаю 8х8х8
Ответить
0
Сергей #
Случайно наткнулся на этот проект, заинтересовало. Прочитал эл.схему, Зачем там нужен разьем JP3? И какое напряжение подается на один светодиод и слой светодиодов?
Ответить
0
Александр #
Можно заменить ATmega16-16PU на ATmega16A-PU? Не очень понял из 6 шага как подобрать резисторы и светодиоды?
Ответить
0
joker #
У них случайно корпуса не разные? (DIP иTQFP)
Ответить
0
Александр #
ATmega16A-PU аналог ATmega16-16PU, оба в DIP
Ответить
0
4@k #
Помнится, у них vcc разное(у А - 3,3)
Ответить
0
us7ipw #
А как бы сообразить эту схему с применением RGB? Никто не пробовал?
Ответить
0
zluka_bober2000 #
Никто не подскажет, можно ли применить эту прошивку к ардуино нано?
Ответить
0
joker75 #
У ардуино нано 168 или 328 мега ...
Ответить
0
joker75 #
Здесь схема на 16 меге
Ответить
0
zluka_bober2000 #
Да, я понимаю, но, возможно можно взять код с эффектами и залить через прогу ардуины?
Ответить
0
joker75 #
Мне кажется проще зашить в мегу и не лопатить прошивку... места на плате займет столько же...(если корпус DIP а в TQFP даже меньше) но обвязка всё равно нужна
Ответить
«12
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Набор для сборки - LED лампа
Набор для сборки - LED лампа
Солнечная панель 10Вт 12В поликристаллическая Печатная плата для усилителя "LM3886 + AD825"
вверх