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

Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)

Video: Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)

Video: Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)
Video: ՄԻՊ-ի տեսանյութը․ Գործատուի նախաձեռնությամբ աշխատանքային պայմանագրի լուծման դեպքերը․ իրազեկում 2024, Հուլիսի
Anonim
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց

Ես դարակում ունեի այս 8x8 լուսադիոդային կետերի մի քանի դիսփլեյ և մտածում էի, թե ինչ անել դրանց հետ: Ոգեշնչված այլ հրահանգներով, ես գաղափար ստացա կառուցել հետհաշվարկի/վերևի ցուցադրում `հետ հաշվելու համար մինչև ապագա ամսաթիվը/ժամը, և եթե նպատակային ժամանակը անցել է, հաշվել դրանից: Ես սա դարձրեցի հիմա իմ թոշակի ժամացույցը `նստած դարակում:

Այն շշի մեջ դնելու գաղափարն ավելի շուտ պատահականություն էր պատյանների մասին մտածելիս: Մյուսները նավերը դնում են շշի մեջ, ինչու ոչ ժամացույց:

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

Պարագաներ

1. Արդուինո Նանո

2. RTC (ես օգտագործել եմ ընդհանուր DS3231- ը, որն ունի նաև EEPROM)

3. 12x 8x8 կետային մատրիցային մոդուլ: (Ես ունեի չորս մոդուլներ, որոնք ավելի հեշտ է շարել)

4. LDR ՝ էկրանի պայծառությունը կարգավորելու համար

5. Ռեզիստոր 10 կՕմ

6. Կոնդենսատոր 5x 100 uF ճնշելով էկրանին ցատկերը

7. 8x8 մոդուլների հակադրությունը բարձրացնելու համար ես օգտագործեցի մուգ երանգով «Պատուհանների ֆիլմը»: Էկրանը LED- ները ցույց է տալիս որպես սպիտակ կետեր, եթե դրանք լուսավորված չեն: Պատուհանի ֆիլմը այն դարձնում է փայլուն սև տեսք:

Քայլ 1: Միացրեք բաղադրիչները

Միացրեք բաղադրիչները
Միացրեք բաղադրիչները
Միացրեք բաղադրիչները
Միացրեք բաղադրիչները

Էկրանը հավաքելու համար ես օգտագործեցի չորս դիսփլեյներից երեքը: Շեղ գծիկներով ամսաթիվը և փոքր կետերով ժամանակը ցույց տալու համար մեզ պետք է տարածք 8 նիշերի համար: Օգտագործելով տիպիկ 5x7 տառատեսակը, մեզ հարկավոր կլինի վեց 8x8 բլոկ մեկ տողում: Ես չորս քառակուսիներից մեկը կիսով չափ կիսեցի և դրանք երկու շարքով դասավորեցի վեց բլոկով, ինչպես ցույց է տրված տախտակի սխեմատիկայում:

Քայլ 2: 3D տպագիր մասեր

3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր

Էկրանի երկու տողերը պահելու և դրանք շշի մեջ տեղադրելու համար ես տպել եմ ցուցադրման շրջանակի կլոր հեռավոր օղակներ: Ստորև ավելացրել եմ օգտագործածս ֆայլերը: Որպեսզի կարողանաք դրանք տպել առանց աջակցության, դրանք բաժանված են մասերի: Սքրինշոթը ցույց է տալիս ցուցադրման շրջանակին սոսնձված երկու օղակները: Շշի վզիկի կափարիչը պարունակում է երեք կոճակ `ցուցադրման ռեժիմների միջև փոխելու և ընթացիկ և նպատակային ժամանակը սահմանելու համար: Շշի պարանոցի կափարիչը ես տպել եմ TPU- ում, որը թույլ է տալիս սահեցնել USB մալուխը կափարիչի մեջ ՝ առանց միակցիչները կտրելու և այն կապել մետաղալարերի մի քանի ոլորունով: Մոռացա նշել, որ ես օգտագործել եմ 1.5 լ գինու շիշ, որը կտրել եմ հենց ներքևում: Տպագրվող բոլոր մասերը տեղավորվում են 20x20 սմ (8x8 դյույմ) տպիչի մահճակալի վրա:

Քայլ 3: Կոդ

Arduino կոդը օգտագործում է մի քանի հաճախակի օգտագործվող գրադարաններ:

MD_MAX72xx

SPI

Մետաղալար

RTClib

Ժամային գոտի

TimeLib

INO ֆայլում կան մի քանի տողեր, որոնք կարող են փոխվել.

Տող 38. #Սահմանեք HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- կախված է 8x8 մոդուլից և դրա կողմնորոշումից

FC16_HW- ի փոխարեն այն կարող է.

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Կոդն օգտագործում է ԱՄՆ կենտրոնական ժամանակի կարգավորումները և կարիք ունի ճշգրտման այլ ժամային գոտիների համար.

Տող 53/54:

TimeChangeRule myDST = {"CDT", Երկրորդ, Sun, Mar, 2, -300}; // lightերեկային ժամ UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Ստանդարտ ժամանակ UTC -6

Սա հեշտ է կարգավորել: CST/CDT անունը պարզապես հղում ունենալու համար է: Ես չեմ ներկայացնում երեք տառ-հապավումը, այնպես որ դա նշանակություն չունի: Հաջորդ պարամետրերը վերաբերում են, թե ամսվա որ օրն է տեղի ունենում փոփոխությունը: Կարգավորումը կատարվում է րոպեներով, այնպես որ +/- 30 րոպե ճշգրտումներ օգտագործող վայրերը նույնպես կաշխատեն:

RTC- ն ներքին ռեժիմով աշխատում է UTC-Time- ով, ինչը թույլ է տալիս ժամային գոտու գրադարանին աշխատել ըստ նախատեսվածի: Դուք կարող եք մտածել, թե ինչու է ծածկագիրը հղում անում ավելի հին DS1307 չիպին, հակառակ իմ օգտագործած ժամացույցի չիպի, բայց դա նշանակություն չունի: Գրադարանը լավ է աշխատում երկու չիպերի հետ: DS1307- ն ավելի շատ շեղվելու միտում ունի, քան DS3132- ը: DS3132- ը նախընտրելի ժամացույց է: Նրանց համար, ովքեր կցանկանան ինտերնետի ժամանակը ավելացնել, ESP8266- ը բավականին հեշտությամբ կանի այդ աշխատանքը: Սա կարող է հնացած դարձնել RTC- ն: Եթե դուք կատարում եք այս փոփոխությունները, օգտագործեք Arduino EEPROM- ը ՝ նպատակային ժամանակը պահելու համար, ես դրա համար օգտագործել եմ RTC EEPROM- ը:

Քայլ 4: Գործողություն և կարգավորումներ

Գործողություն և կարգավորումներ
Գործողություն և կարգավորումներ
Գործողություն և կարգավորումներ
Գործողություն և կարգավորումներ
Գործողություն և կարգավորումներ
Գործողություն և կարգավորումներ

Կան երեք կոճակներ

1. Մենյու / կարգավորումներ

2. Վերև

3. Ներքև

Theաշացանկի կոճակը թույլ է տալիս հեծանիվ վարել ցուցադրման երեք տիպի տիպի միջոցով `ընթացիկ ժամանակ, նպատակային ժամանակ, դելտա ժամանակ: Դելտայի ժամանակը ցույց է տալիս օրերի քանակը, HH/MM/SS ընթացիկ ժամանակի և նպատակային ժամանակի միջև: Այն ցույց կտա t- և հետհաշվարկ, եթե թիրախը ապագայում է կամ t+ և կհաշվի, եթե թիրախն անցյալում է:

Ընթացիկ կամ նպատակային ժամանակը կարգավորելու համար ընտրեք ընթացիկ ժամանակը կամ նպատակային ժամանակի ցուցադրումը: Changeամանակը փոխելու համար պահեք ընտրացանկի կոճակը 2 վայրկյան և բաց թողեք, որը ձեզ կբերի կարգավորումների ռեժիմ: Հարևան "/" կամ ":" - ն կդառնա "" `նշելու համար, թե որ նիշն եք ճշգրտում: Օգտագործեք վեր/վար կոճակները `անհատական hh/mm/ss և mm/dd/yy կարգավորելու համար: Ես mm/dd/yy և dd/mm/yy միջև փոխելու կարգավորում չեմ ավելացրել, սա պետք է փոխվի ծածկագրում, կամ գուցե ինչ -որ մեկը պատրաստ է ավելացնել այս հնարավորությունը:

Դուք կնկատեք, որ եթե րոպեները բարձրացնեք 59 -ից կամ 00 -ից ցածր, ժամացույցը նույնպես կկարգավորվի: նույնը վերաբերում է վայրկյաններին, ժամերին և օրերին, որոնք փոխում են հաջորդ ավելի բարձր արժեքը, եթե այս թվանշանի համար գերազանցում եք 0 -ից կամ առավելագույնից: Ես դա արեցի, որպեսզի խուսափեմ առանձին ամիսների տարբեր սահմանների ծրագրավորումից, և եթե փետրվարին թռիչքային տարվա համար անհրաժեշտ է 29 օր: Theամանակի ճշգրտումը իրականում կատարվում է դարաշրջանում `վայրկյաններ` հունվարի 1-1970-ից:

Ես ավելացրել եմ մի պարզ տեսանյութ ՝ հաշվարկը ցույց տալու համար: Ես ուզում էի դրանք դարձնել պտտվող անիվի էկրանին: Եթե ցանկանում եք փոփոխության տևողությունը հարմարեցնել, INO- ի 69 -րդ տողը ձեզ տալիս է փոփոխությունը արագացնելու կամ դանդաղեցնելու մի քանի տարբերակ: 120ms- ը կդարձնի թվանշանների ոլորումը բավական դանդաղ, քանի որ դա անընդհատ ընթացող անիվ կլինի:

Հուսով եմ, որ ձեզ դուր եկավ այս ուսանելի ծրագիրը:

Պատրիկ Գեշվինդներ

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