Съдържание:

Как да изградите 8x8x8 LED куб и да го контролирате с Arduino: 7 стъпки (със снимки)
Как да изградите 8x8x8 LED куб и да го контролирате с Arduino: 7 стъпки (със снимки)

Видео: Как да изградите 8x8x8 LED куб и да го контролирате с Arduino: 7 стъпки (със снимки)

Видео: Как да изградите 8x8x8 LED куб и да го контролирате с Arduino: 7 стъпки (със снимки)
Видео: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Юли
Anonim
Как да изградим 8x8x8 LED куб и да го контролираме с Arduino
Как да изградим 8x8x8 LED куб и да го контролираме с Arduino
Как да изградим 8x8x8 LED куб и да го контролираме с Arduino
Как да изградим 8x8x8 LED куб и да го контролираме с Arduino

Редактиране на януари 2020 г.:

Оставям това в случай, че някой иска да го използва за генериране на идеи, но вече няма смисъл да се изгражда куб въз основа на тези инструкции. Интегралните схеми на LED драйвера вече не се правят и двете скици са написани в стари версии на Arduino и Processing и вече не се изпълняват. Не знам какво трябва да се промени, за да работят. Също така моят метод на изграждане доведе до нестабилна объркана каша. Моето предложение е да следвате инструкциите на друга инструкция или да си купите комплект. Този куб струваше около $ 50 през 2011 г., сега можете да си купите комплект от ebay за около $ 20.

Оригинално въведение:

Има много LED кубчета на Instructables, така че защо да правите друг? Повечето са за малки кубчета, състоящи се от 27 или 64 светодиода, рядко по -големи, тъй като са ограничени до броя на изходите, налични на микроконтролера. Този куб ще бъде 512 светодиода и ще се нуждае само от 11 изходни проводника от Arduino. Как е възможно? С помощта на Allegro Microsystems A6276EA LED драйвер.

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

Стъпка 1: Материали

Материали
Материали

Всички части, които ще ви трябват, за да изградите куба: 1 Arduino/Freeduino с чип Atmega168 или по -висок 512 светодиода, размерът и цветът зависят от вас, използвах 3 мм червени 4 A6276EA чип драйвери от Allegro 8 NPN транзистори за контрол на потока на напрежението, Използвах BDX53B Darlington транзистор 4 1000 ома резистори, 1/4 вата или по -висока 12 560 ома резистори, 1/4 вата или по -висока 1 330uF електролитен кондензатор 4 24 -пинов IC гнездо 9 16 -пинов IC гнездо 4 "x4" (или по -голям) парче перфорирана дъска, за да държи всички части, стар вентилатор за компютър Стар кабел за флопи контролер Стар компютър за захранване Много свързващ проводник, спойка, поялник, флюс, всичко друго, което да улесни живота ви, докато правите това. 7 "x7" (или по -голямо) парче дърво, използвано за направата на LED приспособление за запояване. Хубав калъф за показване на готовия ви куб Моят Arduino/Freeduino по избор е Bare Bones Board (BBB) от www.moderndevice.com. Светодиодите са закупени от eBay и струват 23 долара за 1000 светодиода, доставени от Китай. Останалата електроника е закупена от Newark Electronics (www.newark.com) и би трябвало да струва само около 25 долара. Ако трябва да купите всичко, този проект трябва да струва само около 100 долара. Имам много старо компютърно оборудване, така че тези части се отделиха от купчината скрап.

Стъпка 2: Сглобете слоевете

Сглобете слоевете
Сглобете слоевете
Сглобете слоевете
Сглобете слоевете
Сглобете слоевете
Сглобете слоевете
Сглобете слоевете
Сглобете слоевете

Как да направя 1 слой (64 светодиода) от този 512 LED куб: Купените от мен светодиоди бяха с диаметър 3 мм. Реших да използвам малки светодиоди, за да намаля разходите и да направя крайния размер на куба достатъчно малък, за да седне на бюрото или рафта ми, без да поема напълно бюрото или рафта. Нарисувах решетка 8х8 с приблизително 0,6 инча между редовете. Това ми даде размер на куб около 4,25 инча на страна. Пробийте 3 мм отвори, където линиите се срещат, за да направите джиг, който ще задържа светодиодите, докато запоявате всеки слой. A6276EA е текущо устройство за мивка. Това означава, че осигурява път към земята, а не път към напрежение на източника. Ще трябва да изградите куба в обща анодна конфигурация. Повечето кубчета са изградени като общ катод. Дългата страна на светодиода обикновено е анод, проверете вашата, за да се уверите. Първото нещо, което направих, беше да тествам всеки светодиод. Да, това е дълъг и скучен процес и можете да го пропуснете, ако желаете. Предпочитам да отделя време за тестване на светодиодите, отколкото да намеря мъртва точка в куба си след сглобяването му. Намерих 1 мъртъв светодиод от 1000. Не е лошо. Изрежете 11 парчета плътна, неизолирана тел за свързване на 5 инча. Поставете 1 светодиод във всеки край на ред във вашия джиг и след това запоявайте проводника към всеки анод. Сега поставете останалите 6 светодиода в реда и запоявайте тези аноди към проводника. Това може да бъде вертикално или хоризонтално, няма значение, стига да правите всички слоеве по същия начин. Докато завършвате всеки ред, отрежете излишния проводник от анодите. Оставих около 1/8 . Повторете, докато не приключите всичките 8 реда. Сега запояйте 3 парчета свързваща тел през редовете, които току -що направихте, за да ги свържете всички в едно парче. След това тествах слоя, като прикрепих 5 волта за да свържете решетъчната решетка през резистор и докоснете заземяващия проводник към всеки катод. Сменете всички светодиоди, които не светят. Внимателно отстранете слоя от джига и го оставете настрана. Ако огънете проводниците, не се притеснявайте, просто изправете ги, доколкото можете слоевете заедно (Стъпка 3) са по -лесни, докато всеки следващ слой все още е в джига, огънете горната четвърт инч от катода напред от 45 до 90 градуса. Това ще позволи на оловото да достигне около светодиода, към който се свързва, и ще направи запояването много по -лесно. Не правете това с първия си слой, ние ще декларираме, че единият е най -долният слой и водещите трябва да са s traight.

Стъпка 3: Сглобете куба

Сглобете куба
Сглобете куба
Сглобете куба
Сглобете куба

Как да запоите всички слоеве заедно, за да направите куб: Твърдата част е почти приключила. Сега внимателно поставете един слой обратно в приспособлението, но не използвайте прекалено голям натиск, искаме да можем да го премахнем, без да го огъваме. Този първи слой е горната страна на куба. Поставете друг слой върху първия, подравнете проводниците и започнете да запоявате. Открих, че е най -лесно първо да направите ъгли, след това външен ръб, след това вътре в редове. Продължете да добавяте слоеве, докато не приключите. Ако предварително сте огънали проводниците, не забравяйте да запазите слоя с прави изводи за последно. Това е дъното. Имах малко твърде много пространство между всеки слой, така че не получих съвсем куб. Не е голяма работа, мога да живея с това.

Стъпка 4: Изграждане на контролната платка

Изграждане на контролната платка
Изграждане на контролната платка
Изграждане на контролната платка
Изграждане на контролната платка
Изграждане на контролната платка
Изграждане на контролната платка

Как да изградите контролната платка и да я прикрепите към вашия Arduino: Следвайте схемата и изградете платката, както решите. Поставих чиповете на контролера в центъра на платката и използвам лявата страна за задържане на транзисторите, които контролират тока към всеки слой от куба, и използвах дясната страна за задържане на конекторите, които преминават от чиповете на контролера към катодите на LED колоните. Намерих стар 40 -милиметров компютърен вентилатор с женски съединител molex, който да го включи в компютърно захранване. Това беше перфектно. Малко количество въздушен поток през чипа е полезно и сега имам лесен начин да осигуря 5 волта към чиповете на контролера и самия Arduino. На схемата RC е резисторът за ограничаване на тока за всички светодиоди, свързани към всеки A6276EA. Използвах 1000 ома, защото осигурява 5 милиампера на светодиода, достатъчно, за да го запали. Използвам висока яркост, а не Super Brite светодиоди, така че изтичането на ток е по -ниско. Ако всички 8 светодиода в колона светят наведнъж, това е само 40 милиампера. Всеки изход на A6276EA може да издържи 90 милиампера, така че съм в обхвата. RL е резисторът, свързан към логическите или сигналните проводници. Действителната стойност не е много важна, докато съществува и не е твърде голяма. Използвам 560 ома, защото имах доста от тях на разположение. Използвах захранващ транзистор, способен да обработва до 6 ампера, за да контролира тока, преминаващ към всеки слой на куба. Това е прекалено много за този проект, тъй като всеки слой от куба ще извлича само 320 милиампера с включени всички светодиоди. Исках стая да расте и може да използвам контролната платка за нещо по -голямо по -късно. Използвайте транзистор с всякакъв размер, който отговаря на вашите нужди. Кондензаторът от 330 uF в източника на напрежение е там, за да помогне за изглаждане на малки колебания в напрежението. Тъй като използвам старо компютърно захранване, това не е необходимо, но го оставих в случай, че някой иска да използва 5 -волтов адаптер за захранване на куба си. Всеки A6276EA контролерен чип има 16 изхода. Нямах друг подходящ конектор, така че запоявах кабели към около 16 пинови IC гнезда и ще ги използвам за свързване на платката на контролера към куба. Също така разрязах IC гнездото наполовина и го използвах за свързване на 8 проводника, които свързват транзисторите към слоевете на куба. Отрязах около 5 инча от края на стар кабел за дискета, който да използвам като конектор за Arduino. Дискетният кабел е 2 реда по 20 пина, голият Bones Board има 18 пина. Това е много евтин начин (безплатен) за свързване на Arduino към платката. Разделих лентовия кабел на групи от 2 проводника, оголих краищата и ги запоявах заедно. Това ви позволява да включите Arduino в двата реда на конектора. Следвайте схемата и запоявайте конектора на място. Не забравяйте да запоите 5 -волтовите и заземяващите проводници на конектора, за да осигурите захранване на Arduino. Възнамерявам да използвам тази контролна платка за други проекти, така че модулният дизайн работи добре за мен. Ако искате да свържете кабелите по твърд кабел, това е добре.

Стъпка 5: Изградете витрината

Изградете витрината
Изградете витрината
Изградете витрината
Изградете витрината
Изградете витрината
Изградете витрината
Изградете витрината
Изградете витрината

Направете крайния си продукт да изглежда хубав: Намерих този дървен сандък в Hobby Lobby за 4 долара и си помислих, че ще бъде перфектен, тъй като има място вътре, за да побере цялата тел, плюс изглежда добре. Оцветих това едно червено, същото петно, което използвах на бюрото на компютъра си, така че да съвпадат. Начертайте решетка отгоре със същия размер като решетката, използвана за приспособлението за запояване (.6 инча между редовете). Пробийте дупки, за да прокарате проводниците през горната част, и пробийте друг отвор зад решетката за проводниците на слоя/равнината (от транзисторите в стъпка 4). Научих по трудния начин, че опитът да се подредят 64 води, за да се премине през малки дупки, е много труден. Най-накрая реших да пробия всички дупки малко по-големи, за да ускори процеса. В крайна сметка използвах около.2 свредло. Сега, когато кубът седи отгоре на дисплея, огънете ъгловите проводници, така че кубът да остане на място, докато прикрепяте проводниците. Уверете се, че сте прикрепили всички проводници в правилния ред. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 И свържете проводниците между слоевете (обозначени като „равнини“на схемата) и транзисторите. Транзисторът на щифт 6 на Arduino е най -горният слой на куба. Ако сгрешите проводниците, той е донякъде коригиран в кода, но може да изисква много работа, затова се опитайте да ги подредите в правилния ред. Добре, всичко е изградено и готово за работа, нека вземем код и да го изпробваме.

Стъпка 6: Код

Код
Код

Кодът за този куб е направен по различен начин от повечето, ще обясня как да се адаптирам. Повечето код на куба използва директни записи в колоните. Кодът казва, че колона X трябва да бъде запалена, така че дайте малко сок и сме готови. Това не работи, когато използвате чипове на контролера. Чиповете на контролера използват 4 проводника за разговор с Arduino: SPI-in, Clock, Latch и Enable. Заземих щифта Enable (щифт 21) през резистор (RL), така че изходът винаги е разрешен. Никога не съм използвал Enable, затова го извадих от кода. SPI-in са данните от Arduino, Clock е синхронизиращ сигнал между двамата, докато разговарят, а Latch казва на контролера, че е време да приеме нови данни. Всеки изход за всеки чип се контролира от 16-битово двоично число. Например; изпращането на 1010101010101010 към контролера би довело до запалване на всеки друг светодиод на контролера. Вашият код трябва да премине през всичко необходимо за дисплей и да изгради този двоичен номер, след което да го изпрати на чипа. По -лесно е, отколкото звучи. Технически това е куп побитово събиране, но аз съм лош в побитовата математика, така че правя всичко в десетично число. Десетичното за първите 16 бита е както следва: 1 << 0 == 1 1 << 1 == 2 1 << 2 == 4 1 << 3 == 8 1 << 4 == 16 1 << 5 == 32 1 << 6 == 64 1 << 7 == 128 1 << 8 == 256 1 << 9 == 512 1 << 10 == 1024 1 << 11 == 2048 1 << 12 == 4096 1 << 13 == 8192 1 << 14 == 16384 1 << 15 == 32768 Това означава, че ако искате да светват изходи 2 и 10, добавяте десетичните знаци (2 и 512) заедно, за да получите 514. Изпратете 514 към контролера и изходите 2 и 10. Ще светнат. Но ние имаме повече от 16 светодиода, така че става малко по -трудно. Трябва да изградим дисплейна информация за 4 чипа. Което е толкова лесно, колкото изграждането му за 1, просто го направете още 3 пъти. Използвам глобален масив от променливи, за да държа контролните кодове. Така е просто по -лесно. След като всичките 4 кода на дисплея са готови за изпращане, пуснете фиксатора (задайте го на LOW) и започнете да изпращате кодовете. Първо трябва да изпратите последния. Изпратете кодовете за чип 4, след това 3, след това 2, след това 1, след което отново задайте Latch на HIGH. Тъй като щифтът за активиране винаги е свързан към земята, дисплеят се променя незабавно. Повечето код на куб, който съм виждал на Instructables и в мрежата като цяло, се състои от гигантски блок код, зададен за изпълнение на предварително зададена анимация. Това работи добре за по -малки кубчета, но необходимостта от съхранение, четене и изпращане на 512 бита двоичен файл всеки път, когато искате да промените дисплея, отнема много памет. Arduino не може да се справи с повече от няколко кадъра. Затова написах няколко прости функции за показване на куба в действие, които разчитат на изчисление, а не на предварително зададени анимации. Включих малка анимация, за да покажа как се прави, но ще оставя на вас да създадете свои собствени дисплеи. Cube8x8x8.pde е кодът на Arduino. Планирам да продължа да добавям функции към кода и периодично да актуализирам програмата. Matrix8x8.pde е програма в процес на обработка за изграждане на ваши собствени дисплеи. Първият даден номер влиза в pattern1 , вторият в pattern2 и т.н. Информационният лист за A6276EA е достъпен на:

Стъпка 7: Покажете ръцете си

Покажете ръцете си
Покажете ръцете си

Готови сте, сега е време да се насладите на куба си. Както виждате, кубчето ми излезе малко криво. Не съм много запален да построя още един, така че ще живея с това, че е крив. Имам няколко мъртви точки, които трябва да разгледам. Възможно е връзката да е лоша, или може да се нуждая от нов контролерен чип. Надявам се, че този Instructable ви вдъхновява да изградите свой собствен куб или друг LED проект, използвайки A6276AE. Пуснете линк в коментарите, ако го изградите. Опитвах се да реша къде да отида оттук. Контролната платка също ще контролира 4x4x4 RGB куб, така че това е възможно. Мисля, че би било добре да се направи сфера и начинът, по който съм написал кода, няма да е твърде трудно да се направи.

Препоръчано: