Схема светодиодного куба 5x5x5, описание и конструкция (на МК PIC16F877A)


Схема сборки светодиодного куба 5x5x5 своими руками, ее основа - микроконтроллер PIC16F877A, куб трехмерный, содержит 5 уровней по 25 светодиодов.

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

Принципиальная схема

Устройство, управляющее светодиодным кубом, собрано на микроконтроллере PIC16F877A-I/P по схеме, изображённой на рис. 1.

Принципиальная схема светодиодного куба 5x5x5 для сборки своими руками

Рис. 1. Принципиальная схема светодиодного куба 5x5x5 для сборки своими руками.

Питают его и куб от любого источника постоянного напряжения 9…16 В. Ток потребления - не более 200 мА. Напряжение +5 В для питания микроконтроллера DD1 получено с помощью интегрального стабилизатора напряжения DA1, конденсаторы С2, С4, С5 - блокировочные.

Работа микроконтроллера синхронизирована внутренним тактовым генератором, частота которого стабилизирована кварцевым резонатором ZQ1 на 4 МГц.

Куб состоит из пяти горизонтальных «уровней”. В каждом из них по 25 светодиодов, размещённых квадратом 5×5. Схема пятого (верхнего) уровня показана на рис. 2.

Схема пятого уровня для светодиодного куба 5x5x5

Рис. 2. Схема пятого уровня для светодиодного куба 5x5x5.

Остальные построены по таким же схемам и различаются только позиционными номерами светодиодов. Соединённые вместе катоды светодиодов каждого уровня подключены к коллекторам транзисторов VT1-VT5.

Схема ключа на транзисторе VT5 отличается от остальных, поскольку выход RA4 микроконтроллера, который управляет этим ключом, построен по схеме с открытым стоком.

Аноды светодиодов, занимающих одинаковые позиции на каждом уровне, соединены вместе и подключены к выводам портов В, С, D и выводу RA3 микроконтроллера (всего 25 выводов) через ограничивающие ток резисторы R9-R33. Светодиод HL1 подключён к микроконтроллеру через ограничительный резистор R4.

Резистор R1 поддерживает на входе RA0 микроконтроллера высокий логический уровень напряжения, когда кнопка SB1 не нажата. Нажатием на эту кнопку прекращают смену световых эффектов, о чём сигнализирует включение светодиода HL1. Все светодиоды куба при этом выключаются.

С повторным нажатием на кнопку гаснет светодиод HL1, а чередование световых эффектов возобновляется. Программа микроконтроллера написана на языке ассемблера.

Реализация светового эффекта начинается с формирования включёнными светодиодами куба некой геометрической фигуры, которая затем вращается, передвигается в ту или иную сторону либо деформируется. Изображение создаётся динамически.

Сначала по команде микроконтроллера открывается транзистор VT5, соединяя с общим проводом катоды светодиодов HL102-HL126 первого (самого нижнего) уровня куба. В соответствии с кодом, установленным в этот момент на выходах RA3, RB0- RB7, RC0-RC7, RD0-RD7, включаются те светодиоды этого уровня, которые нужны для формирования приходящейся на него части кадра изображения.

Спустя 2 мс транзистор VT5 закрывается, устанавливается код для светодиодов второго уровня и открывается транзистор VT4. За 10 мс изображение кадра формируется полностью, причём за счёт инерционности зрения чередование включённых уровней остаётся незаметным.

Далее аналогично создаётся изображение следующего кадра с новым положением геометрической фигуры и так далее до завершения эффекта. Длительность одного светового эффекта - 4,3 с.

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

Детали и печатная плата

Устройство управления кубом собрано на печатной плате из фольгированного с одной стороны стеклотекстолита толщиной 1,5 мм. Чертёж печатных проводников платы - на рис. 3, а расположение элементов на обеих её сторонах - на рис. 4.

Печатная плата для светодиодного куба 5x5x5

Рис. 3. Печатная плата для светодиодного куба 5x5x5.

Печатная плата для светодиодного куба 5x5x5 - расположение деталей

Рис. 4. Печатная плата для светодиодного куба 5x5x5 - расположение деталей.

Плата рассчитана на установку резисторов и керамических конденсаторов типоразмера 0805 для поверхностного монтажа. Оксидные конденсаторы С2 и С4 - обычные с проволочными выводами.

Интегральный стабилизатор LM7805 снабжён пластинчатым теплоотводом с площадью охлаждающей поверхности 6 см2.

Для микроконтроллера предусмотрена панель, в которую его нужно вставлять уже запрограммированным. Плата помещена в пластмассовый корпус Z28 размерами 119×143,3×37,4 мм. Куб из светодиодов синего цвета свечения установлен на верхней панели корпуса, а зелёный светодиод HL1, кнопка SB1 и разъём питания - на его лицевой панели (рис. 5).

Фото готового светодиодного куба 5x5x5, собранного своими руками

Рис. 5. Фото готового светодиодного куба 5x5x5, собранного своими руками.

Для сборки куба нужно подготовить шаблон из отрезка доски, в котором по сетке с шагом 25×25 мм просверлены 25 отверстий диаметром 5 мм (по диаметру корпуса светодиода).

Нужны также две деревянные распорки высотой 24 мм, длиной около 140 мм и шириной около 15 мм. Вставьте 25 светодиодов в отверстия шаблона, отогните катодный вывод каждого из них в сторону соседнего в ряду и спаяйте эти выводы между собой.

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

Нужно изготовить пять таких квадратов. В верхней панели корпуса устройства просверлите с шагом 25×25 мм сетку отверстий диаметром 1… 1,5 мм и пропустите в них анодные выводы светодиодов квадрата, который будет нижним уровнем куба. Затем положите деревянные распорки между крайними рядами светодиодов.

Они нужны, чтобы строго выдержать расстояние 25 мм между уровнями. Уложите на них второй квадрат и припаяйте анодный вывод каждого образующего его светодиода к анодному выводу находящегося под ним светодиода предыдущего уровня.

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

Перенося распорки на каждый вновь смонтированный уровень, описанным выше способом установите третий, четвёртый и пятый уровни.

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

К соединённым катодам светодиодов каждого уровня припаяйте отрезки тонкого гибкого изолированного провода и также пропустите их внутрь корпуса через просверленные в его верхней панели отверстия.

Остаётся присоединить провода от катодных и анодных выводов светодиодов к контактным площадкам печатной платы в соответствии со схемой.

Примечание от редакции журнала Радио

Загадка R-M-W. После публикации статьи в редакцию стали приходить письма читателей, утверждавших, что уровень 1 светодиодов "куба", управляемый сигналом с вывода 6 (RA4) микроконтроллера, не работает. Эта проблема обсуждалась и на нашем форуме (www.radio-forum.ru/forum/viewtopic.php?f=1&t=9131).

В связи с тем что автор конструкции утверждал: "А у меня всё работает", редакция решила установить истину, собрав куб и проверив его в действии. Скажем сразу, уровень 1 светодиодов не заработал. Нужно было искать причину.

Разгадка нашлась в п. 15.1 документа PIC16F87XA 28/40/44-Pin Enhanced Flash Microcontrollers. (ww1.microchip.com/downloads/en/DeviceDoc/39582C.pdf), где сказано: "Любая инструкция, операнд которой - регистр, выполняется в режиме "чтение-модификация-запись" (англ. Read-Modify-Write, R-M-W).

Регистр читается, прочитанные данные модифицируются в соответствии с кодом операции, а результат записывается туда, куда указано в инструкции. Чтение регистра происходит даже в том случае, если он же служит местом записи результата". Обычно этот приём работает успешно, но иногда он создаёт побочные эффекты.

Один из них возникает при выводе информации на линию порта RA4. Выход этой линии выполнен, как известно, по схеме с "открытым стоком".

Имеющийся во всех других выходных буферах портов (их схемы приведены в документе) "верхний" полевой транзистор, открывающийся при выводе лог. 1, в буфере выхода RA4 отсутствует.

Чтобы получить на этом выходе при закрытом "нижнем" транзисторе высокий логический уровень, необходимо соединить вывод 6 микроконтроллера с плюсом питания через нагрузочный резистор, что и сделано автором (резистор R3 согласно схеме на рис. 1 в статье).

Но к этому же выводу подключена база транзистора VT5, управляющего уровнем 1 светодиодов. При закрывании "нижнего" транзистора буфера транзистор VT5 открывается, посколькуток, текущий через резистор R3, втекает в его базу.

Но напряжение на базе открывшегося транзистора и, следовательно, на выводе 6 микроконтроллера не может подняться выше приблизительно 0,6 В. Но почему же не светятся светодиоды? Потому что вслед за записывающей лог 1 в четвёртый разряд порта A инструкцией BSF PORTA, 4

в программе следуют инструкции, обращающиеся к другим разрядам этого порта (таких мест несколько). Например, BCF PORTA, 5.

Эта инструкция изменяет состояние RA5, она не должна затрагивать RA4. Так бы и было, но выполняя её в режиме "чтение-модификация-запись", процессор микроконтроллера читает состояние всех выводов порта A и в четвёртом разряде считанного кода получает лог. 0 (ведь напряжение на выводе RA4 всего 0,6 В).

После этого процессор согласно инструкции устанавливает ноль в пятом разряде кода, а затем записывает модифицированный код в регистр PORTA, обнуляя вместе с предписанным пятым и четвёртый разряд. На экране осциллографа это выглядит, как показано на рис. 1. Для сравнения на рис. 2 показаны осциллограммы в тех же точках при отключённой от вывода 6 микроконтроллера базе транзистора VT5.

Диаграмма на экране осциллографа

Рис. 1. Диаграмма на экране осциллографа.

Осциллограмма при отключённой от вывода 6 микроконтроллера базе транзистора VT5

Рис. 2. Осциллограмма при отключённой от вывода 6 микроконтроллера базе транзистора VT5.

Что же делать? Самым правильным было бы, не меняя схему и печатную плату, переписать программу так, чтобы исключить конфликтные ситуации. Но программа довольно сложна, переделать её сможет, пожалуй, только автор.

Другой выход предлагали участники форума - перенести управление транзистором VT5 на любой свободный выход микроконтроллера, построенный по обычной схеме с тремя состояниями. Базу транзистора нужно подключить к нему по той же схеме, что и базы других четырёх транзисторов.

И, конечно, заменить в программе все упоминания порта RA4 на упоминания выбранного порта. Это несложно, но недоступно, к сожалению, не владеющим программированием.

Однако существуют способы устранить недостаток, не требующие вмешательства в программу. Первый из них - изменить схему базовой цепи транзистора согласно рис. 3.

Для этого придётся разрезать печатный проводник, соединяющий вывод 6 микроконтроллера с базой транзистора, и впаять в образовавшийся зазор резистор R34, а также уменьшить сопротивление резистора R3.

Сумма сопротивлений резисторов R3 и R34 должна быть равной 2 кОм, а их соотношение таким, чтобы напряжение высокого логического уровня на выводе 6 микроконтроллера превысило 2 В. Однако чрезмерно уменьшать сопротивление резистора R3 не следует. Это может привести к перегрузке выхода микроконтроллера по току.

Второй способ - заменить биполярный транзистор VT5 полевым, например 2N7002, подключив его по схеме, показанной на рис. 4, ничего не меняя ни в программе, ни в конфигурации проводников печатной платы.

Как известно, входное сопротивление полевого транзистора очень велико, и напряжение высокого логического уровня на его затворе и выводе 6 микроконтроллера останется равным напряжению питания. Нужно только выбирать полевой транзистор с небольшой входной ёмкостью, иначе эта ёмкость не успеет зарядиться до уровня логической единицы, прежде чем будет выполнена следующая инструкция, и эффект "чтения-модификации-записи" проявится вновь.

Схема изменения базовой цепи транзистора

Рис. 3. Схема изменения базовой цепи транзистора.

Схема замены биполярного транзистора VT5 полевым

Рис. 4. Схема замены биполярного транзистора VT5 полевым.

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

Сопротивление этого резистора может быть около 10 кОм, а резистор R3 остаётся прежним. Вызванная этим небольшая задержка открывания и закрывания полевого транзистора в рассматриваемом случае значения не имеет, поскольку длительность его открытого состояния намного больше (около 2 мс).

Файл печатной платы (Sprint Layout 5.0) и прошивка для микроконтроллера - Скачать.

В. Турчанинов, г. Севастополь. Украина. Р-12-2015.


1 1352 На микроконтроллерах
светодиод LED микроконтроллер PIC микроконтроллер игрушка
Оставить комментарий: