Բովանդակություն:

Starry Sky Led փողկապ. 9 քայլ (նկարներով)
Starry Sky Led փողկապ. 9 քայլ (նկարներով)

Video: Starry Sky Led փողկապ. 9 քայլ (նկարներով)

Video: Starry Sky Led փողկապ. 9 քայլ (նկարներով)
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Նոյեմբեր
Anonim
Image
Image
Starry Sky Led փողկապ
Starry Sky Led փողկապ
Starry Sky Led փողկապ
Starry Sky Led փողկապ

Քիչ առաջ դոլարի խանութում ես գտա մանկական մանրաթելային խաղալիքներով խաղալիք և սկսեցի մտածել, թե ինչ կարող եմ անել դրա հետ:

Իմ խենթ գաղափարներից մեկը աստղալից երկնքի ազդեցությամբ փողկապ սարքելն էր:

Ես դեռ ունեի arduino pro mini- ի, adafruit տախտակներ և մարտկոցներ, որոնք հավանաբար կհամապատասխանեին այս նախագծին:

Այսպիսով, հենց որ ես գտա գեղեցիկ լայն փողկապ իմ քաղաքի գրավատանը և գտա մի տուփ, որը կարող էր հարմարվել տեխնիկային, ես որոշեցի գնալ դրա համար և փորձել կառուցել այն:

Այս հրահանգը ցույց է տալիս, թե ինչպես եմ դա պատրաստել:

Այն աշխատում է arduino pro mini, adafruit powerboost 500 լիցքավորիչով, emmerich icr 18650nh-sp և 5 սպիտակ LED- ներով: Կոդը LED- ի փոփոխության պայծառությունը դարձնում է պատահական: (Տեսանյութի առաջին 40 վայրկյանը 3x արագություն է)

Քայլ 1: Սխեմատիկա և սարքավորում

Սխեմատիկա և սարքավորում
Սխեմատիկա և սարքավորում
Սխեմատիկա և սարքավորում
Սխեմատիկա և սարքավորում

Ես օգտագործում եմ հետևյալ սարքավորումները.

- PCB սառցե սպիտակ LED- ներով և 220 Օմ դիմադրիչներով:

-Arduino pro mini (ես օգտագործել եմ թակոց)

-Adafruit Powerboost 500 լիցքավորիչ

-Emmerich Li-ion accu ICR-18650NH-SP

- օպտիկական մանրաթելեր (տարբեր չափերի)

Քայլ 2. Ստեղծեք LED- ների տեղադրման PCB- ն

Ստեղծելով PCB հյուրընկալող LED- ները
Ստեղծելով PCB հյուրընկալող LED- ները
Ստեղծելով PCB հյուրընկալող LED- ները
Ստեղծելով PCB հյուրընկալող LED- ները
Ստեղծելով PCB հյուրընկալող LED- ները
Ստեղծելով PCB հյուրընկալող LED- ները

Ես կտրեցի մի կտոր PCB- ից ՝ LED- ները պահելու համար և օգտագործեցի LED կապումներն այն հիմնական PCB- ին կպցնելու համար:

Միացրեք բոլոր կաթոդները (-) GND- ին և օգտագործեց կապումներից կեսը ՝ այն կպցնելով հիմնական PCB- ին:

Բոլոր անոդները (+) միացրեց դիմադրողներին, իսկ մալուխներով ՝ արդուինոյին:

LED- ները յուրաքանչյուրը պետք է միացված լինի հետևյալ PWM նավահանգիստներից մեկին ՝ 3, 5, 6, 9, 10, 11

Հիմարն ինձ շատ սխալներ թույլ տվեց այս նախագծի հետ և մոռացավ ստուգել ճիշտ PWM նավահանգիստները, ուստի ստիպված եղա մի քանի անգամ վերավաճառել: Փորձարկված է բարձր/ցածր, այնպես որ ես դա հետագայում նկատեցի միայն:

Ես սկսեցի 7 LED- ով, բայց այնտեղ կար ընդամենը 6 PWM նավահանգիստ, և LED- ներից մեկի վերավաճառվածներից մեկը մահացավ: Ես պարզապես պահեցի 5 աշխատանքային LED- ները և չեմ օգտագործում 6 -րդը:

Քայլ 3: Տուփ պատրաստելը

Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը
Տուփ պատրաստելը

Ես օգտագործեցի Bosch GRO- ն (ինչպես Dremel- ը) և գայլիկոն, որպեսզի կտրեմ մարտկոցի ձևը, կոճակը, միկրո USB պորտը, Arduino- ի վերնագրերը և օպտիկական մանրաթելերը: (օգտագործեք փոշու դիմակ)

Մարտկոցը սոսնձեց պատյանին 2 ժապավենով:

Օգտագործված պտուտակներ ՝ Adafruit տախտակը և PCB- ն ամրացնելու համար:

Բացումից և փակվելուց շփումը վնասեց որոշ լարեր: Ես ստիպված էի դրանք վերավաճառել և սոսինձ օգտագործել, որպեսզի դա չկրկնվի:

Քայլ 4: Վզկապի պատրաստում

Փողկապի պատրաստում
Փողկապի պատրաստում
Փողկապի պատրաստում
Փողկապի պատրաստում
Փողկապի պատրաստում
Փողկապի պատրաստում

Հեռացրեց կարի փողկապի ներքևի մասից կարվածը `ռետինե թերթին տեղավորելու համար:

Սարքաշարը թաքցնելու և անհրաժեշտության դեպքում դեռ հասանելի լինելու համար որոշեցի օգտագործել կայծակաճարմանդ:

Ես կարի մեքենայով լավ չեմ, այնպես որ իմ անուշ մայրիկը կայծակաճարմանդ դրեց փողկապի հետևի մասում:

Դա անելուց հետո ես ռետինե թերթիկը սոսնձեցի փողկապի մեջ: Ես վախենում էի չափազանց շատ սոսինձ օգտագործելուց, որը կհագեցներ գործվածքը և տեսանելի կլիներ առջևից, ուստի փորձեցի այն հավասարեցնել և շատ չօգտագործել: Ընդհանուր առմամբ, այն լավ է թվում, բայց մի քանի վայրերում ես շատ կամ շատ քիչ սոսինձ նկատեցի, որովհետև այն ներթափանցեց կտորի միջով կամ շատ լավ չկպչեց գործվածքներին: Բարեբախտաբար, դա միայն հազիվ տեսանելի է մոտ տարածությունից ՝ պայծառ լույսի ներքո:

Տուփն ու փողկապն արդեն պատրաստ են: Timeամանակն է սոսնձել մանրաթելային օպտիկամանրաթելերը:

Քայլ 5: Fiberoptics- ի սոսնձում

Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics
Սոսինձ Fiberoptics

Խաղալիքը ուներ մեկ մեծ փաթեթ օպտիկամանրաթելային լարեր, որոնք հեշտությամբ բաժանվում էին: Սկզբում փորձեցի դրանք սոսնձել մեկ -մեկ, բայց շուտով նկատեցի, որ ավելի լավ կլինի փոքր կապոցներ պատրաստել և դրանք միանգամից կպցնել LED- ին: Դա ավելի հեշտ կդարձնի այն կայուն պահել մինչև սոսինձը չորանա: Խառնեց առաջին LED- ը ՝ պարզելով դա:

Համոզվեք, որ օգտագործեք թափանցիկ սոսինձ: Իմ օգտագործածը չորացավ շատ դանդաղ, իսկ արագ չորացող սոսինձը, որը փորձեցի առաջին LED- ով, սպիտակվեց ՝ առաջին LED- ի որոշ մանրաթելեր ավելի քիչ պայծառ դարձնելով:

Ես սոսնձեցի սև փոքրիկ ռետինե սավաններ, որպեսզի կանխվի լույսի արտահոսքը վերևից և առանձնացնեմ LED- ները:

Սավաններից մեկը թույլ չտվեց, որ գործը փակվի, այնպես որ ես ավելացրեցի ռետինե ժապավենը `ծածկը փակ պահելու համար:

Քայլ 6: Fiberoptics- ի կապի միջոցով դնելը

Fiberoptics- ի կապի միջոցով դնելը
Fiberoptics- ի կապի միջոցով դնելը
Fiberoptics- ի կապի միջոցով դնելը
Fiberoptics- ի կապի միջոցով դնելը
Fiberoptics- ի կապի միջոցով դնելը
Fiberoptics- ի կապի միջոցով դնելը

Սկսած ներքևից, ես ասեղով սեղմեցի անցքերն ու մանրաթելերը հատ -հատ դրեցի: Յուրաքանչյուր LED- ի մանրաթելերը պատահականորեն տարածվում են փողկապի վրայով:

Ես հետևի մի սև ժապավեն սոսնձեցի, որը պետք է անցներ մինչև փողկապի ավելի փոքր հատվածը, որպեսզի պահպաներ տուփի քաշը, բայց բոլոր լարերը ներս մտնելուց և լարերի լարվածությունը զգալուց հետո որոշեցի սոսնձել: փողկապի համար ամեն ինչ ավելի լավ գաղափար էր և կտրեց շերտը:

Քանի որ խաղալիքի օպտիկամանրաթելային լարերը այնքան կարճ էին, դժվար էր դրանք կապել ամբողջ փողկապի վրա: Ես սահմանափակ էի տուփը տեղադրելու հարցում և դժվարությամբ էի ամեն ինչ հարթեցնում, ինչպես ուզում էի:

Քայլ 7: Fiberoptics- ը սոսնձել փողկապին

Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին
Fiberoptics- ի սոսնձում փողկապին

Ես օպտիկամանրաթելային բոլոր լարերը սոսնձեցի ռետինե թերթի վրա, որպեսզի լարերը չհանվեն ռետինե թերթից և փողկապը հարթ լինի:

Որպեսզի համոզվեմ, որ սեղմիչը փողկապին չեմ կպցրել, երբ դրա վրա ճնշում եմ գործադրում, ես թուղթ եմ դնում դրանց միջև: Այն այնքան էլ հիանալի տեսք չունի, բայց լավ է աշխատում: Եվ դուք չեք տեսնում այն, երբ այն փակ է:

Սոսինձը չորացնելուց հետո ես կտրեցի առջևի լարերը և մի փոքր կտրեցի ռետինե թերթից ամենաբարձր մետաղալարից վերև, որովհետև փողկապը մի փոքր երկար էր:

Սպիտակ վերնաշապիկով լուսանկարներն արված են մինչ կաուչուկի վերջին կտորը կտրելը:

Քայլ 8: Կոդ

Ստորև բերված փողկապի համար գրված կոդը:

Բոլոր LED- ները ունեն «միջին» (իրականում ոչ թե միջին, այլ միջին պայծառություն):

Հենց որ հասնի այդ միջինին, 3/4 շանսով կորոշի ավելի ցածր պայծառության գնալ: Այն նաև պատահականորեն սահմանում է նոր նվազագույն պայծառություն, առավելագույն պայծառություն, նվազագույն և առավելագույն պայծառության սպասման ժամանակ և այն արագությունը, որը մեծանում կամ նվազում է յուրաքանչյուր փուլում (1-255) 5 նախադրված արժեքներից: Այնուհետև այն կկատարի ցիկլ, մինչև նորից հասնի միջինին: Միայն 2 LED- ը կարող են միաժամանակ լինել բարձր ցիկլում:

Յուրաքանչյուր վիճակ ներկայացված է ամբողջ արժեքով (1-7) `որոշելով, թե արդյոք այն կգնա միջինից ցածր, ցածր միջին, ցածր սպասման, թարմացման և այլն:

Arduino- ում կոդը վերբեռնելու մասին տեղեկությունների համար այցելեք www.arduino.cc

/ * Starry Sky Tie * * Սա սցենար է, որը պատահականորեն մարում է 5 լուսադիոդային լուսարձակներ միջինից մինչև ցածր * կամ ավելի բարձր պայծառություն ՝ պատահական ավելի ցածր, ավելի բարձր և ժամանակային պարամետրերով * ՝ աստղալից երկնքի տեսք ունենալու համար, երբ օգտագործվում է մանրաթելային ապարատների հետ: * Այս դեպքում դրանք կիրականացվեն ոչ -ոքի: * * Վեր/վար շանս = 1/4 վեր, 3/4 ներքև, առավելագույնը 2 * միաժամանակ բարձրանում է առավելագույնի: * * Միջինը մնում է նույնը: * Նվազագույն, առավելագույն և ժամկետների ընտրանքները փոխվում են պատահականորեն * 5 տարբերակից, ամեն անգամ, երբ LED- ը նորից հասնում է միջինին: * * Ստեղծվել է Բիլի Յասպերսի կողմից, 2019 թ. Մայիս: *

/ Հայտարարել կապում

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Timeամանակի փոփոխականներ

անստորագիր երկար ընթացիկ ժամանակ; անստորագիր երկար սպասման ժամանակ [5]; unsigned long lastRound;

// LED փոփոխականներ

int brightMin [5] = {10, 10, 10, 10, 10}; // Նվազագույն պայծառություն int brightAvg [5] = {200, 200, 200, 200, 200}; // Միջին պայծառություն int brightMax [5] = {240, 240, 240, 240, 240}; // Առավելագույն պայծառություն int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Սպասման ժամանակը int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Սպասման ժամանակը int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Սպասման ժամանակը int increment [5] = {2, 5, 4, 5, 2}; // պայծառության բարձրացում int currentBright [5] = {200, 230, 210, 210, 235}; // Ընթացիկ պայծառություն

// LED փոփոխականների հնարավորություններ

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Պայծառության նվազագույն հնարավորություններ int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Պայծառության առավելագույն հնարավորություններ int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // brightածր պայծառության հնարավորությունների սպասման ժամանակը int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Բարձր պայծառության հնարավորությունների սպասման ժամանակը int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Միջին պայծառության հնարավորությունների սպասման ժամանակը int incrementPos [5] = {2, 4, 5, 3, 1}; // պայծառության հնարավորությունների ավելացում

// փոփոխականներ

bool startup = true; // Արդյո՞ք անհրաժեշտ է սկսել մեկնարկի կարգավորումները:

// Ուղղորդված փոփոխականներ

/* 0 = Սպասում է միջինը 1 = միջինից իջնում է 2 = սպասում է ցածր 3 = իջնում է միջինը 4 = գնում է միջինը առավելագույնը 5 = սպասում է առավելագույնը 6 = բարձրանում է միջինը 7 = փոփոխում է փոփոխականները*/ int կարգավիճակը LED [5] = {0, 0, 0, 0, 0}; int գումարը HighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {կեղծ, կեղծ, կեղծ, կեղծ, կեղծ}; // Արդյո՞ք Led- ը սպասում է:

// Պատահական փոփոխականներ

երկար պատահական Թիվ; // Երկար պատահական համարը պահելու համար երկար randomNumberTwo; // Երկար ՝ երկրորդ պատահական թիվը պահելու համար

// հաշվիչներ

int i = 0; // Հաշվիչ հիմնական հանգույցի համար

void setup () {

Serial.begin (115200); // Սկսել սերիական randomSeed (analogRead (A0)); // Սահմանել պատահական սերմ

// Արդյունքների հայտարարում

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// Տվյալներ գրել LED- ների վրա

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, ընթացիկԲայլ [1]); analogWrite (LED03, ընթացիկԲայլ [2]); analogWrite (LED04, ընթացիկԲայլ [3]); analogWrite (LED05, ընթացիկԲայլ [4]); }

// Հիմնական հանգույց

void loop () {if (գործարկում) {// Գործարկման կարգավորումներ lastRound = millis (); // Սահմանել lastRound- ը boot writeToLED- ի համար (); // Գրեք մեկնարկի տվյալները LED startup = false; // Անջատել գործարկումը} currentTime = millis (); // Սահմանել ընթացիկ ժամանակը

if (currentTime - lastRound> = refreshRate) {

համար (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Թարմացում Led randomNumber = պատահական (5); brightMin = brightMinPos [պատահական թիվ]; // Սահմանել պատահական արժեք նվազագույն պայծառության randomNumber = պատահական (5); brightMax = brightMaxPos [պատահական համար]; // Սահմանել պատահական արժեք առավելագույն պայծառության randomNumber = պատահական (5); timeWaitLow = timeLowPos [պատահական թիվ]; // Սահմանել պատահական արժեք ցածր սպասման ժամանակ randomNumber = պատահական (5); timeWaitMax = timeHighPos [պատահական Թիվ]; // Սահմանել պատահական արժեք բարձր սպասման ժամանակ randomNumber = պատահական (5); timeWaitAvg = timeAvgPos [պատահական Թիվ]; // Սահմանել պատահական արժեք միջին սպասման ժամանակ randomNumber = պատահական (5); ավելացում = աճող դրական [պատահական թիվ]; // Սահմանել պատահական արժեք ավելացման արժեքի համար randomNumber = պատահական (2); // Սահմանել պատահական արժեք ուղղության randomNumberTwo = պատահական (2); // Եթե պատահական արժեք սահմանեք, եթե (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Եթե ամենացածր կետում. Գնալ դեպի սպասման միջին} այլ {currentBright = currentBright +հավելում ; // Այլ ՝ ավելի բարձր պայծառություն}} այլ դեպքում (statusLED == 2) {// -2- Սպասում է ցածր, եթե (! StatusWaiting ) {// Եթե չես սպասում.; // Սահմանել սպասման ժամանակը statusWaiting = true; // Սկսեք սպասել} այլ դեպքում, եթե (statusWaiting && currentTime-սպասումTime > = timeWaitLow ) {// Եթե սպասումը ԵՎ ժամանակն անցել է. StatusWaitAvg անցել է. // Դադարեցնել սպասման կարգավիճակը LED = 3; // Սահմանել statusLed to Waiting for Update}} այլ դեպքում (statusLED == 1) {// -1- Միջին մակարդակի իջեցում ցածր (currentBright <= brightMin ) {statusLED = 2; // Եթե ամենացածր կետում. Գնալ դեպի Սպասող ցածր} else {currentBright = currentBright -inkrement ; // Ուրիշ. Ստորին Պայծառություն}} այլ դեպքում (statusLED == 6) {// -6- Առավելագույնը դեպի միջին, եթե (currentBright = timeWaitMax ) {// Եթե սպասումը ԵՎ ժամանակըWaitAvg անցել է: statusWaiting = false; // Դադարեցնել սպասման կարգավիճակը LED = 6; // Սահմանել statusLed to Waiting for update}} այլ դեպքում, եթե (statusLED == 4) {// -4- Միջին անցնել առավելագույնը եթե (currentBright > = brightMax ) {statusLED = 5; // Եթե ամենացածր կետում. Գնալ դեպի Սպասում բարձր} else {currentBright = currentBright +հավելում ; // Այլ ՝ ավելի բարձր պայծառություն}} այլ դեպքում (statusLED == 0) {// -0- Միջին սպասում, եթե (! StatusWaiting ) {// Եթե չես սպասում ՝ սպասումTime = millis (); // Սահմանել սպասման ժամանակը statusWaiting = true; // Սկսեք սպասել} այլ դեպքում, եթե (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// Եթե սպասումը ԵՎ ժամանակը անցել է. StatusWaitAvg = false; // Դադարեցնել սպասման կարգավիճակը LED = 7; // Սահմանել statusLed- ը Սպասում է թարմացման}}} i = 0; lastRound = millis (); // Սահմանել, երբ վերջին տուրն ավարտվի: writeToLED (); // Գրեք բոլոր տվյալները LED- ների վրա}}

Քայլ 9: Վերջնական արտադրանք

Image
Image
Վերջնական արտադրանք
Վերջնական արտադրանք
Վերջնական արտադրանք
Վերջնական արտադրանք

Կարծում եմ, որ դա լավ ստացվեց: Փողկապը չափազանց հաստ, թունդ, երկար կամ ծանր չէ, և աստղային էֆեկտը զարմանալի տեսք ունի:

Խորհուրդ ենք տալիս: