Съдържание:

Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): 7 стъпки (със снимки)
Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): 7 стъпки (със снимки)

Видео: Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): 7 стъпки (със снимки)

Видео: Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): 7 стъпки (със снимки)
Видео: Пульт управления RGB подсветкой 2024, Юли
Anonim
Image
Image
Свържете платката на водача
Свържете платката на водача

Синовете ми искаха цветни LED ленти да осветяват бюрата им, а аз не исках да използвам консервиран RGB контролер за ленти, защото знаех, че ще им омръзне фиксираните модели, които тези контролери имат. Мислех също, че това ще бъде чудесна възможност да им създам обучителен инструмент, който да използват, за да изострят уменията за програмиране и електроника, на които ги преподавам. Това е резултатът.

Ще ви покажа как да изградите този прост, програмируем RGB LED контролер за ленти, използвайки Arduino Uno (или Nano), Adafruit Trellis и шепа други части.

Adafruit Trellis е една от любимите ми нови играчки от Lady Ada и екипажа. На първо място, това е само $ 9.95 за платката и още $ 4.95 за силиконовата подложка от еластомерни бутони (цени към момента на писане). Това е много за 16-бутонна 4х4 матрица с LED възможности. Той не идва с монтирани светодиоди, трябва да ги доставите, но това ви дава гъвкавост да избирате желаните от вас цветове (и намалява разходите и сложността в сравнение с вграждането на адресируеми светодиоди). За да изградите този проект като моя, ще ви трябват шепа 3 мм светодиоди. Използвах 2 червени, 2 зелени, 2 сини, 4 жълти и 6 бели.

Trellis използва I2C за комуникация, така че изисква само два I/O пина (данни и часовник) за управление на 16 бутона и 16 светодиода.

Можете да направите хардуерната част на този проект на малка прото платка, по този начин направих моя прототип. Бързо осъзнах, че имам нужда от нещо по -спретнато и по -съдържащо се на бюрата им (голият Arduino и прото платката, които бият наоколо, биха били твърде крехки), затова направих свой собствен щит за задвижване на LED лентите. Инструкциите и файловете за изграждане на щита са включени в последната стъпка.

Драйверът използва три IRLB8721 MOSFET и три резистора. И разбира се, ще ви трябва LED лента за шофиране; почти всяка обикновена 12V RGB LED лента ще свърши работа. Това са прости светодиоди, като SMD 5050, а не фантастични индивидуално адресируеми (без NeoPixels и т.н.)-това е друг проект! Имате нужда и от 12V захранване, достатъчно голямо, за да управлявате броя на светодиодите, които възнамерявате да използвате.

И така, за да обобщим, ето основните хардуерни нужди за този проект:

  • Един Arduino Uno или Nano (тези инструкции са за Uno с инсталирани женски заглавки, но Nano на макет работи добре) (Adafruit, Amazon, Mouser);
  • Една дъска Adafruit Trellis и силиконова подложка за копчета (Adafruit);
  • Три IRLB8721 N-канала MOSFET (Adafruit, Amazon, Mouser);
  • Три 1K резистора (Amazon, Mouser);
  • Три 220 ома резистора (Amazon, Mouser)
  • Една малка прото дъска (първата ми беше 1/4 размер-изберете всеки размер, с който можете да работите удобно) (Adafruit, Amazon);
  • 12V RGB LED лента (SMD 5050) (Adafruit, Amazon);
  • 12V захранване - изберете мощност, подходяща за броя светодиоди, които планирате да управлявате.

Необходим отказ от отговорност: връзките по -горе са предоставени за ваше удобство и не са одобрение на какъвто и да е продукт или доставчик; нито печеля от покупки, направени на тези връзки. Ако имате доставчици, които харесвате повече, непременно ги подкрепете!

Да започваме…

Стъпка 1: Свържете платката на водача

Свържете платката на водача
Свържете платката на водача

Ето схемата на LED драйвера. Много е просто. Той използва IRBLxxx N-канал MOSFET за всеки канал на LED лентата. LED лентата е общ анод, което означава, че +12V се изпраща към LED лентата, а червените, зелените и сините LED канали се контролират, като осигуряват заземяване на съответната връзка към лентата. Така че, ще свързваме източването на MOSFET към LED цветните канали и източника към земята. Портите ще бъдат свързани към цифрови изходи на Arduino, а резисторите осигуряват издърпване, което гарантира, че всеки MOSFET се включва или изключва напълно, ако е необходимо.

Arduino предлага широтно-импулсна модулация на някои от своите цифрови изходи, така че ще използваме тези изходи (по-специално D9, D10, D11), за да може да се контролира интензивността на всеки цветен канал.

Ако сте объркани какво да свържете къде на МОП -транзисторите IRLB8721, дръжте един в ръката си с лицевата страна към вас, както е показано на снимката по -горе. Щифтът вляво (щифт 1) е портата и ще се свърже с цифров изходен щифт на Arduino и резистора (другият край на резистора трябва да се свърже със земята). Щифтът в центъра (щифт 2) е канализацията и се свързва с цветен канал на LED лентата. Пинът вдясно (щифт 3) е източникът и е свързан към земята. Уверете се, че следите кой транзистор се свързва към кой LED цветен канал.

Няма да навлизам в подробности как да запоявам прото платки. Честно казано, мразя го и не съм добър в това. Но за добро или лошо, това работи и това е бърз и мръсен начин да се направи солиден прототип или еднократно. Първата ми дъска е показана тук.

Можете също така да направите това. Това със сигурност би било по -бързо от запояване на всичко на прото платка, но по -малко постоянно.

След като свържете вашия драйвер, свържете входовете на MOSFET порта към цифровите изходни щифтове на Arduino: D9 за зеления канал, D10 за червения канал и D11 за синия канал. Свържете и LED лентата към вашата прото платка.

Също така се уверете, че вашата платка на водача има отделна връзка от земята към един от заземяващите щифтове на Arduino.

И накрая, за LED захранване, свържете отрицателния (заземен) проводник на 12V захранването към маса на вашата платка на водача. След това свържете положителния проводник на 12V захранването към анодния проводник на вашата LED лента (това е черен проводник на кабелите ми, показан на снимката).

В крайна сметка създадох щит за PC платка, който се монтира на Uno, а също така има и монтажна опора за Trellis. Това осигури много по -завършен краен продукт. Ако искате да направите това, можете да пропуснете използването на прото платката, както е описано тук, и просто да направите щитната дъска. Всичко е описано в последната стъпка.

Стъпка 2: Поставете светодиоди върху решетката

Поставете светодиоди върху решетката
Поставете светодиоди върху решетката

Дъската на Trellis има празни подложки за 3 мм светодиоди, които ще трябва да запълним. Забележете внимателно символите на подложките-до подложката има много фин "+", който обозначава анодната страна. Ако държите дъската, така че текстът да е с дясната страна нагоре, има и обозначение в горната и долната част на дъската, което предупреждава, че LED анодите са вляво.

Запоявайте своите 3 мм светодиоди към дъската. Гледайки предната част на дъската, текст с дясната страна нагоре, горният ляв превключвател/LED позиция е #1, горният десен е #4, долният ляв е #13, а долният десен е #16. Ето цветовете, които използвах във всяка позиция (и има защо, затова ви съветвам да следвате моя модел поне за първите два реда):

1 - червен2 - зелен3 - син4 - бял5 - червен6 - зелен7 - син8 - бял9 - бял10 - бял11 - жълт12 - жълт13 - бял14 - бял15 - жълт16 - жълт

CC Attribution: Горното изображение на Trellis е от Adafruit и се използва под лиценза Creative Commons - Attribution/ShareAlike.

Стъпка 3: Свържете решетката към Arduino

Свържете решетката към Arduino
Свържете решетката към Arduino

Trellis има пет подложки за окабеляване, но само четири се използват в този проект. Trellis се нуждае от SDA и SCL, за да комуникира с Arduino (използвайки I2C), и 5V и GND за захранване. Последната подложка, INT, не се използва. Подложките Trellis се появяват по четирите ръба на дъската. Можете да използвате всеки набор от подложки, който желаете.

Запояйте плътен свързващ проводник към подложките 5V, GND, SDA и SCL. След това свържете 5V проводника към 5V щифта на Arduino, GND към заземяващия щифт, SDA проводника към A4 и SCL проводника към A5.

След това ще включим Arduino и ще качим скицата в него. Сега е подходящ момент да поставите силиконовата подложка за бутони върху дъската на Trellis. Той просто седи на дъската (обърнете внимание на "nubs" в долната част на подложката, които се вписват в отвори на дъската), така че може да искате да използвате няколко парчета лента, за да държите ръбовете на подложката към дъската за сега.

CC Attribution: Изображението на окабеляването Trellis по -горе е изрязана версия на това изображение от Adafruit и се използва под лиценза Creative Commons - Attribution/ShareAlike.

Стъпка 4: Изтеглете скицата на проекта и я качете в Arduino

Можете да изтеглите скицата от моето репо Github за този проект.

След като го получите, отворете го в Arduino IDE, свържете Arduino с помощта на USB кабел и качете скицата в Arduino.

Ако скицата е качена и решетката е правилно свързана, всеки от бутоните на решетката трябва да премигне бързо три пъти при натискане. Това е индикация, че сте натиснали невалиден бутон, тъй като системата излиза в състояние „изключено“, така че единственото валидно натискане на клавиш е това, което е необходимо, за да го включите.

За да включите системата, натиснете и задръжте долния ляв бутон (#13) за поне една секунда. Когато отпуснете бутона, всички светодиоди трябва да светнат за кратко и тогава долните два реда ще изгаснат, с изключение на #13 (долу вляво). Системата вече е в състояние на захранване и празен ход.

Можете да опитате да използвате горните два реда, за да озарите и затъмните LED каналите като първи тест. Ако това работи, добре е да преминете към следващата стъпка. Ако не, проверете:

  1. LED захранването е свързано и включено;
  2. MOSFET платките на драйвера са правилно свързани. Ако използвате същите IRLB8721, които използвах, проверете:

    • Сигналните входове на платката на водача (MOSFET порти, IRLB8721 пин 1) са свързани към Arduino D9 = зелено, D10 = червено, D11 = синьо (вижте бележката по -долу);
    • LED лентата е свързана към платката на драйвера, а цветните LED канали са свързани към MOSFET канали (IRLB8721 щифт 2);
    • Изходните щифтове на MOSFET (IRLB8721 щифт 3) са свързани към масата на платката на драйвера;
  3. Заземяваща връзка между платката на водача и заземяващия щифт на Arduino.

В следващата стъпка ще играем с някои от функциите на потребителския интерфейс на клавиатурата.

ЗАБЕЛЕЖКА: Ако вашият контролер работи, но бутоните за интензивност не контролират правилните цветове, не се притеснявайте и не свързвайте отново! Просто отидете в Sketch в IDE на Arduino и променете червените, зелените и сините дефиниции на щифтове в горната част на файла.

Стъпка 5: Основни функции за управление

Основни функции за управление
Основни функции за управление

Сега, когато системата е включена, можем да играем с някои от бутоните и да я накараме да прави неща.

Както казах в предишната стъпка, когато се включи, системата излиза в състояние на "празен ход". В това състояние можете да използвате бутоните в горните два реда, за да увеличите и намалите интензитета на цвета на всеки от червените, зелените и сините LED канали. Ако използвате белите бутони за увеличаване/намаляване, системата увеличава или намалява интензивността на трите канала еднакво и на равни нива.

Долните два реда се използват за възпроизвеждане на предварително зададени модели. Тези модели се съхраняват в EEPROM на Arduino. Когато скицата се изпълнява за първи път, тя вижда, че EEPROM няма запазени шаблони и съхранява набор от шаблони по подразбиране. След това можете да промените тези модели и промените ви се съхраняват в EEPROM на Arduino, замествайки предварително зададения модел. Това гарантира, че вашите модели преживяват прекъсванията на захранването. Функцията за редактиране е описана в следващата стъпка.

Засега натиснете за кратко някой от предварително зададените бутони (осемте бутона в долните два реда), за да стартирате шаблона, съхранен за този бутон. Бутонът мига, докато шаблонът работи. За да спрете шаблона, натиснете отново за кратко бутона с шаблона. Докато се изпълнява модел, белите бутони нагоре/надолу в горните редове могат да се използват за промяна на скоростта на шаблона.

Ако оставите проекта сам за няколко секунди, без да докосвате никакви бутони, ще забележите, че светодиодите затъмняват. Това е както за пестене на енергия, така и за да се избегне прекомерното осветяване на Trellis на всяко „настроение“, което светодиодите се опитват да създадат. Докосването на бутон на решетката ще го събуди.

За да изключите системата, натиснете и задръжте долния ляв бутон (#13) за една или повече секунди и отпуснете. Решетката и LED лентата ще потъмнеят.

Стъпка 6: Редактиране на шаблони на клавиатурата

Редактиране на шаблони на клавиатурата
Редактиране на шаблони на клавиатурата

Както казах в предишната стъпка, скицата съхранява осем шаблона по подразбиране в EEPROM при първото стартиране. Можете да промените 7 от тези шаблони на нещо друго, ако желаете, като използвате режима за редактиране на шаблони на клавиатурата.

За да влезете в режим на редактиране на шаблони, първо решете за кой бутон искате да редактирате шаблона. Можете да изберете всеки бутон, различен от долния ляв бутон. Влезте в режим за редактиране на шаблони чрез продължително натискане (задръжте повече от една секунда) върху избрания от вас бутон с шаблон. Когато се освободи, бутонът ще свети плътно и горните два реда ще започнат да мигат. Това показва, че сте в режим на редактиране.

Режимът на редактиране започва от първата стъпка на шаблона и продължава, докато не излезете от редактирането или завършите редактирането на 16 -тата стъпка (максимум 16 стъпки на шаблон). На всяка стъпка използвайте бутоните за интензивност на канала в горните два реда, за да изберете цвета, който искате за тази стъпка. След това натиснете кратко бутона за предварително зададени шаблони, за да запазите този цвят и преминете към следващата стъпка. На последната стъпка, вместо кратко натискане, просто натиснете дълго, за да излезете от редактирането.

След като излезете от редактирането на шаблони, моделът се възпроизвежда автоматично.

Това е! Вече имате RGB LED контролер, който ще подреди шаблони, които можете да програмирате чрез клавиатурата. Можете да спрете тук или ако искате да изградите по -официална версия на този проект, продължете през останалите стъпки.

Стъпка 7: По -добър хардуер: RGB LED драйвер щит и корпус

Image
Image
По -добър хардуер: RGB LED драйвер щит и корпус
По -добър хардуер: RGB LED драйвер щит и корпус
По -добър хардуер: RGB LED драйвер щит и корпус
По -добър хардуер: RGB LED драйвер щит и корпус

След като имах работещ прототип, знаех, че не мога да оставя гол Arduino и протоборд на бюрата на децата си като постоянно решение. Имах нужда от заграждение за проекта. Реших също, че ще направя по -добър борд за шофьори и смятах, че това е идеалната възможност да направя свой собствен щит.

Изчистих схемата на хартията си, като я въведох в ExpressSCH, безплатен инструмент, предлаган от ExpressPCB, производител на дъски, който предлага евтини кратки серии от малки PC платки. Използвам ExpressPCB повече от десетилетие по проекти, но използвам всички инструменти и производител, които предпочитате, по всякакъв начин.

Добавих няколко малки функции към основната схема, така че да функционира добре като щит за този проект. Добавих кабелни подложки за свързване на Trellis, жак за захранване, пилотна лампа и конектор за LED лентата. Добавих и място за кондензатор в захранването. Крайната верига е показана тук.

Реших, че мощността за проекта трябва да идва от щита. 12V, доставени към щита, захранват както LED лентата, така и Arduino. Захранването на Arduino се осигурява чрез свързване на захранващия вход към VIN щифта на Arduino, който е двупосочен (можете да подадете захранване към Arduino на този щифт, или ако свържете захранване към Arduino на друго място, той ще ви даде доставения захранване на този щифт). Защитният диод D1 предотвратява всяко захранване, свързано директно към Arduino (например USB), да се опитва да захранва светодиодите.

Защо не използвате захранващия жак на Arduino и просто свържете 12V там? Докато можех да захранвам 12V към гнездото за захранване на Arduino и да използвам VIN щифта, за да хвана тази мощност за щита, бях притеснен, че D1 диодът и следите на Arduino няма да достигнат високите токове, възможни при задвижване на светодиода ленти. И така, реших, че моят щит ще поеме входната мощност и ще захранва Arduino, а също така имах нужда от 5V за Trellis, но бордовото регулиране на захранването на Arduino захранва 5V на няколко пина, така че използвах един от тях за Решетка. Това ме спаси да сложа верига на регулатора на щита.

След това изложих печатната платка. Използвах някои ресурси, които намерих, за да получа точните измервания за поставяне на щифтовете, за да отговарят на заглавията на Arduino Uno. Малко усърдие и това съвпадна при първия опит. В самата щитова верига няма много, така че имах достатъчно място. Поставих широки следи за LED натоварванията, така че за моите нужди ще има много капацитет за носене на ток. Поставих MOSFET, където могат да бъдат монтирани плоски, със или без радиатори. Досега не съм имал нужда от радиатори за броя на светодиодите, които съм използвал, но мястото е там, ако е необходимо.

Добавих и дупки, които съответстват на монтажните отвори на решетката, така че да мога да използвам стойки, за да монтирам решетката към моя щит. С включения щит към Arduino и решетката, окачена на стойки над щита, всичко трябва да е хубаво и плътно.

След това отпечатах оформлението на дъската и я залепих на парче сърцевина от пяна и вмъкнах частите си, за да се уверя, че всичко е подходящо. Всичко е наред, затова изпратих поръчката.

След това започнах работа по заграждение. Използвайки Fusion 360, проектирах прост корпус, който да съдържа трите платки (Arduino Uno, щит и Trellis). Дупките в кутията позволяват свързване към USB порта на Arduino и, разбира се, достъп до свързването на LED лентата и щита за захранване. Захранващият жак Arduino е покрит от корпуса, за да се гарантира, че не се използва. След няколко прототипа за тестване, най -накрая имах дизайн, от който бях доволен. Публикувах STL файловете за кутията в Thingiverse.

В бъдеще ще направя версия на дъската, към която може да се включи Nano директно, Това ще направи проекта още по -компактен. Дотогава можете също да използвате адаптер за щит Nano към Uno като този.

Ако ще правите щита, ето какво ще ви трябва в допълнение към частите, споменати в стъпка 1:

  • RGB LED Driver Shield PC платка (от ExpressPCB или други; можете да изтеглите файловете от моето репо Github за проекта);
  • 1N4002 диод;
  • 100uF 25V радиален електролитен кондензатор (използвайте 220uF или 470uF при голям LED товар);
  • Захранващ жак, PJ202-AH (модел с 5А).

Следните части са незадължителни:

  • 3 мм LED - всеки цвят, за пилотна лампа (може да бъде пропуснат)
  • Резистор 1500 ома - необходим е само ако използвате LED контролна лампа

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