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

ATTiny85 կոնդենսատոր հաշվիչ ՝ 4 քայլ
ATTiny85 կոնդենսատոր հաշվիչ ՝ 4 քայլ

Video: ATTiny85 կոնդենսատոր հաշվիչ ՝ 4 քայլ

Video: ATTiny85 կոնդենսատոր հաշվիչ ՝ 4 քայլ
Video: M#1. Տեղադրեք Outseal PLC Mega-ն ATmega128 զարգացման խորհրդի հետ | Outseal Dev. PLC Mega 2024, Հուլիսի
Anonim
ATTiny85 կոնդենսատոր հաշվիչ
ATTiny85 կոնդենսատոր հաշվիչ
ATTiny85 կոնդենսատոր հաշվիչ
ATTiny85 կոնդենսատոր հաշվիչ

Այս հրահանգը նախատեսված է ATTiny85- ի վրա հիմնված կոնդենսատոր հաշվիչի համար `հետևյալ հատկանիշներով:

  • Հիման վրա ATTiny85 (DigiStamp)
  • SSD1306 0.96 "OLED էկրան
  • Valueածր արժեքի կոնդենսատորների հաճախականության չափում 1pF - 1uF 555 տատանման միջոցով
  • Լիցքավորման ժամանակի չափում բարձրարժեք կոնդենսատորների համար 1uF - 50000uF
  • 2 առանձին նավահանգիստներ, որոնք օգտագործվում են կայուն հզորությունը նվազեցնելու մեթոդների համար
  • Լիցքավորման ժամանակի համար օգտագործվում է հոսանքի երկու արժեք `մեծ կոնդենսատորների ժամանակը նվազագույնի հասցնելու համար
  • 555 մեթոդը ինքնուրույն զրոյներ սկսելիս, կարող է վերականգնվել ՝ սեղմելով կոճակը
  • Արագ թեստ, որն օգտագործվում է ընտրելու համար, թե որ մեթոդը պետք է օգտագործվի չափման յուրաքանչյուր ցիկլի համար:
  • Լիցքավորման ժամանակի մեթոդի ճշգրտությունը կարող է բարելավվել ՝ աջակցելով OSCVAL ժամացույցի հաճախականության ճշգրտմանը

Քայլ 1. Սխեմատիկա և տեսություն

Սխեմատիկ և տեսական
Սխեմատիկ և տեսական

Սխեման ցույց է տալիս, որ ATTiny- ն SSD1306 OLED էկրանը վարում է I2C ինտերֆեյսի միջոցով: Այն ուղղակիորեն սնուցվում է LiOn 300mAh մարտկոցից և ներառված է լիցքավորման կետ, որը կարող է օգտագործվել LiOn- ի հետ համատեղելի արտաքին լիցքավորիչով:

Չափման առաջին մեթոդը հիմնված է 555 ազատ հոսող տատանումների հաճախականության չափման վրա: Սա ունի բազային հաճախականություն, որը որոշվում է դիմադրիչների կողմից և կոնդենսատոր, որը պետք է լինի բարձր ճշգրտություն, քանի որ դա որոշում է չափումների ճշգրտությունը: Ես օգտագործեցի 820pF 1% պոլիստիրոլի կոնդենսատոր, բայց ունեի 1nF- ի այլ արժեքներ: Արժեքը պետք է մուտքագրվի ծրագրաշարի մեջ `ցանկացած թափառող հզորության գնահատման հետ միասին (~ 20pF): Սա բազային հաճախականություն տվեց մոտ 16 ԿՀց հաճախականությամբ: 555 -ի ելքը սնվում է ATTiny- ի PB2- ով, որը ծրագրավորված է որպես ապարատային հաշվիչ: Մոտ 1 վայրկյան ժամանակահատվածում հաշվարկը չափելով ՝ կարելի է որոշել հաճախականությունը: Դա արվում է գործարկման սկզբում `հիմնական հաճախականությունը որոշելու համար: Երբ փորձարկվող կոնդենսատորը ավելացվում է բազային կոնդենսատորի հետ զուգահեռ, ապա հաճախականությունը նվազում է, և երբ դա չափվում և համեմատվում է բազային հաճախականության հետ, ապա կարող է հաշվարկվել ավելացված հզորության արժեքը:

Այս մեթոդի գեղեցիկ առանձնահատկությունն այն է, որ հաշվարկված արժեքը կախված է միայն բազային կոնդենսատորի ճշգրտությունից: Չափման ժամանակահատվածը նշանակություն չունի: Բանաձևը կախված է հաճախությունների չափումների բանաձևից, որը բավականին բարձր է, այնպես որ նույնիսկ շատ փոքր ավելացված հզորությունը կարող է չափվել: Թվում է, թե սահմանափակող գործոնը 555 տատանողի «հաճախական աղմուկն» է, որն ինձ համար համարժեք է մոտ 0.3pF- ի:

Մեթոդը կարող է օգտագործվել արժանապատիվ տիրույթում: Միջակայքը բարելավելու համար ես համաժամացնում եմ չափման շրջանը մուտքային իմպուլսների եզրերի հայտնաբերման հետ: Սա նշանակում է, որ նույնիսկ ցածր հաճախականության տատանումները, ինչպես 12 Հց (1uF կոնդենսատորով) չափվում են ճշգրիտ:

Ավելի մեծ կոնդենսատորների համար սխեման կազմակերպված է լիցքավորման ժամանակաչափի մեթոդով: Փորձարկվող կոնդենսատորը լիցքաթափվում է `ապահովելու համար, որ այն սկսվում է 0 -ից, այնուհետև լիցքավորվում է մատակարարման լարման հայտնի դիմադրության միջոցով: Կոնդենսատորի լարումը վերահսկելու համար օգտագործվում է ATTiny85- ի ADC- ն և չափվում է 0% -ից մինչև 50% լիցքավորման ժամանակը: Սա կարող է օգտագործվել հզորությունը հաշվարկելու համար: Քանի որ ADC- ի հղումը նաև մատակարարման լարումն է, ապա դա չի ազդում չափման վրա: Այնուամենայնիվ, ժամանակի բացարձակ չափումը կախված է ATTiny85 ժամացույցի հաճախականությունից և դրա տատանումները ազդում են արդյունքի վրա: Այս ժամացույցի ճշգրտությունը բարելավելու համար կարող է օգտագործվել ընթացակարգ ATTiny85- ում թյունինգ գրանցամատյան օգտագործելու համար, և դա նկարագրված է ավելի ուշ:

Կոնդենսատորը 0 Վ-ի վրա լիցքաթափելու համար օգտագործվում է n-channel MOSFET- ը `ցածր արժեքի դիմադրիչի հետ միասին` լիցքաթափման հոսանքը սահմանափակելու համար: Սա նշանակում է, որ նույնիսկ մեծ արժեք ունեցող կոնդենսատորները կարող են արագ լիցքաթափվել:

Կոնդենսատորը լիցքավորելու համար օգտագործվում է լիցքավորման դիմադրության 2 արժեք: Հիմնական արժեքը տալիս է ողջամիտ լիցքավորման ժամանակ կոնդենսատորների համար `1uF- ից մինչև մոտ 50uF: P-channel MOSFET- ը օգտագործվում է ավելի ցածր դիմադրության մեջ զուգահեռելու համար `թույլ տալու ավելի բարձր արժեքի կոնդենսատորները չափել ողջամիտ միջակայքում: Ընտրված արժեքները տալիս են մոտ 1 վայրկյան չափման կոնդենսատորներ մինչև 2200uF և համամասնորեն ավելի մեծ արժեքների դեպքում: Արժեքի ստորին վերջում չափման շրջանը պետք է ողջամիտ երկար պահվի, որպեսզի թույլ տա 50% շեմից անցում կատարել բավական ճշգրիտ: ADC- ի նմուշառման մակարդակը մոտ 25uSec է, այնպես որ նվազագույն 22mSec ժամանակահատվածը տալիս է ողջամիտ ճշգրտություն:

Քանի որ ATTiny- ը սահմանափակել է IO- ն (6 կապում), ապա այս ռեսուրսի բաշխումը պետք է ուշադիր կատարվի: Pուցադրման համար անհրաժեշտ է 2 կապ, 1 ժամաչափի մուտքագրման համար, 1 ADC, 1 լիցքաթափման և 1 լիցքավորման արագության վերահսկման համար: Ես ուզում էի սեղմել կոճակի հսկողությունը, որը թույլ կտա նորից զրոյացնել ցանկացած պահի: Դա արվում է I2C SCL գծի բարձր ջոկով: Քանի որ I2C ազդանշանները բաց արտահոսքի են, ապա էլեկտրական կոնֆլիկտ չկա ՝ թույլ տալով կոճակին ցածր քաշել այս գիծը: Էկրանը կդադարի աշխատել սեղմված կոճակի հետ, բայց դա ոչ մի նշանակություն չունի, քանի որ այն վերսկսվում է, երբ կոճակը բաց է թողնվում:

Քայլ 2: Շինարարություն

Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն

Ես դա դարձրեցի մի փոքրիկ 55 մմ x 55 մմ չափի 3D տպագիր տուփ: նախագծված է պահել 4 հիմնական բաղադրիչները. ATTiny85 DigiStamp տախտակը, SSD1306 էկրանը, LiOn մարտկոցը և մի փոքր նախատիպի տախտակ, որը պահում է 55 ժամաչափը և լիցքավորման կառավարման էլեկտրոնիկան:

Փակ ՝ https://www.thingiverse.com/thing:4638901 հասցեով

Պահանջվող մասեր

  • ATTiny85 DigiStamp տախտակ: Ես օգտագործեցի մի տարբերակ microUSB միակցիչով, որն օգտագործվում է որոնվածը բեռնելու համար:
  • SSD1306 I2C OLED էկրան
  • 300 mAH LiOn մարտկոց
  • Նախատիպային տախտակի փոքր շերտ
  • CMOS 555 ժամանակաչափի չիպ (TLC555)
  • n-Channel MOSFET AO3400
  • p-Channel MOSFET AO3401
  • Ռեզիստորներ 4R7, 470R, 22K, 2x33K
  • Կոնդենսատորներ 4u7, 220u
  • Cշգրիտ կոնդենսատոր 820pF 1%
  • Մանրանկարչական սլայդ անջատիչ
  • 2 x 3 փին վերնագիր ՝ լիցքավորման և չափման նավահանգիստների համար
  • Կտտացրեք կոճակը
  • Պարիսպ
  • Կապեք մետաղալար

Անհրաժեշտ գործիքներ

  • Ineոդման նուրբ կետ
  • Պինցետ

Նախ կազմեք 555 ժամաչափի միացում և լիցքավորման բաղադրիչներ նախատիպի տախտակի վրա: Արտաքին միացումների համար ավելացրեք թռչող հանգույցներ: Տեղադրեք սահիկի անջատիչը և լիցքավորման կետը և չափիչ նավահանգիստը պարիսպի մեջ: Կցեք մարտկոցը և կատարեք հիմնական էլեկտրագծերը լիցքավորման կետին, սահեցրեք անջատիչը: Միացրեք հողը սեղմիչ կոճակին: Տեղադրեք ATTiny85- ը տեղում և ավարտեք կապը:

Դուք կարող եք էներգիայի խնայողության որոշ փոփոխություններ կատարել ATTiny տախտակին նախքան այն տեղադրելը, ինչը մի փոքր կնվազեցնի հոսանքը և կերկարացնի մարտկոցի կյանքը:

www.instructables.com/Reducing-Sleep-Curre…

Սա էական նշանակություն չունի, քանի որ էլեկտրահաղորդիչ կա, որը պետք է անջատի հաշվիչը, երբ այն չի օգտագործվում:

Քայլ 3: Softwareրագրակազմ

Այս կոնդենսատորի հաշվիչի ծրագրակազմը կարող եք գտնել այստեղ

github.com/roberttidey/CapacitorMeter

Սա Arduino- ի վրա հիմնված ուրվագիծ է: Այն գրադարանների կարիք ունի ցուցադրման և I2C- ի համար, որոնք կարելի է գտնել այստեղ

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Սրանք օպտիմիզացված են ATTiny- ի համար `նվազագույն հիշողություն վերցնելու համար: I2C գրադարանը բարձր արագությամբ բիթ բանգի մեթոդ է, որը թույլ է տալիս օգտագործել ցանկացած 2 կապում: Սա կարևոր է, քանի որ սերիական պորտը օգտագործող I2C մեթոդները օգտագործում են PB2, ինչը հակասության մեջ է 555 հաճախականությունը չափելու համար անհրաժեշտ ժամաչափի/հաշվիչի մուտքի օգտագործման հետ:

Theրագրակազմը կառուցված է պետական մեքենայի շուրջ, որը չափումները կատարում է մի շարք ցիկլերի միջոցով: ISR- ն աջակցում է ժամաչափի հաշվիչից արտահոսք `8 բիթանոց սարքավորումները երկարացնելու համար: Երկրորդ ISR- ն աջակցում է ADC- ին, որը գործում է շարունակական ռեժիմում: Սա ամենաարագ արձագանքն է տալիս շեմը հատող լիցքավորման սխեմային:

Յուրաքանչյուր չափման ցիկլի սկզբում getMeasureMode գործառույթը որոշում է, թե որն է ամենահարմար մեթոդը յուրաքանչյուր չափման համար:

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

Երբ ծրագրակազմը գործարկվում է, առաջին 7 չափումները «չափագրման ցիկլեր» են, որոնք օգտագործվում են 555 -ի առանց լրացուցիչ կոնդենսատորի հիմնական հաճախականությունը որոշելու համար: Վերջին 4 ցիկլերը միջինացված են:

Կա աջակցություն ժամացույցի կարգաբերման համար OSCAL գրանցամատյանը կարգավորելու համար: Ես առաջարկում եմ OSCCAL_VAL- ը սկզբում էսքիզի վերևում սահմանել 0: Սա նշանակում է, որ գործարանային ստուգաչափումը կկիրառվի մինչև թյունինգի կատարումը:

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

Եթե լիցքավորման մեթոդների համար օգտագործվում են տարբեր ռեզիստորներ, ապա ծրագրաշարի CHARGE_RCLOW և CHARGE_RCHIGH արժեքները նույնպես պետք է փոխվեն:

Theրագրակազմը տեղադրելու համար օգտագործեք ծրագրաշարը վերբեռնելու և USB պորտը միացնելու սովորական digistamp մեթոդը: Սնուցման անջատիչը թողեք անջատված վիճակում, քանի որ այս գործողության համար հոսանքը կտրամադրվի USB- ով:

Քայլ 4: Գործողություն և առաջադեմ ճշգրտում

Գործողությունը շատ պարզ է:

Միավորը միացնելուց և չափման զրոյի ավարտին սպասելուց հետո միացրեք փորձարկվող կոնդենսատորը չափման երկու նավահանգիստներից մեկին: Օգտագործեք 555 նավահանգիստներ ցածր արժեքի <1uF կոնդենսատորների համար, իսկ բարձրարժեք կոնդենսատորների համար `լիցքավորման նավահանգիստ: Էլեկտրոլիտիկ կոնդենսատորների համար բացասական տերմինալը միացրեք ընդհանուր երկրային կետին: Փորձարկման ընթացքում կոնդենսատորը լիցքավորվելու է մինչև մոտ 2 Վ:

555 նավահանգիստը կարող է վերականգնվել ՝ սեղմելով կոճակը մոտ 1 վայրկյան և բաց թողնելով: Համոզվեք, որ դրա համար ոչինչ միացված չէ 555 պորտին:

Ընդլայնված ճշգրտում

Chargeամանակը չափելու համար լիցքավորման մեթոդը հիմնված է ATTiny85- ի ժամացույցի բացարձակ հաճախականության վրա: Theամացույցը օգտագործում է ներքին RC տատանում, որը կազմակերպված է անվանական 8 ՄՀց ժամացույց տալու համար: Չնայած տատանումների կայունությունը բավականին լավ է լարման և ջերմաստիճանի տատանումների դեպքում, դրա հաճախականությունը կարող է բավականին մի քանի տոկոսով դուրս գալ, չնայած այն գործարանային չափագրված է: Այս ճշգրտումը սահմանում է OSCCAL գրանցամատյանը գործարկման ժամանակ: Գործարանային ճշգրտումը կարող է բարելավվել `հաճախականությունը ստուգելով և OSCCAL արժեքի առավել օպտիմալ կարգավորմամբ` համապատասխան ATTiny85 տախտակին համապատասխան:

Ես դեռ չեմ հասցրել ավելի ավտոմատ մեթոդի մեջ տեղակայել որոնվածը, այնպես որ ես օգտագործում եմ հետևյալ ձեռնարկը: Երկու փոփոխություն հնարավոր է `կախված արտաքին չափումների առկայությունից. կամ հաճախականության հաշվիչ, որը կարող է չափել 555 նավահանգստի վրա եռանկյուն ալիքի ձևի հաճախականությունը, կամ հայտնի հաճախականության քառակուսի ալիքի աղբյուր, օրինակ. 10 ԿՀց 0V/3.3V մակարդակներով, որոնք կարող են միացվել 555 նավահանգստին և անտեսել ալիքի ձևը ՝ այդ հաճախականությունը հաշվիչի մեջ մղելու համար: Ես օգտագործեցի երկրորդ մեթոդը:

  1. Գործարկեք հաշվիչը իր սովորական հզորության վրա `միացված կոնդենսատորների հետ:
  2. Միացրեք հաճախականության հաշվիչը կամ քառակուսի ալիքների գեներատորը 555 պորտին:
  3. Վերագործարկեք ստուգաչափման ցիկլը `սեղմելով կոճակը:
  4. Կալիբրացիայի ցիկլի վերջում էկրանը կցուցադրի հաշվիչով որոշված հաճախականությունը և ընթացիկ OSCCAL արժեքը: Նկատի ունեցեք, որ ստուգաչափման ցիկլի կրկնակի օգտագործումը կանցնի չափված հաճախականությունը ցուցադրելու և նորմալ առանց ցուցադրման միջև:
  5. Եթե ցուցադրվող հաճախականությունը հայտնիից փոքր է, նշանակում է ժամացույցի հաճախականությունը չափազանց բարձր է և հակառակը: Ես գտնում եմ, որ OSCCAL հավելումը ժամացույցը կարգավորում է մոտ 0.05% -ով
  6. Հաշվարկեք OSCCAL- ի նոր արժեքը `ժամացույցը բարելավելու համար:
  7. Մուտքագրեք OSCCAL- ի նոր արժեքը OSCCAL_VAL- ի որոնվածի վերևում:
  8. Վերակառուցեք և վերբեռնեք նոր որոնվածը: Կրկնեք 1-5 քայլերը, որոնք պետք է ցույց տան նոր OSCCAL արժեքը և հաճախության նոր չափումը:
  9. Անհրաժեշտության դեպքում կրկնում ենք քայլերը մինչև լավագույն արդյունքի հասնելը:

Նշումը կարևոր է կատարել այս կարգաբերման չափիչ մասը, երբ աշխատում է սովորական էներգիայով, այլ ոչ թե USB- ով `մատակարարման լարման պատճառով նվազեցնելու հաճախականությունների ցանկացած փոփոխություն:

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