3-D програмируема матрица от 125 светодиода - Контролери - Приднестровски портал на радиолюбителите

Джери Джейкъбс (Холандия)
Всеки е виждал двумерни LED матрици, но вариантът, описан в тази статия, описва напълно различен калибър: а именно, пет матрици, подредени заедно в куб; и в тази триизмерна матрица, всеки светодиод от която може да бъде включен напълно индивидуално.
Хардуерни спецификации
• 125 светодиода в специална триизмерна матрица
• ATMEGA32 микроконтролер с вътрешен 1 MHz осцилатор
• 10-пинов ISP конектор за препрограмиране
• 5 транзистора за матрично превключване
• 25 транзистора за превключване на редове
Много хора харесват мигането на светодиоди. Но обикновено това са няколко светодиода или малка матрица. Тук представяме триизмерна LED матрица, всеки светодиод се контролира индивидуално. Този великолепен 3-D куб се управлява от микроконтролер Atmel AVR. Тези микроконтролери са лесни за получаване и са налични много програми за програмиране. Не само за Windows, но и за операционни системи Linux и Mac.
Режим
Може би си мислите, че със 125 светодиода в триизмерен куб ще ви трябват твърде много връзки, за да можете да ги контролирате поотделно, но това не е така. Използваме по-малко връзки, тъй като сигналите се мултиплексират. Задвижвани от една "матрица", от 25 светодиода, които са всички на една и съща височина в колоните, могат да бъдат контролирани с едноформатни връзки. Това води до общо 26 сигнални проводника. Ако всеки светодиод трябва да бъде свързан поотделно, ще са необходими 50 форми.
За да включим светодиода, превключваме напрежението на положителното изображение в желаната матрица и избираме подходящия ред.
Нашият куб има 5 матрици и 25 колони. Това означава, че имаме 30 връзки за 125 светодиода. Без мултиплексиране ще ни трябват 250 връзки!
С честота на генератора от 1 MHz получаваме честота на опресняване от 39 кадъра в секунда.На всеки 1024 импулса броячът се увеличава (честотният делител, използван за това, се нарича още предскалер). Когато този брояч достигне 5, прекъсването се изпълнява и броячът се възстановява.
Това прекъсване се грижи за изпращането на стойността в буферния регистър към LED масива. Контролерът на куба има честота на осцилатора от 1 MHz (вграден осцилатор). Софтуерът коригира на всеки 5 импулса. Вътрешната честота се разделя на предскалатор. Това води до регенерация от 195 Hz за целия куб. Тъй като имаме пет матрици, делим на пет и достигаме 39 кадъра в секунда.
Таблица 1. Разпределение на матрици и колони.
Софтуер
Софтуерът (фърмуер) е написан на C и може да се компилира с avr-gcc [1 |. Също така се записва по такъв начин, че да може да се разглежда като уебсайт. Това е възможно от Doxygen | 2].
Буферен регистър
Тъй като е много трудно да се получи куб, който да покаже произволен чертеж по прост начин, за тази цел има буферен регистър. Предимството на това е, че манипулирате битовете в буферния регистър с помощта на функции, което означава, че не е нужно да пишете последователността директно. Това е работата на рутинното прекъсване. Буферният регистър, подобно на куб, има множество размери, така че можете да "нарисувате" фигурата в буферния регистър, а прекъсването се грижи за останалото.

Фигура: 1. Микроконтролерът AVR е в основата на този проект. Очевидно е големият брой транзистори.
Прекъсва
Прекъсването в куба, както вече споменахме, гарантира, че чертежът върху куба се регенерира 39 пъти в секунда.
Тази процедура за прекъсване записва стойностите, които сте записали в буферния регистър, използвайки различна функция от буферния регистър в съответните входове и поставя битовете на правилното място. Използваме битови фотомаски, за да гарантираме, че гледаме само подходящите битове да са ниски или високи в изхода.