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

Ish ժամացույց ՝ 5 քայլ (նկարներով)
Ish ժամացույց ՝ 5 քայլ (նկարներով)

Video: Ish ժամացույց ՝ 5 քայլ (նկարներով)

Video: Ish ժամացույց ՝ 5 քայլ (նկարներով)
Video: Իմ մեղքն այն է, որ կարողա ամսի 5-ին չպիտի Մոսկվա գնայի, այլ ամսի 1-ին. Ալեն Սիմոնյան 2024, Նոյեմբեր
Anonim
Image
Image
Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում

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

Որոշ ժամանակ անց ես մտածում էի ժամացույց պատրաստելու մասին և հիշեցի, որ այնտեղ նստած ոչինչ չէր անում: Ես մտածում էի երկրորդ օղակ գնելու մասին `60 LED- ով` րոպեները լրացնելու համար, բայց հետո սկսեցի մտածել, թե ինչպես ենք մենք / ես ձգտում նայել այդ պահին և այն կլորացնել մոտակա 5 րոպեի ընթացքում:

Սրանով ես իմ 12 LED օղակով ճամփա ընկա, որպեսզի պատրաստեմ նախկին ժամացույցը: Այն միաժամանակ ցուցադրում է 1 LED 1 վայրկյան ՝ ցույց տալով ժամը (Կապույտ LED) և այն րոպեները (Կարմիր LED), որոնք կլորացվում են ներքև

Քայլ 1. Մասերի և փայտի աշխատանքների հավաքում

Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում
Մասերի և փայտի աշխատանքների հավաքում

Ես շատ բախտավոր էի, որ մի օր ժամանեցի աշխատանքի և նկատեցի պալետ: Այս ծղոտե ներքնակը կպչեց ինձ, քանի որ այն նման չէր ձեր ստանդարտ, գործարանային ծղոտե ներքնակին: Այն մաքուր էր, ջերմամշակված և ամենաարտասովոր պինդ կաղնին:

Այս նախագիծը պատրաստված է այդ ծղոտե ներքնակի կտորներից մեկից: (Ես հարցրեցի պետին, նախքան այն տուն տանելը)

Նաև օգտագործվում է

  • 12 պիքսել ws2812b LED օղակ
  • Իրական ժամանակի ժամացույց (RTC) մոդուլ (ես օգտագործում եմ DS3231 I2C- ով)
  • Arduino Nano v3.0 համատեղելի
  • Ակրիլային թերթ (5 մմ)
  • Գունավոր մետաղալար

Գործիքներ

  • Էլեկտրական փորվածք
  • Երթուղիչ
  • Կարգավորելի հարթ փայտե բիտ
  • Հոսանքի ավազ
  • Ձեռքի սղոց
  • Oldոդման երկաթ
  • Տաք սոսինձ ատրճանակ
  • Ավազի թուղթ
  • Դանիական նավթ

Հղկում

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

Նշումներ և կտրում անցքերը

Մանրացնելուց հետո ես ընտրեցի ժամացույցի երեսը ցանկացող կողմը և նշեցի կենտրոնը `յուրաքանչյուր անկյունից գծեր գծելով: Կարգավորվող փայտը մի փոքր ավելի մեծ դրեցի, քան led օղակը, այնպես որ ակրիլը կարող էր նստել և կտրել մոտ 5 մմ խորություն, այնուհետև կարգավորելի կտրիչը LED օղակի չափից ավելի և կտրել ևս 5 մմ կամ ավելի.

Երթուղային և մալուխային անցքեր

Օգտագործելով իմ երթուղիչը 12 մմ բիթով, ես դուրս հանեցի բլոկի ներքևի հատվածը `RTC- ն և Arduino- ն թաքցնելու համար: Նրա խորությունը մոտ 15 մմ է և ցանկացած եզրից ոչ պակաս, քան 5 մմ: Ես նշեցի կենտրոնը (նախկին) ներքևից և փորեցի մինչև 10 մմ տրամագծով մի փոքր անցած կես ճանապարհը, որպեսզի թույլ տան LED լարերը: Այնուհետև, օգտագործելով 5 մմ տրամաչափի բիտ, ես փորեցի LED լուսանցքի կենտրոնից `ներքևից 10 մմ անցքին հանդիպելու համար:

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

Քայլ 2: Ակրիլային շրջանակներ

Ակրիլային շրջանակներ
Ակրիլային շրջանակներ
Ակրիլային շրջանակներ
Ակրիլային շրջանակներ
Ակրիլային շրջանակներ
Ակրիլային շրջանակներ

Theամացույցի առջևի մասի ակրիլ պատրաստելու համար ես ասացի, որ կտրում եմ քառակուսի կտոր, որը պարզապես ավելի մեծ էր, քան այն անցքը, որը պետք է լրացներ: Այնուհետև, օգտագործելով սնուցման սարքը, ես սկսեցի հեռացնել անկյունները, մինչև որ այն մոտենա ճիշտ ձևին և չափին: Այնուհետև ես անցա ձեռքի հղկմանը, որպեսզի չկրկնեմ և ստիպված լինեմ նորից սկսել:

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

Քայլ 3: Sոդում

Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման

Ես սիրում եմ գունավոր համակարգ օգտագործել իմ լարերի համար այս առիթով, երբ ընտրում եմ.

  • Կարմիր հզորության համար (5 վ)
  • Սպիտակ գետնի համար
  • Դեղին ՝ տվյալների համար
  • Կանաչ ժամացույցի համար

Ես սկսեցի երեք անհրաժեշտ լարերը կպցնել LED օղակի վրա `օգտագործելով վերը նշված համակարգը և լարերը մղելով դեպի անցքը: Քանի որ այն չպետք է ենթարկվի որևէ իրական ճնշման, ես մի փոքր տաք սոսինձ օգտագործեցի `մատանին տեղում պահելու համար: (Գուցե երբևէ պետք է փոխեմ այն) և տեղադրեք ակրիլը եզրին միայն մի փոքր տաք սոսինձով:

Հետո ես 4 լարերը միացրեցի RTC- ին ՝ օգտագործելով վերը նշված համակարգը: Իրերը մի փոքր կոկիկ պահելու համար ես որոշեցի RTC- ի համար էներգիա վերցնել Arduino- ից: Այնուհետև ամեն ինչ միացրեք Arduino- ին և 1 մետաղալար կպցրեք հոսանքի համար, իսկ մյուսը `Arduino- ին:

RTC

  • SCL (ockամացույց) դեպի անալոգային Pin 5
  • SDA (Տվյալներ) դեպի անալոգային Pin 4
  • VCC- ից մինչև 5V
  • GND Arduino- ի ցանկացած GND- ին

LED մատանի

Din to Digital Pin 6

Ես ունեի մի հին USB մալուխ, որը շուրջս էր կախված, ուստի որոշեցի օգտագործել այն ժամացույցը միացնելու համար: Ես կտրեցի ծայրը, որը սովորաբար միանում էր ինչ -որ բանի, և այն հրեցի հետևի անցքի միջով: Այնուհետև մերկացրեք և եզրագծեք ծայրերը ՝ նախքան VCC- ն Arduino- ին կպցնելը և LED օղակը դեպի դրական կողմը, իսկ գետինը ՝ Arduino- ից և LED- ից մինչև Ground: Հետո ես փոքր -ինչ նվազեցի ջերմությունը, և այն լավ տեսք ուներ, Տաք սոսնձի ատրճանակը նորից դուրս եկավ, որպեսզի ամեն ինչ պահի: Ես որոշեցի հեռանալ Arduino- ից այնքան խաղալով, որ հետագայում կկարողանամ մուտք գործել USB պորտ ՝ այն ծրագրավորելու համար, բայց ոչ այնքան, որ կարողանամ ընկնել:

Քայլ 4: Կոդ

Այժմ դուք պետք է կարողանաք վերբեռնել այս կոդը Arduino- ում:

Եթե RTC- ն չի աշխատում, այս ծածկագիրը կսահմանի ժամանակը ՝ հիմնվելով ծածկագրի կազմման վրա, այնպես որ համոզվեք, որ պարզապես սեղմեք վերբեռնման կոճակը և չստուգեք:

այլընտրանք, սա նույնպես իսկապես լավ է աշխատում ժամանակը սահմանելու համար:

www.instructables.com/id/Setting-the-DS130…

Այս ծածկագրի մեծ մասը ես վերցրել եմ Adafruit NeoPixel գրադարանից, մի մասը ՝ RTC գրադարանից, որը գտել եմ, իսկ մի մասը ՝ ինքնուրույն:

// ներառել գրադարանի կոդը ՝ #ներառել

#ներառում

#ներառում

// սահմանել կապում

#սահմանեք PIN 6

#սահմանեք ՊԱՀՈՍՏՈ //ԹՅՈ 20Ն 20 // սահմանեք առավելագույն պայծառություն

#սահմանի r 5

#սահմանել g 5

#սահմանել բ 5

RTC_DS3231 rtc; // Ստեղծեք ժամացույցի օբյեկտ

Adafruit_NeoPixel շերտ = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // շերտի օբյեկտ

void setup () {

Wire.begin (); // Սկիզբ I2C

rtc.begin (); // սկսել ժամացույցը

Serial.begin (9600);

// սահմանել pinmodes

pinMode (PIN, OUTPUT);

եթե (rtc.lostPower ()) {

Serial.println («RTC- ն կորցրեց էներգիան, թույլ տվեք սահմանել ժամանակը»);

// հետևյալ տողը RTC- ն սահմանում է այս ուրվագծի կազմման ամսաթվի և ժամի

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));

// Այս տողը սահմանում է RTC- ն հստակ ամսաթվով և ժամով, օրինակ `սահմանելու համար

// 2014 թվականի հունվարի 21 -ին, առավոտյան ժամը 3 -ին, դուք կարող եք զանգահարել.

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

strip.begin ();

strip.show (); // Նախագծել բոլոր պիքսելները «անջատված»

DateTime theTime = rtc.now (); // հաշվի է առնում DST- ն

բայթ secondval = theTime.second (); // ստացեք վայրկյաններ

բայթ minuteval = theTime.minute (); // րոպե ստանալ

int hourval = theTime.hour ();

կետ (շերտ. Գույն (0, գ, 0), 50);

}

դատարկ շրջան () {

// ժամանակ ստանալ

DateTime theTime = rtc.now (); // հաշվի է առնում DST- ն

int րոպեն = theTime.minute (); // րոպե ստանալ

int hourval = theTime.hour (); // ժամեր ստանալ

int secondval = theTime.second ();

եթե (րոպեական 0) {

strip.setPixelColor (0, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<9) {

strip.setPixelColor (1, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<14) {

strip.setPixelColor (2, r, 0, 0);

strip.show ();}

այլապես եթե (րոպե <<19) {

strip.setPixelColor (3, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<24) {

strip.setPixelColor (4, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<29) {

strip.setPixelColor (5, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<34) {

strip.setPixelColor (6, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<39) {

strip.setPixelColor (7, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<44) {

strip.setPixelColor (8, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<49) {

strip.setPixelColor (9, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<54) {

strip.setPixelColor (10, r, 0, 0);

strip.show ();}

այլապես, եթե (րոպե <<59) {

strip.setPixelColor (11, r, 0, 0);

strip.show ();}

ուշացում (1000);

համար (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

եթե (ժամային ժամ == 0) {

strip.setPixelColor (0, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 1) {

strip.setPixelColor (1, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 2) {

strip.setPixelColor (2, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 3) {

strip.setPixelColor (3, 0, 0, բ);

strip.show ();}

այլապես (ժամային ժամ == 4) {

strip.setPixelColor (4, 0, 0, բ);

strip.show ();}

այլապես (ժամային ժամ == 5) {

strip.setPixelColor (5, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 6) {

strip.setPixelColor (6, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 7) {

strip.setPixelColor (7, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 8) {

strip.setPixelColor (8, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 9) {

strip.setPixelColor (9, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 10) {

strip.setPixelColor (10, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 11) {

strip.setPixelColor (11, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 12) {

strip.setPixelColor (0, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 13) {

strip.setPixelColor (1, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 14) {

strip.setPixelColor (2, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 15) {

strip.setPixelColor (3, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 16) {

strip.setPixelColor (4, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 17) {

strip.setPixelColor (5, 0, 0, բ);

strip.show ();}

այլապես (ժամային ժամ == 18) {

strip.setPixelColor (6, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 19) {

strip.setPixelColor (7, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 20) {

strip.setPixelColor (8, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 21) {

strip.setPixelColor (9, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 22) {

strip.setPixelColor (10, 0, 0, բ);

strip.show ();}

այլապես, եթե (ժամային ժամ == 23) {

strip.setPixelColor (11, 0, 0, բ);

strip.show ();}

ուշացում (1000);

համար (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

// սերիական վրիպազերծման համար

Serial.print (ժամային ժամ, DEC);

Serial.print (':');

Serial.print (րոպե, DEC);

Serial.print (':');

Serial.println (երկրորդ կարգ, DEC);

}

դատարկ կետ (uint32_t գ, uint8_t սպասել) {

համար (int j = 0; j <3; j ++) {

համար (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

strip.show ();

ուշացում (սպասել);

համար (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();}

}

}

}

Քայլ 5: Դանիական նավթ

Դանիական նավթ
Դանիական նավթ
Դանիական նավթ
Դանիական նավթ
Դանիական նավթ
Դանիական նավթ
Դանիական նավթ
Դանիական նավթ

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

Դուք կարող եք այն քսել, կամ ես պարզապես հին կտոր եմ մաքրում այն:

Մնում է միայն այն միացնել և վայելել:

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