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

Հիացնող մագնիսական պատի ժամացույց. 24 քայլ (նկարներով)
Հիացնող մագնիսական պատի ժամացույց. 24 քայլ (նկարներով)

Video: Հիացնող մագնիսական պատի ժամացույց. 24 քայլ (նկարներով)

Video: Հիացնող մագնիսական պատի ժամացույց. 24 քայլ (նկարներով)
Video: Why the Eiffel Tower has a Secret Apartment on Top 2024, Հուլիսի
Anonim
Հիացնող մագնիսական պատի ժամացույց
Հիացնող մագնիսական պատի ժամացույց
Հիացնող մագնիսական պատի ժամացույց
Հիացնող մագնիսական պատի ժամացույց

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

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

Սկզբում ոգեշնչված STORY ժամացույցից, ես ուզում էի մի ժամացույց, որը ցույց տա օրվա ժամանակը ՝ օգտագործելով գնդիկավոր առանցքակալներ միայն թվային ընթերցման և դանդաղ շարժվող գնդակի կրող արտադրանքի օգտագործմամբ:

Պատկեր
Պատկեր

Քայլ 1: Գործիքներ և նյութեր

Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր

Նյութեր:

  • 13 x 13 x 2 դյույմ Նրբատախտակ/մասնիկների տախտակ (ես սոսնձեցի 3 կտոր փայտի ջարդոն)
  • 13 x 13 դյույմ
  • Արդուինո Նանո
  • Իրական ժամանակի ժամացույց
  • Stepper Motors և վարորդներ
  • Hall Effect սենսորներ
  • Մագնիսներ
  • Հոսանքի մալուխ
  • AC ադապտեր
  • Plug
  • Մեքենայի պտուտակներ տեսականի
  • Փայտե պտուտակներ տեսականի
  • 3D տպագիր մասեր (վերջին քայլ)
  • Երեսպատում (12 x 12 դյույմ - դեմք, 40 դյույմ երկար ժապավեն)
  • Սփրեյ լաք
  • Սև լակի ներկ

Գործիքներ:

  • 3D տպիչ
  • Կողմնացույց
  • X-acto դանակ
  • Սոսինձ
  • Սեղմակներ
  • Circle Cutting Jig
  • Hack Saw
  • Սկավառակի սրբիչ
  • Ratchet սեղմիչ
  • Սայր
  • Քանոն
  • Սանդեր
  • Գայլիկոններ
  • Պտուտակահաններ
  • Sոդման երկաթ
  • Տաք սոսինձ ատրճանակ

Քայլ 2. Սոսնձեք միասին փայտե շրջանակ

Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ
Սոսինձ միասին փայտե շրջանակ

Կպչեք երեք կտոր փայտ, որոնք կկազմեն ժամացույցի շրջանակը: Ես օգտագործեցի վերականգնված մասնատախտակը հին մահճակալի շրջանակից:

Քայլ 3. Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig

Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig
Կտրեք շրջանակը ՝ օգտագործելով Circle Cutting Jig

Նշեք տախտակի կենտրոնը և ամրացրեք այն շրջանակի կտրող ջիգի վրա: Կտրեք հինգ շրջան հետևյալ տրամագծերով.

  • 12 դյույմ
  • 11 1/4 դյույմ
  • 9 1/4 դյույմ
  • 7 1/4 դյույմ
  • 5 3/8 դյույմ

Քայլ 4: Տպեք և հավաքեք հանդերձում

Տպել և հավաքել հանդերձում
Տպել և հավաքել հանդերձում
Տպել և հավաքել հանդերձում
Տպել և հավաքել հանդերձում

Օղակների փոխանցման տուփերը բաժանված են հատվածների, այնպես որ դրանք կարող են տպվել փոքր տպիչի վրա և սեղմվել միասին: Բոլոր մասերը տպագրվել են ABS- ով `հաջորդ քայլին ցուցադրված միաձուլման գործընթացին օգնելու համար: Մանրացրեք մասերի բոլոր եզրերն ու մակերեսները:

Տպեք 22 -րդ քայլում հայտնաբերված մասերի հետևյալ քանակները.

  • 1 - ժամային օղակաձեւ հանդերձում հատվածի մագնիս
  • 6 - Hour Ring Gear Segment Basic
  • 1 - ժամ պահող օղակաձեւ հատվածի սլաքային լեռ
  • 6 - ourամ պահող օղակաձեւ հատվածի հիմնական
  • 1 - Hour Hall Effect Sensor Holder
  • 1 - րոպեական օղակաձեւ հանդերձում հատվածի մագնիս
  • 7 - Minute Ring Gear Segment Basic
  • 1 - Րոպե պահող օղակաձեւ հատվածի սլաքային լեռ
  • 6 - րոպե պահող օղակաձեւ հատվածի հիմնական
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spur Gear
  • 1 - Էլեկտրոնիկայի լեռ

Քայլ 5. «Սոսինձ» բաժինները միասին

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Մի քիչ ացետոնով ապակե շշի մեջ լուծարեք ձախողված տպումները հին օժանդակ նյութը և այլն: Ներկեք ացետոնի խառնուրդը յուրաքանչյուր կարի վրա, որպեսզի կտորները միաձուլվեն: Բուժվելուց հետո յուրաքանչյուր կարի հարթեցրեք ավազով:

Քայլ 6. Կտրեք ռելիեֆները շրջանակի մեջ

Կտրեք ռելիեֆները շրջանակի մեջ
Կտրեք ռելիեֆները շրջանակի մեջ
Կտրեք ռելիեֆները շրջանակի մեջ
Կտրեք ռելիեֆները շրջանակի մեջ
Կտրեք ռելիեֆները շրջանակի մեջ
Կտրեք ռելիեֆները շրջանակի մեջ

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

Քայլ 7. Կտրեք մաքրումը Hall Effect սենսորների համար

Կտրեք մաքրումը Hall Effect սենսորների համար
Կտրեք մաքրումը Hall Effect սենսորների համար
Կտրեք մաքրումը Hall Effect սենսորների համար
Կտրեք մաքրումը Hall Effect սենսորների համար
Կտրեք մաքրումը Hall Effect սենսորների համար
Կտրեք մաքրումը Hall Effect սենսորների համար

Կտրեք ներքին օղակի միջանցքի բացը րոպեի սրահի էֆեկտի սենսորի համար և անցք ժամային դահլիճի էֆեկտի սենսորի համար: Այս բացերը կտրելու համար ես օգտագործեցի մի սրածայր, պատյան և փոքր ձեռքի սղոց:

Քայլ 8: Կպչեք արտաքին մատանին

Սոսինձ արտաքին մատանի
Սոսինձ արտաքին մատանի

Կպչեք և կպցրեք արտաքին օղակը րոպե պահող օղակի չափով:

Քայլ 9. Կտրեք Hall Effect Sensor ճշգրտման պտուտակները

Cut Hall Effect Sensor ճշգրտման պտուտակներ
Cut Hall Effect Sensor ճշգրտման պտուտակներ

Կտրեք մեքենայի պտուտակները կոտրված սղոցով, որպեսզի դրանք պարզապես ավելի երկար լինեն, քան ամրացման օղակի և սրահի էֆեկտի սենսորների ամրակի հաստությունը: Կտրեք անցքը թելերի մեջ, որպեսզի այն հնարավոր լինի ճշգրտել թելված ծայրից ՝ հարթ պտուտակահանով:

Քայլ 10: Կպչեք օղակները կարծր տախտակին

Սոսինձ մատանիներ կարծր տախտակին
Սոսինձ մատանիներ կարծր տախտակին
Կպչեք մատանիները կարծր տախտակին
Կպչեք մատանիները կարծր տախտակին
Կպչեք մատանիները կարծր տախտակին
Կպչեք մատանիները կարծր տախտակին

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

Օգտագործեք սկավառակի սրբիչ, որպեսզի կարծր տախտակը կտրեք արտաքին օղակի չափով:

Քայլ 11: Սոսինձ ներքին սկավառակ

Սոսինձ ներքին սկավառակ
Սոսինձ ներքին սկավառակ
Սոսինձ ներքին սկավառակ
Սոսինձ ներքին սկավառակ

Կպչեք ներքին սկավառակը տեղում ՝ օգտագործելով ժամապահ օղակը և մատանի հանդերձանքը ՝ ներքին սկավառակը տեղադրելու համար:

Քայլ 12: Կցեք երեսպատում

Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում
Կցեք երեսպատում

Կտրեք երեսպատման ժապավենը, որն ավելի լայն է, քան ժամացույցը ՝ այնքան խորը և երկար, որ կարող եք շուրջօրյա փաթաթել (ժամացույցի 3.14 * տրամագիծը, կվերադարձնի անհրաժեշտ երկարությունը: Ավելացրեք մեկ դյույմ ՝ համոզվելու համար, որ ունեք բավարար քանակությամբ): կտրել երկարությամբ: Կպչուն երեսպատման վրա բավականաչափ սոսինձ քսեք և ամրացրեք տեղում ՝ ամրագոտի սեղմակով: Թողեք մի քանի ժամ չորանա ՝ կպչունությունն ապահովելու համար:

Քայլ 13: Կտրեք երեսպատումը

Կտրել երեսպատումը
Կտրել երեսպատումը

Կտրուկ սայրով կտրեք ավելորդ երեսպատումը ժամացույցի առջևից և հետևից:

Քայլ 14: Կտրեք երեսպատումը

Կտրել երեսպատել
Կտրել երեսպատել
Կտրել երեսպատել
Կտրել երեսպատել

Իմ երեսպատման հատվածում որոշ ճաքեր կար: Աշխատանքն ավելի դյուրին դարձնելու համար ես նկարիչների ժապավենով ամրացրեցի այն: Օգտագործելով x-acto դանակ կողմնացույցի մեջ, կտրեք երեսպատումը ժամացույցի երեսից ավելի մեծ:

Քայլ 15: Սոսինձ նրբատախտակ

Սոսինձ նրբատախտակ
Սոսինձ նրբատախտակ
Սոսինձ նրբատախտակ
Սոսինձ նրբատախտակ

Օգտագործեք անջատված օղակները `ճնշումը ժամացույցի սլաքի վրա տարածելու համար: Կիրառեք լայն սոսինձ երեսպատման ոչ ժապավենային կողմում: Ուղղահայաց կողմնորոշեք հացահատիկը ժամացույցի սլաքի վրա և կիրառեք բազմաթիվ սեղմակներ, որոնցից յուրաքանչյուրը մի փոքր սեղմվում է: Սա կապահովի, որ երեսպատումը չշարժվի և նույնիսկ ճնշում ունենա դեմքի վրա:

Usedամացույցի երեսին մի քանի հարթ տախտակ օգտագործեցի, իսկ հետևի մասում ՝ որոշ կոճակներ:

Քայլ 16: Ավազ և վերջ

Ավազ և ավարտել
Ավազ և ավարտել
Ավազ և ավարտել
Ավազ և ավարտել

Օգտագործելով հղկաթուղթ, զգուշորեն հեռացրեք ժամացույցի երեսից երեսպատման ավելցուկը և ավազը սկսեք 220 հատից մինչև 600 հատ:

Կիրառեք 10 -ից 20 շերտ լաք: Սա կկառուցի մակերեսը, որի երկայնքով կշարժվի գնդիկավոր կրողը: Անխուսափելիորեն փոշու և օդում եղած այլ մասնիկների պատճառով ես կարծում եմ, որ գծեր կհայտնվեն յուրաքանչյուր գնդիկավոր կրիչի ճանապարհին: Հարդարման ավելի շատ շերտեր կիրառելը պետք է հետաձգի դա հնարավորինս երկար: Այն նաև կհեշտացնի ապագա վերամշակումը: Ես կթարմացնեմ այս քայլը, եթե իմ ժամացույցի վրա երբևէ գծեր հայտնվեն:

Քայլ 17: Տեղադրեք էներգիա

Տեղադրեք Power
Տեղադրեք Power
Տեղադրեք Power
Տեղադրեք Power

Օգտագործելով 27/64 դյույմ հորատիչ, ժամացույցի ներքևի հատվածում անցք բացեք և միացրեք հոսանքի վարդակը տեղում:

Քայլ 18: Էլեկտրոնիկայի հավաքում

Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում
Էլեկտրոնիկայի հավաքում

Էլեկտրոնային տախտակին ամրացրեք stepper վարորդներն ու իրական ժամանակի ժամացույցը: Ինձ պետք էր միջոց գտնել Arduino- ն ապահովելու համար, այնպես որ անցքեր էին բացվում, իսկ ճարմանդը փակվում էր: Այս հատկությունները ավելացվել են 22 -րդ քայլում հայտնաբերված ֆայլին:

Քայլ 19: oldոդման և միացման էլեկտրոնիկա

Solder and Connect Electronics
Solder and Connect Electronics
Solder and Connect Electronics
Solder and Connect Electronics
Solder and Connect Electronics
Solder and Connect Electronics

Բլոկ -դիագրամից հետո բոլոր մասերը միասին կպցրեք: Օղակները տաք սոսնձեք տեղում և ամրացրեք ցանկացած թափառող լարերը տաք սոսինձով:

Պատկեր
Պատկեր

Քայլ 20: Հետ ափսե

Հետի ափսե
Հետի ափսե
Հետի ափսե
Հետի ափսե
Հետի ափսե
Հետի ափսե

Ստեղծեք հետևի ափսեը ՝ կտրելով ժամացույցի երեսից ավելի մեծ 1/2 դյույմ մեկ այլ շրջան և ներքին տրամագծով մատանին նույնը, ինչ ժամացույցի հետևի կողմը: Կպչեք օղակը և շրջանաձևը որոշ գարնանային սեղմակների հետ միասին:

Չորանալուց հետո գրեք ներքին օղակից 1/8 դյույմ մեծ տող և կտրեք չափը ՝ օգտագործելով սղոցը կամ սկավառակի սրիչը:

Կտրեք անցքը 1 դյույմ երկարությամբ 1/4 դյույմ լայնությամբ հետևի վերևում ՝ օգտագործելով երթուղիչ կամ հորատիչ: Inkամացույցի մեջքը մեջքին ամրացնելու համար չորս անցք են խփում:

Կիրառեք սև լակի ներկ և չորացնելուց հետո ամրացրեք ժամացույցին:

Քայլ 21. Arduino կոդ

Արդուինոյի կոդը հնարավորինս լավ է մեկնաբանվում: Հիշեք, որ ես ծրագրավորող չեմ, ես ունեմ նվազագույն arduino փորձ (եղեք բարի): Կոդն անընդհատ ստուգվում է ՝ տեսնելու, թե արդյո՞ք ընթացիկ ժամանակը համընկնում է «etամանակի վերականգնման» հետ: Քանի որ ես չէի կարող մտածել ընթացիկ ժամանակը քայլերի վերածելու եղանակի մասին, այն ինքն իրեն ուղղում է միայն օրական մեկ անգամ (լռելյայն կեսգիշեր): Կեսգիշերին շարժիչները պտտվում են դեպի կեսգիշերային դիրք և սպասում մինչև 00:01, շարժվելով դեպի այդ ժամանակ, այնուհետև շարունակվում է այնտեղից: Քանի որ ներկայումս նստած է, ժամացույցը ընդամենը մոտ 5 վայրկյան է կորցնում 24 ժամվա ընթացքում:

Ձեզ հարկավոր կլինի տեղադրել Stepper և RTClib գրադարանները:

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

#ներառում

#ներառել «RTClib.h» RTC_DS1307 rtc; #սահմանել մեկՇրջադարձ 2038 // քայլերի քանակը մեկ պտույտում 28BYJ-48 տիպի շարժիչով Stepper hourHand (oneRotation, 3, 5, 4, 6); Stepper minuteHand (oneRotation, 7, 9, 8, 10); #սահմանել ժամԿանգ առնելՍենսոր 12 #սահմանել րոպեԿանգ առնելՍենսոր 11 int վերջ Քայլ = 0; // dealամացույցի արագության համար ժամանակի գործարք: int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Մաթեմատիկա անելու ընթացիկ ժամանակը: բոց hr = 0; բոց mn = 0; բոց sc = 0; // Setամացույցի վերակայման օրվա ժամը սահմանեք (24 ժամյա ձևաչափ): int resetHour = 0; int resetMinute = 0; // Փոփոխականներ `գործարկման և վերակայման ժամանակ ճիշտ ժամանակը սահմանելու համար: float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minuteTest = 0; void setup () {Serial.begin (115200); // Ստեղծեք իրական ժամանակի ժամացույց և կարգավորեք սրահի էֆեկտի տվիչները: pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin (); // comամանակը սահմանելու համար ստորև չմեկնաբանեք տողը: // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Սահմանեք սլաքային շարժիչների առավելագույն արագությունը: hourHand.setSpeed (15); minuteHand.setSpeed (15); // Օղակ մինչև րոպեի և ժամի սլաքը կեսօրին է (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {ուշացում (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {ուշացում (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {ուշացում (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {ուշացում (4); }} // Ստացեք ընթացիկ ժամանակը DateTime now = rtc.now (); hr = now.hour (); mn = այժմ. րոպե (); sc = now.second (); // Փոխել 12 ժամվա ձևաչափի, եթե (hr> = 12) {hr = hr - 12; } // Տեսեք, թե որ ձեռքը պետք է ավելի հեռու անցնի դեմքով և օգտագործեք այդ հեռավորությունը // համապատասխան ժամանակը կարգավորելու համար: hourTest = hr / 12; minuteTest = mn / 60; եթե (hourTest> minuteTest) {handDelay = hourTest; } else {handDelay = minuteTest; } // Սահմանել ընթացիկ ժամը setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Սահմանել ընթացիկ րոպեն setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Փորձարկեք, թե որ ձեռքին են պետք ավելի շատ քայլեր և սահմանեք այն ամենաերկար քայլերի հաշվարկի համար loop- ի համար: եթե (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } else {endStep = setTimeStepMinute; } համար (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } else {հետաձգում (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } else {ուշացում (4); }} // Setամացույց սահմանել RPM hourHand.setSpeed (1); minuteHand.setSpeed (1); } void loop () {// clockամացույցի մեկնարկի մեկնարկի հանգույց: համար (int i = 0; i <22; i ++) {minuteHand.step (1); ուշացում (setDelay1); // Վերակայման ժամանակի փորձարկում, եթե պատրաստ է վերակայման, ընդմիջում: եթե (rtc.now (). ժամ () == resetHour && rtc.now (). րոպե () == resetMinute) {ընդմիջում; }} ուշացում (setDelay3); համար (int i = 0; i <38; i ++) {hourHand.step (1); ուշացում (setDelay1); // Վերակայման ժամանակի փորձարկում, եթե պատրաստ է վերակայման, ընդմիջում: if (rtc.now (). ժամ () == resetHour && rtc.now (). րոպե () == resetMinute) {ընդմիջում; } համար (int i = 0; i <20; i ++) {minuteHand.step (1); ուշացում (setDelay2); // Վերակայման ժամանակի փորձարկում, եթե պատրաստ է վերակայման, ընդմիջում: if (rtc.now (). ժամ () == resetHour && rtc.now (). րոպե () == resetMinute) {ընդմիջում; }}} // clockամացույցի վերակայում վերակայման պահին, եթե (rtc.now (). Ժամ () == resetHour && rtc.now (). Րոպե () == resetMinute) {// Փոխել ժամացույցի արագությունը hourHand.setSpeed (10); minuteHand.setSpeed (10); // Շրջեք մինչև րոպեի և ժամի սլաքը հասնում է կեսօրին: while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {ուշացում (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {ուշացում (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {հետաձգում (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {ուշացում (4); }} // Սպասեք այստեղ, մինչև չանցնի վերակայման ժամանակը: while (rtc.now (). րոպե () == resetMinute) {հետաձգում (1000); } // Ստացեք ընթացիկ ժամանակը DateTime now = rtc.now (); hr = now.hour (); mn = այժմ. րոպե (); sc = այժմ. երկրորդ (); // Փոխել 12 ժամվա ձևաչափի, եթե (hr> = 12) {hr = hr - 12; } // Տեսեք, թե որ ձեռքը պետք է ավելի հեռու անցնի դեմքով և օգտագործեք այդ հեռավորությունը // համապատասխան ժամանակը կարգավորելու համար: hourTest = hr / 12; minuteTest = mn / 60; եթե (hourTest> minuteTest) {handDelay = hourTest; } else {handDelay = minuteTest; } // Սահմանել ընթացիկ ժամը setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Սահմանել ընթացիկ րոպեն setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Փորձարկեք, թե որ ձեռքին են պետք ավելի շատ քայլեր և սահմանեք այն ամենաերկար քայլերի հաշվարկի համար loop- ի համար: եթե (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } else {endStep = setTimeStepMinute; } համար (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } else {հետաձգում (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } else {ուշացում (4); }} hourHand.setSpeed (1); minuteHand.setSpeed (1); }}

Քայլ 22: STL ֆայլեր

Ձեզ հարկավոր է տպել ֆայլերի հետևյալ քանակները.

  • 1 - ժամային օղակաձեւ հանդերձում հատվածի մագնիս
  • 6 - Hour Ring Gear Segment Basic
  • 1 - ourամ պահող օղակաձեւ հատված Սթեփեր լեռ
  • 6 - ժամի պահպանման օղակի հատվածի հիմնական
  • 1 - Hour Hall Effect Sensor Holder
  • 1 - րոպեական օղակաձեւ հանդերձում հատվածի մագնիս
  • 7 - Minute Ring Gear Segment Basic
  • 1 - Րոպե պահող օղակաձեւ հատվածի սլաքային լեռ
  • 6 - րոպե պահող օղակաձեւ հատվածի հիմնական
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spur Gear
  • 1 - Էլեկտրոնիկայի լեռ

Քայլ 23. Solidworks ֆայլեր

Սրանք Solidworks- ի օրիգինալ ֆայլերն են, որոնք օգտագործվում են նախորդ քայլում հայտնաբերված STL- երը ստեղծելու համար: Ազատորեն խմբագրեք և փոխեք իմ ֆայլերը, ինչպես հարմար եք համարում:

Քայլ 24. Եզրակացություն

Այս ժամացույցն ավելի լավ ստացվեց, քան ես ենթադրում էի: Ունենալով նվազագույն Arduino փորձ, ես ուրախ եմ, թե ինչպես է այն ստացվել և որքանով է այն ճշգրիտ: Այն հիանալի տեսք ունի և գործում է այնպես, ինչպես ես հույս ունեի:

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