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

LED ժամացույց ՝ օգտագործելով նեոպիքսելներ. 4 քայլ (նկարներով)
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ. 4 քայլ (նկարներով)

Video: LED ժամացույց ՝ օգտագործելով նեոպիքսելներ. 4 քայլ (նկարներով)

Video: LED ժամացույց ՝ օգտագործելով նեոպիքսելներ. 4 քայլ (նկարներով)
Video: 3d Led Wall Clock Digital Timer Nightlight Watch Alarm Clock For Warehouse Office Home Living Room 2024, Հուլիսի
Anonim
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ
LED ժամացույց ՝ օգտագործելով նեոպիքսելներ

Բարի գալուստ իմ հրահանգը, թե ինչպես կարելի է LED ժամացույց պատրաստել 60 նեոպիքսել օգտագործմամբ:

Դուք կգտնեք PDF- ի կցված 3 -ը ՝ ժամացույցի հատվածների համար, մյուսը ՝ հիմքի համար, և վերջինը ՝ ձևանմուշ, որը կօգնի սոսնձել հատվածները միասին:

Այսպիսով, սա ավարտելու համար ձեզ հարկավոր կլինի հետևյալը

  • 60 նեոպիքսելանոց մատանին գալիս է 4 քառորդում: որոնել «ws2812 ring 60» (£ 12.00)
  • RTC որոնում «DS3231 մոդուլի» համար (£ 2.50)
  • Արդուինո Նանո (£ 4)
  • 3 մմ/1/8 "նրբատախտակ:
  • մետաղալարերի կտորներ: հուսով եմ, որ ձեզ մոտ կլինեն:
  • 5 վ USB հոսանքի աղբյուր: Այն տեսակը, որը ձեր երեխաները կկործանեն միակցիչը:

Ստորև բերված են Lipo մարտկոցով աշխատող իրերը, սակայն փորձարկումներից հետո ժամացույցը չափազանց շատ էներգիա էր սպառում, ուստի մարտկոցը լիցքաթափվեց ՝ ի շահ ցանցի USB PSU- ի:

  • dc-dc փոխարկիչի որոնում «ուժեղացուցիչի փոխարկիչ» (£ 3)
  • Լիցքավորման միացում TP4056 որոնում «tp4056» (£ 2)
  • LiPo 1000Mah մեկ բջիջ: որոնել «1000mah lipo 3.7» ԿԱՄ «503450 lipo» (£ 8.00)

LiPo համարը 503450 է, և գուցե հաճելի լինի իմանալ, որ դա նշանակում է 50 մմ երկարություն 34 մմ լայնություն և 5.0 խորություն:

Քայլ 1: Փայտի կտորներ

Փայտի կտորներ
Փայտի կտորներ
Փայտի կտորներ
Փայտի կտորներ
Փայտի կտորներ
Փայտի կտորներ

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

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

Առջևի հատվածների անցքերը թույլ են տալիս նստել եռամսյակների եռակցված հոդերը, իսկ ստորին հատվածը թույլ է տալիս անցնել լարերը:

Նկարների շարքը ցույց է տալիս նաև, թե ինչպես է հիմքը դրվում միասին:

Քայլ 2: LED օղակի միացում:

LED օղակի միացում
LED օղակի միացում
LED օղակի միացում
LED օղակի միացում
LED օղակի միացում
LED օղակի միացում
LED օղակի միացում
LED օղակի միացում

Այս քայլի մասին շատ բան չկա ասելու, բայց այն դեպքում, եթե դուք չեք օգտագործել WS2812LED- ի շերտը, դրանք խելացի են, այնպես որ յուրաքանչյուրն ունի տվյալներ ներսից և դրսից: 15 LED- ների կամարներում PCB- ն կարգավորում է բոլոր միացումները, բայց երբ միանում եք բաժիններին, դուք պետք է կատարեք հոսանքի միացումները և տվյալները: Դուք չեք կարող սխալ կապեր ստանալ, քանի որ դրանք շրջանաձև են, սակայն շրջանն ավարտելուց հետո դուք պետք է ունենաք մեկ հղում, որը բացակայում է IN/OUT տվյալների վրա, ինչը թույլ կտա ձեզ լարերը միացնել տվյալների IN- ին: Այն վայրերում, որտեղ լարերը միանում են տվյալներին, կլինի առաջին LED- ը կամ ինչպես այն ճիշտ համարակալված է ERՐՈ:

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

Քայլ 3. Arduino Nano և Power միացում

Arduino Nano- ի և Power- ի միացում
Arduino Nano- ի և Power- ի միացում
Arduino Nano- ի և Power- ի միացում
Arduino Nano- ի և Power- ի միացում
Arduino Nano- ի և Power- ի միացում
Arduino Nano- ի և Power- ի միացում

Սկզբում որոշեցի օգտագործել LiPo- ն այս նախագծում, բայց երբ այն փորձեցի, մարտկոցը սպառվեց մեկ գիշերվա ընթացքում: Սկզբում ես մտածեցի, որ մարտկոցը կարող էր անլուրջ լինել, այնպես որ ես չափեցի հոսանքը և պարզեցի, որ շղթան նկարում է 73 մԱ, ինչը նշանակում է, որ մարտկոցի մոտ այն ավելի շատ կլիներ: Իրականում ես չափեցի մարտկոցի հոսանքը (մինչև ուժեղացուցիչի փոխարկիչը) և հայտնաբերեցի, որ այն 110 մԱ -ից բարձր է: Այսպիսով, ակնհայտ էր, որ այս ժամացույցը չի աշխատելու մարտկոցով:

Դրա փոխարեն ես ընտրում եմ օգտագործել 5 Վ USB լիցքավորիչ: Ես հակված եմ ունենալ բազմաթիվ մահացած USB լիցքավորիչներ, քանի որ միակցիչները երկու փոքր երեխաներից չարաշահում են:

Այսպիսով, քանի որ մենք օգտագործում ենք WS2812 LED- ները, մենք ունենք միայն 3 կապ Arduino Nano- ին:

  • Ուժ
  • Գետնին
  • Տվյալները IN. Orange- ից D2 Nano- ի վրա

Հաջորդը մենք ունենք RTC, սա միայն 4 լար ունի:

  • Հզորությունը 5 վոլտ
  • Գետնին
  • SCL (I2C ժամացույց) Կապույտ մինչև A5 Նանոյի վրա
  • SDA (I2C Data) Դեղինից A4 ՝ Նանոյի վրա

Ի վերջո, մեզ էներգիա է պետք, և դա գնում է դեպի Նանո հոսանքի 5 Վ տերմինալ: Vin- ը նախագծված է ունենալու 5 վոլտից ավելի մեծ լարման (այսինքն ՝ 7-12 վոլտ) և գետնին:

Քայլ 4: րագիրը

Ես իսկապես վայելում եմ ծրագրավորումը, ես պարզապես այնքան էլ լավ չեմ դրանում:

Խնդիր 1

Վայրկյաններն ու րոպեները ճիշտ են ներկայացվում որպես թիվ 0-59-ից: Այնուամենայնիվ, առաջին LED- ը և, հետևաբար, զրոյը գտնվում են ներքևում: Այսպիսով, սա շտկման կարիք ուներ:

void correctPos (int A)

{եթե (A 30) {A = A - 31; }} temp = A; }

Խնդիր 2

Ես փորձեցի մաքրել բոլոր LED- ները նախքան նոր դիրքը ցուցադրելը, սակայն դա հանգեցրեց LED- ների թարթելուն: Այսպիսով, ես որոշեցի միացնել հաջորդ LED- ը և ապա անջատել նախորդը: Սա լավ աշխատեց ?? ՈՉ, քանի որ եթե նոր դիրքը զրոյական լիներ, այն կփորձեր անջատել -1: այնպես որ դրանով զբաղվեց միաժամանակ:

void delete Նախկինում (int B)

// ջնջեք նախորդ led- ը, եթե այն զրո էր, ապա // անջատեք 59 այլ բան, պարզապես հանեք 1 // և անջատեք այդ մեկը: {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // բոլորը անջատված}}

Խնդիր 3

Վերը նշվածը անելը իսկապես լավ աշխատեց, մինչև նոր երկրորդ դիրքը հին րոպեի տեղում էր: Ինչը նշանակում էր, որ վայրկյաններից հետո թարմացվող րոպեն անջատեց այն: Նույնը ՝ ժամի/րոպեի համար

եթե (վրկ == րոպե -1)

{strip.setPixelColor (րոպեներ -1, 0, 30, 0); }

Խնդիր 4

Իրերը սկսում են լավ տեսք ունենալ, եկեք խառնել գույները, երբ դրանք ընկնում են նույն դիրքում:

եթե (րոպե == վրկ)

{strip.setPixelColor (րոպե, 15, 13, 0); // կանաչ և կարմիր ՝ դեղին դարձնելու համար: }

Խնդիր 5

Startsամերը սկսվում են 24 ժամ ձևաչափով: ուստի սա նախ շտկման կարիք ունի

եթե (ժամեր> 12)

{ժամ = ժամ -12; }

Խնդիր 6

Եվ չմոռանանք, որ օրական կա 24 ժամ, և ես ունեմ 60 լուսադիոդ: Իրոք, հեշտ է այն 5 անգամ գերազանցել

ժամ = ժամ * 5;

Խնդիր 7

Վերոնշյալն անելով ՝ մենք այժմ ունենք ժամացույց ՝ ցատկելով 4 LED- ով, շատ ավելի լավ տեսք կունենար, եթե այն օգտագործեր բոլոր LED- ները և ճիշտ ցույց տա մեկ ժամվա կոտորակները: Կրկին սա հեշտ լուծում էր: Ես պարզապես ժամերին ավելացրեցի օրիգինալ րոպեների թիվը `բաժանված 12 -ի:

ժամ = ժամ + (addMin/12);

Խնդիր 8

Երբ ժամի կամ րոպեի վերջը գտնվում է ներքևում, վայրկյանները անհետանում են մեկ վայրկյան առաջ:

ժամ = եթե (րոպե == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // կանաչ}}

Խնդիր 9

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

// 2020 թվականի ապրիլի 12 -ին, ժամը 23: 20 -ին, դուք կզանգահարեք.

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

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