Мазмұны:

Жарық бояуға арналған RGB жарықдиодты қалам: 17 қадам (суреттермен)
Жарық бояуға арналған RGB жарықдиодты қалам: 17 қадам (суреттермен)
Anonim
Жарық бояуға арналған RGB жарықдиодты қалам
Жарық бояуға арналған RGB жарықдиодты қалам
Жарық бояуға арналған RGB жарықдиодты қалам
Жарық бояуға арналған RGB жарықдиодты қалам
Жарық бояуға арналған RGB жарықдиодты қалам
Жарық бояуға арналған RGB жарықдиодты қалам

Бұл RGB жарықдиодты контроллерді қолданатын жеңіл бояу құралына арналған құрастырудың толық нұсқауы. Мен бұл контроллерді озық құралдарымда көп қолданамын және оның қалай жасалғаны мен бағдарламаланғаны туралы деректі фильм кейбір адамдарға көмектесе алады деп ойладым.

Бұл құрал жеңіл жазуға, жеңіл сурет салуға және граффитиге арналған RGB модульдік қалам. Қолдану оңай, себебі қолыңызда қалам ғана бар және сіз түсін тез өзгерте аласыз.

Құрал мыналардан тұрады:

  • 3D басып шығарылған корпус
  • Arduino Micro
  • жарықдиодты WS2816B
  • екі потенциометр (10K немесе 100K)
  • екі қосқыш
  • басу түймесі
  • және кейбір кабельдер.

Arduino Micro бұл үшін өте қолайлы, себебі RGB светодиодтарын басқару өте кішкентай және керемет. Сіз сондай -ақ LilyPad немесе ATtiny85 сияқты кіші микроконтроллерлерді қолдана аласыз, бірақ мен Micro -ды жиі қолданамын, себебі ол пайдалануға дайын USB қосқышымен бірге келеді. Arduino да, светодиоды да 5В -пен жұмыс істейді, сондықтан сіз дұрыс қуат қолдауына қамқорлық жасауыңыз керек. Бұл құрал төрт AAA қайта зарядталатын батареяларды қолдануға арналған, өйткені оларда әдетте 1,2 В және 4,8 В қосылады, бұл Arduino мен жарық диодты қосуға жеткілікті. Кәдімгі AAA батареяларын пайдаланбауды қадағалаңыз, себебі оларда 1,5 В кернеуі бар және жиынтық кернеу компоненттер үшін тым көп болуы мүмкін және оларды зақымдауы мүмкін. Егер сіз тұрақты батареяны қолданғыңыз келсе, тек үшеуін қолданыңыз, кернеу әлі де жеткілікті болуы керек. Батарея корпусы үшін басқа біреудің 3D басылған тағы бір керемет бөлігін қолдандым: «Иілгіш батарея ұстағыштары».

1 -қадам: бағдарламалау

Алдымен жүктеу және пайдалану тегін микроконтроллерді бағдарламалау үшін сізге Arduino IDE қажет. Бұл бір қарағанда өте күрделі болып көрінеді, бірақ өте қарапайым. Бағдарламалық жасақтаманы орнатқаннан кейін сіз Arduino -ға жүктелген эскизді кодтау үшін қолданылатын қарапайым мәтіндік редактор терезесін аласыз. Бұл құрал сонымен қатар FastLED кітапханасын пайдаланады, ол сатып алуға болатын кез келген дерлік RGB светодиодты басқаруға болатын тамаша және қарапайым кітапхана. Кітапхананы жүктегеннен кейін файлдарды Arduino IDE жасаған кітапхана қалтасына орналастыру арқылы орнату қажет. Егер сіз оны өзгертпеген болсаңыз, оны әдетте «C: / Users {User Name} Documents / Arduino / library» бөлімінен табуға болады. Кітапхананы осы қалтаға қойғаннан кейін, егер ол жұмыс істеп тұрса, IDE қайта іске қосу керек. Енді біз контроллердің кодын жасауға дайынбыз.

2 -қадам: Кодекс

FastLED кітапханасын пайдалану үшін алдымен оны біздің кодқа енгізу керек. Бұл жолдың кез келгенінен бұрын кодтың жоғарғы жағында жасалады:

#қосу

Әрі қарай біз бірнеше тұрақтыларды анықтаймыз. Бұл код жұмыс істеп тұрған кезде бұл мәндер өзгермейтіндіктен және оны оқуға ыңғайлы ету үшін жасалады. Сіз бұл мәндерді тікелей кодқа енгізе аласыз, бірақ егер сізге бірдеңені өзгерту қажет болса, сіз бүкіл кодты өтуіңіз керек және мәнді пайдаланатын әрбір жолды өзгертуіңіз керек. Анықталған тұрақтыларды қолдану арқылы оны тек бір жерде өзгерту қажет. және негізгі кодты ұстаудың қажеті жоқ. Алдымен біз осы контроллер пайдаланатын түйреуіштерді анықтаймыз:

#анықтаңыз HUE_PIN A0

#BRIGHT_PIN A1 анықтау #LED_PIN 3 анықтау #LIGHT_PIN 6 анықтау #COLOR_PIN 7 #Rainbow_PIN 8 анықтау

Сандар немесе атаулар Arduino -да басылған бірдей. Аналогты түйреуіштер оның нөмірінің алдында А белгісімен анықталады, цифрлық түйреуіштер тек кодтағы нөмірді қолданады, бірақ кейде тақтада жетекші D әріпімен басылады.

А0 түйреуішіндегі потенциометр түс реңктерін бақылау үшін, жарықтықты басқару үшін А1 түйреуішіндегі потенциометр қолданылады. Pin D3 жарықдиодты сигнал ретінде пайдаланылады, сондықтан Arduino түсін бақылау үшін деректерді жібере алады. D6 түйреуіші жарықты ауыстыру үшін пайдаланылады, ал контроллер режимін орнату үшін D7 және D8 түйреуіштері қолданылады. Мен бұл контроллердің режимдерін енгіздім, олардың біреуі жарық диодына потенциометрмен анықталатын түсті қояды, ал екіншісі барлық түстерден жоғалады. Содан кейін бізге FastLED кітапханасының бірнеше анықтамасы қажет:

COLOR_ORDER GRB анықтаңыз

#CHIPSET WS2811 анықтаңыз #NUM_LEDS анықтаңыз 5

Чипсет кітапханаға біз қандай жарықдиодты қолданатынын айту үшін қолданылады. FastLED қол жетімді кез келген дерлік RGB светодиодын қолдайды (мысалы, NeoPixel, APA106, WS2816B және т.б.). Мен қолданатын жарық диоды WS2816B ретінде сатылады, бірақ ол басқаша көрінеді, сондықтан ол WS2811 чипсеті арқылы жақсы жұмыс істейді. Түсті орнату үшін светодиоды жіберетін байт тәртібі өндірушілер арасында да әр түрлі болуы мүмкін, сондықтан бізде де байт тәртібінің анықтамасы бар. Мұндағы анықтама кітапханаға жасыл, қызыл, көк реңктерін жіберуді ұсынады. Соңғы анықтама қосылған светодиодтардың мөлшеріне қатысты. Сіз әрқашан светодиодты аз қолдана аласыз, содан кейін сіз кодты анықтайсыз, сондықтан мен бұл санды 5 -ке қойдым, себебі мен бұл құралмен 5 -тен көп жарық диодты қаламдарды жобаламаймын. Сіз нөмірді әлдеқайда жоғары қоя аласыз, бірақ өнімділіктің арқасында мен оны қажет болғанша сақтаймын.

Негізгі код үшін бізге бірнеше айнымалылар қажет:

int жарықтығы = 255;

белгісіз int pot_Reading1 = 0; белгісіз int pot_Reading1 = 0; қол қойылмаған long lastTick = 0; белгісіз int wheel_Speed = 10;

Бұл айнымалылар жарықтық үшін, потенциометрлерден оқулар үшін, кодтың соңғы рет орындалғанын және түс түсінің қаншалықты жылдам болатынын еске түсіру үшін қолданылады.

Содан кейін біз жарықдиодты жиектерді анықтаймыз, бұл түс орнатудың оңай әдісі. Жарықдиодты шамалардың анықталған саны осы жерде массивтің өлшемін орнату үшін қолданылады:

CRGB светодиодтары [NUM_LEDS];

Анықтамаларға назар аударғаннан кейін біз енді орнату функциясын жаза аламыз. Бұл бағдарлама үшін өте қысқа:

жарамсыз орнату () {

FastLED.addLeds (leds, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }

Бірінші жол FastLED кітапханасын инициализациялайды, біз бұрын анықтадық. Соңғы үш жол Arduino -ға бұл түйреуіштер кіріс ретінде пайдаланылатынын және егер олар ешнәрсеге қосылмаған болса, олардың кернеуі жоғары (PULLUP) болуы керек екенін айтады. Бұл бір нәрсені іске қосу үшін осы түйреуіштерді GND -ге қосу керек дегенді білдіреді.

Енді біз негізгі бағдарламаны шеше аламыз. Бұл цикл функциясында орындалады. Алдымен біз бірнеше айнымалыларды орнатамыз және потенциометрлерді оқимыз:

void loop () {

uint8_t статикалық реңк = 0; статикалық uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); реңк = карта (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); жарықтық = карта (pot_Reading2, 0, 1023, 0, 255);

Алғашқы екі жолда кейінірек түс үшін қолданылатын айнымалылар орнатылады. Келесі екі блок потенциометрдің мәндерін оқуға көмектеседі. Егер сіз «analogRead» көмегімен түйреуішті оқысаңыз, 0 мен 1023 арасындағы мәнді аласыз, бірақ реңк пен жарықтылыққа 0 мен 255 арасындағы мән қажет болса, біз оқуды бір мән аймағынан екіншісіне аудару үшін «карта» функциясын қолданамыз. Бұл функцияның бірінші параметрі - аударғыңыз келетін мән, соңғы төртеуі - аудару үшін пайдаланылатын аймақтардың минимумы мен максимумы.

Содан кейін біз батырманы бағалаймыз:

егер (digitalRead (LIGHT_PIN) == LOW) {

Біз оқуды LOW -ке қарсы тексереміз, себебі біз істікшені жоғары емес деп анықтадық. Егер түйме басылса, түйреуіш GND -ге қосылады және төмен оқылады. Егер түйреуіштер басылмаса, көп нәрсе болмайды.

Алдымен бір түсті жарық диодты жарықтандыруды қарастырайық:

егер (digitalRead (COLOR_PIN) == LOW) {

if (реңк <2) {FastLED.showColor (CRGB:: Ақ); FastLED.setBrightness (жарықтық); } else {FastLED.showColor (CHSV (реңк, 255, жарықтық)); FastLED.setBrightness (жарықтық); } кешіктіру (10);

Біз бұл режимді қолданғымыз келетінін білу үшін түсті түйреуішті бағалауымыз керек. Содан кейін біз қандай түс қажет екенін тексере аламыз. HSV түс моделі мұнда қолданылатындықтан, бізге тек түс анықтау үшін реңк қажет. Бірақ бұл сонымен қатар бізде ақ түске өзгертуге мүмкіндік бермейтін мәселе туғызады. Реңк 0 мен реңк 255 екеуі де қызылға аударылғандықтан, мен мұнда кішкене трюк қолданамын және реңк потенциометрінің көрсеткіші 2 -ден кіші екенін тексеремін. Бұл потенциометрдің бір жаққа бұрылғанын білдіреді және біз оны ақ түске қою үшін қолдана аламыз.. Бізде әлі де қызыл түс бар, сондықтан мұнда ештеңе жоғалтпаңыз.

Түсті ақ түске, сосын жарықтыққа қоямыз немесе реңктің түсіне, сондай -ақ жарықтыққа қарай түс орнатамыз.

Содан кейін мен кішкене кідірісті қостым, себебі қуатты үнемдеу үшін контроллерге біраз уақыт үзіліс берген жөн және 10 миллисекундқа кешігу сезілмейді.

Содан кейін біз түс жоғалуын кодтаймыз:

әйтпесе (digitalRead (RAINBOW_PIN) == LOW) {

wheel_Speed = карта (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, жарықтық)); }

Алдымен бұл режимді ауыстыратын түйреуіш тексеріледі. Мен түс жоғалту жылдамдығын бақылау үшін үшінші потенциометрді қосқым келмегендіктен және реңк потенциометрі бұл режимде қолданылмағандықтан, біз жылдамдықты орнату үшін сол потенциометрді қолдана аламыз. Карта функциясын қайтадан қолдана отырып, біз оқуды өшу жылдамдығына аударылатын кідіріске аударамыз. Мен кешіктіру үшін 2 мен 30 арасындағы мәнді қолдандым, себебі тәжірибеден бұл жақсы жылдамдық. «Миллис» функциясы Arduino қосылғаннан кейін миллисекундтарды қайтарады, сондықтан біз мұны уақытты өлшеу үшін пайдалана аламыз. Реңктің соңғы өзгеруі біз бұрын анықтаған айнымалыда сақталады және бұл реңкті қайтадан өзгерту керек пе екенін білу үшін әр уақытта салыстырылады. Соңғы жолда келесіде көрсетілуі қажет түс орнатылады.

Кодты аяқтау үшін:

} басқа {

FastLED.showColor (CRGB:: Қара); }}

Түсті қара етіп қою және кез келген ашық жақшаларды жабу арқылы түйме басылмаса, біз тек жарық диодты өшіруіміз керек.

Көріп отырғаныңыздай, бұл өте қысқа және қарапайым код, оны RGB светодиодты қолданатын көптеген құралдар үшін қолдануға болады.

Толық кодты алғаннан кейін оны Arduino -ға жүктей аласыз. Ол үшін Arduino -ны компьютерге USB кабелі арқылы жалғап, IDE ішіндегі Arduino түрін таңдаңыз.

Бұл нұсқаулықта мен Arduino Pro Micro қолданамын. Arduino моделін орнатқаннан кейін IDE таба алатын портты таңдау керек. Порт мәзірін ашыңыз, сіз қосылған Arduino -ны көресіз.

Енді терезенің жоғарғы жағындағы екінші дөңгелек түймені басу арқылы кодты Arduino -ға жүктеу ғана қалады. IDE кодты құрады және оны жүктейді. Бұл сәтті болғаннан кейін Arduino -ны ажыратып, контроллерді жинауды жалғастыра аласыз.

3 -қадам: Контроллерге арналған электрониканы жинау

Біз Arduino кодтау туралы қамқорлық жасағандықтан, енді контроллердің аппараттық құралдарын жинай аламыз. Біз компоненттерді корпустың ішіне қоюдан бастаймыз. Потенциометрлер сол жақтағы екі дөңгелек тесікке түседі, қуат қосқышы төменгі жағында, режим қосқышы оң жақ жоғарғы жағында, Arduino ұстағыш ортасында орналасқан.

4 -қадам:

Кескін
Кескін

Қуат қосқышынан Arduino RAW істігіне қызыл кабельді дәнекерлеуден бастаңыз. Бұл түйін кернеу реттегішіне қосылғандықтан, электрмен жабдықтауға арналған, сондықтан кернеу 5 В жоғары болса да, бұл түйін Arduino -ны қуаттандыру үшін қолданыла алады. Келесі VCC түйреуішіне басқа қызыл сымды дәнекерлеңіз, өйткені бізге потенциометр үшін жоғары деңгейлі кернеу қажет. Потенциометрдің көрсеткіштері үшін қолданылатын екі ақ сымды A0 және A1 түйреуіштеріне дәнекерлеңіз.

5 -қадам:

Кескін
Кескін

Енді жоғарыдағы саңылау арқылы ұзын ақ және ұзын жасыл сымды салыңыз, ол кейінірек жарық диодты қосу үшін қолданылады. Жасылды 3 -ке, ақты 6 -ға түйістіріп, Arduino -ге тегіс басыңыз. Ардуиноның сол жағындағы GND түйреуіштеріне екі қара сым дәнекерленген, олар потенциометрлер үшін төмен кернеу үшін қолданылады. Режимді ауыстыру үшін 7 және 8 түйреуішке екі көк сымды дәнекерлеңіз.

6 -қадам:

Кескін
Кескін
Кескін
Кескін

Біз VCC түйреуішіне дәнекерленген қызыл кабель енді бірінші потенциометрдің сыртқы түйреуіштерінің біріне дәнекерленуі керек. Басқа потенциометрге жалғастыру үшін басқа қызыл кабельді қолданыңыз. Екі потенциометрде бір жағын қолдануға назар аударыңыз, сондықтан толық екеуінде де бірдей болады. Екі қара кабельді потенциометрдің екінші жағына және ақ түйреуіштерді A0 және A1 түйреуіштерінің ортасындағы түйреуге дәнекерлеңіз. Потенциометрлер ортаңғы түйреуіштегі кернеуді сыртқы түйреуіштерге кернеу арасындағы кернеуге орнату арқылы жұмыс істейді, сондықтан егер біз жоғары және төмен кернеуді қоссақ, ортаңғы істікшенің арасында кернеу алуға болады. Бұл потенциометрлердің сымдарын аяқтады және оларды сәл бұруға болады, сондықтан түйреуіштер жолдан шығып кетеді.

7 -қадам:

Кескін
Кескін

Қара кабельді режим қосқышының ортаңғы түйреуішіне дәнекерлеңіз және қорек көзіне апаратын тесік арқылы ұзын қара кабельді салыңыз. Жарық диоды үшін GND ретінде пайдаланылатын үстіңгі саңылауға басқа ұзын қара кабель салыңыз.

8 -қадам:

Кескін
Кескін

Қуат көзінен келетін қара кабель Arduino -ның соңғы бос GND істігіне қосылған басқа қара сымға дәнекерленген. Жарықдиодты жарық диодына апаратын сымды және режим қосқышындағы қара сымды бірге дәнекерлеп, ақырында сізде бар екі жұп қара сымды дәнекерлеңіз. Контроллер ішіндегі шортты болдырмау үшін дәнекерлеуді оқшаулау үшін қысқаратын түтікті пайдаланыңыз.

9 -қадам:

Кескін
Кескін

Соңғы қадам ретінде біз енді екі көк сымды режим қосқышына дәнекерлей аламыз. Бұл қосқыштар қосқыштың қай жағына байланысты сыртқы түйреуіштердің біріне ортаңғы түйреуішті қосу арқылы жұмыс істейді. 7 және 8 түйреуіштер GND қосылған кезде іске қосылатын етіп орнатылғандықтан, біз түйреуіштер үшін қосқыштың сыртқы түйреуіштерін және GND үшін ортасын қолдана аламыз. Осылайша, түйреуіштердің бірі әрқашан іске қосылады.

Ақырында қызыл сымды қуат саңылауынан өткізіп, оны қуат қосқышының ортаңғы түйреуішіне дәнекерлеңіз, светодиодтың саңылауынан тағы бір ұзын қызыл сымды салыңыз және оны Arduino қосылған қуат қосқышының сол түйреуішіне дәнекерлеңіз.

10 -қадам:

Кескін
Кескін

Қуат кабельдерін батарея ұстағышына дәнекерлеңіз және светодиоды бар кабельдерді ұстайтын қысқышқа бұраңыз. Бұл контроллердің сымын аяқтайды.

11 -қадам: Жеңіл қаламды жинау

Бұл құрал модульдік және әр түрлі қаламдарды қолдануға арналған болғандықтан, бізге светодиодты қосатын қосқыш қажет. Мен арзан 4 терминалды molex коннекторын қолдандым, оны әдетте компьютердегі желдеткіштер үшін қолданылатын кабельдерде табуға болады. Бұл кабельдер арзан және алуға оңай, сондықтан олар мінсіз.

12 -қадам:

Кескін
Кескін
Кескін
Кескін

Мен контроллерді қосуды бастаған кезде мен коннекторлардағы кабельдердің түстерін тексермедім, сондықтан олар сәл өзгеше, бірақ есте сақтау оңай. Мен қара сымдарды сарыға, жасылға жасылға, аққа көкке қостым, бірақ сіз кез келген комбинацияны қолдана аласыз, оны басқа қаламдар үшін де есте сақтаңыз. Шортты болдырмау үшін дәнекерленген жерлерді қысқаратын түтікпен оқшаулауды қадағалаңыз.

13 -қадам:

Кескін
Кескін
Кескін
Кескін

Ұзын қызыл және ұзын жасыл сымды қалам арқылы өткізіп, түйменің бір жағына қара сымдарды, ал екінші жағына ақ сымды дәнекерлеңіз. Мұндай түймелерде төрт түйреуіш бар, олардың екеуі жұппен қосылады. Түйменің төменгі жағына қарап, қандай түйреуіштер қосылғанын көруге болады, қосылған жұптардың арасында алшақтық бар. Егер сіз түймені бассаңыз, оның екі жағы басқа жаққа қосылады. Содан кейін ақ және бір қара кабель түйменің саңылауынан бастап қаламның соңына дейін тартылады. Басқа қара кабель алдыңғыға қарай тартылады. Жұмыс істеу үшін екі жағынан да кабель жеткілікті екеніне көз жеткізіңіз.

14 -қадам:

Кескін
Кескін
Кескін
Кескін

Саңылаудағы батырманы басыңыз және қалған кабельдерді дайындаңыз. Кабельдерді светодиодтың ортасына қарайтын етіп дәнекерлеген дұрыс, себебі кабельдер қаламның ортасынан өтеді. Қызыл сымды 5В дәнекерлегішке, қара сымды GND дәнекерлеуге және жасыл сымды Din дәнекерлегішке дәнекерлеңіз. Егер сізде бірнеше светодиод болса, бірінші жарықдиодты Dout дәнекерлеу жастықшасы келесі жарықдиодты Динге қосылады және т.б.

15 -қадам:

Кескін
Кескін
Кескін
Кескін

Енді қаламның алдындағы түймені басып, оны ұстап тұру үшін оның артына бір тамшы желім қойыңыз.

Енді түстерді ескере отырып, қаламның соңындағы сымдарды коннектордың екінші жағына дәнекерлеу керек.

Қаламның ұшындағы сымдардың үзілуіне жол бермеу үшін желім тамшысын және бірнеше таспаны қолданған дұрыс. Бұл жеңіл қаламның жиналуын аяқтайды.

16 -қадам: Мысалдар

Мысалдар
Мысалдар
Мысалдар
Мысалдар
Мысалдар
Мысалдар
Мысалдар
Мысалдар

Ақырында мен сізге бұл құралды қолданған бірнеше мысалдарды көрсеткім келеді. Бұрыштық қалам граффити сызықтарын жарықтандыруға өте ыңғайлы, ал түзу қалам - ауада сурет салу мен жазуға өте ыңғайлы (бұл үшін менде талант аз).

Бұл құралдың негізгі мақсаты. Көріп отырғаныңыздай, бұл құралдың көмегімен ұзақ экспозицияны қоссаңыз, мүмкіндіктер керемет болады.

Мұндай фотосуретті бастау үшін камера қолдайтын ең төменгі ISO параметрін және жоғары диафрагманы қолдануға тырысыңыз. Дұрыс параметрлерді табудың жақсы әдісі - камераны диафрагма режиміне қою және камераға экспозиция уақыты көрсетілмейінше, суретке не қосқыңыз келетінін салу қажет уақытты көрсеткенше диафрагманы жабу. Содан кейін нұсқаулыққа ауысыңыз немесе экспозиция уақытын пайдаланыңыз немесе шам режимін қолданыңыз.

Осыларды сынап көріңіз! Бұл таңғажайып өнер түрі.

Мен бұл нұсқаулықты өнертапқыштарға және әдеттен тыс қолдануға арналған тапсырманы қостым, сондықтан сізге ұнаса, дауыс беріңіз;)

17 -қадам: файлдар

Мен сондай -ақ контроллер корпусының астына желімделуге арналған белдік ұстағыштарға арналған модельдерді қостым, және қалам қажет емес кезде қақпаққа жабыстыруға болатын қаламға арналған қысқышты қостым. сіздің қолыңызда.

Сондай -ақ, қалам камераға тікелей бағытталған кезде жарықты тегістеу және жарқылдың алдын алу үшін қолданылатын диффузорлық қақпақтар бар.

Ұсынылған: