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

Մարտկոցի հզորության ևս մեկ փորձարկիչ ՝ 6 քայլ
Մարտկոցի հզորության ևս մեկ փորձարկիչ ՝ 6 քայլ

Video: Մարտկոցի հզորության ևս մեկ փորձարկիչ ՝ 6 քայլ

Video: Մարտկոցի հզորության ևս մեկ փորձարկիչ ՝ 6 քայլ
Video: 10+ խորհուրդներ այն մասին, թե ինչպես արագ և անվտանգ լիցքավորել ձեր հեռախոսը 2024, Նոյեմբեր
Anonim
Մարտկոցի հզորության ևս մեկ փորձարկիչ
Մարտկոցի հզորության ևս մեկ փորձարկիչ
Մարտկոցի հզորության ևս մեկ փորձարկիչ
Մարտկոցի հզորության ևս մեկ փորձարկիչ

Ինչու ևս մեկ հզորության փորձարկիչ

Ես կարդացել եմ փորձարկողի կառուցման բազմաթիվ տարբեր հրահանգներ, բայց դրանցից ոչ մեկը կարծես չի համապատասխանում իմ կարիքներին: Ես ուզում էի կարողանալ փորձարկել նաև ավելին, քան պարզապես NiCd/NiMH կամ Lion բջիջները: Ես ուզում էի, որ կարողանայի էլեկտրական գործիքի մարտկոցը փորձարկել ՝ առանց այն առաջինը միացնելու: Այսպիսով, ես որոշեցի ավելի մոտիկից ուսումնասիրել հարցը և նախագծել իմ սեփականը: Մի բան տանում է մյուսին, և ես վերջապես որոշեցի ինքս գրել ուսանելի: Ես նաև որոշեցի չանդրադառնալ այն բոլոր մանրամասներին, թե ինչպես կարելի է իրականում կառուցել փորձարկիչը, քանի որ յուրաքանչյուրը կարող է որոշել որոշ ընտրություններ, ինչպիսիք են ՝ ինչ չափի դիմադրություն օգտագործել, կամ արդյոք PCB- ն անհրաժեշտ է, թե՞ Veroboard- ը բավարար է, և կա նաև մի տոննա հրահանգների վրա, թե ինչպես դա անել: տեղադրել արծիվ կամ ինչպես պատրաստել PCB: Այլ կերպ ասած, ես կկենտրոնանամ սխեմաների և ծածկագրի վրա, և թե ինչպես պետք է չափագրել փորձարկողին:

Քայլ 1. Պատմություն - տարբերակ 1

Պատմություն - տարբերակ 1
Պատմություն - տարբերակ 1

Վերևում առաջին տարբերակն է, որի ներքևում նշված է ավելի քան 10 Վ մուտքային աջակցություն (R12 & R17 & Q11 & Q12):

Առաջին տարբերակը deba168- ի կողմից քիչ թե շատ վերցված էր հրահանգվողից (ցավոք, ես չեմ կարող գտնել հղում տալու իր հրահանգը): Կատարվեցին միայն որոշ չնչին փոփոխություններ: Այս տարբերակում ես ունեի մեկ 10 օմ բեռի ռեզիստոր, որը վերահսկվում էր mosfet- ով: Սա, սակայն, որոշ խնդիրներ բերեց: NiCd կամ NiMH բջիջը փորձարկելիս անհրաժեշտ ժամանակը հեշտությամբ չափվում էր ժամերով, եթե ոչ օրերով: 1500 մԱ / ժ մարտկոցը տևեց ավելի քան 12 ժամ (հոսանքը ընդամենը 120 մԱ էր): Մյուս կողմից, առաջին տարբերակը կարող էր փորձարկել միայն 10 Վ լարման տակ գտնվող մարտկոցները: Իսկ ամբողջովին լիցքավորված 9.6 Վ մարտկոցը կարող է իրականում լինել մինչև 11.2 Վ, որը չի կարող փորձարկվել 10 Վ լարման պատճառով: Ինչ -որ բան պետք էր անել: Նախ, ես պարզապես ավելացրեցի մի քանի mosfets և ռեզիստորներ, որպեսզի լարման բաժանարարները կարողանան թույլ տալ ավելի քան 10V: Բայց սա, մյուս կողմից, առաջ բերեց մեկ այլ խնդիր. Լիովին բեռնված 14.4 Վ մարտկոցը կարող է ունենալ մինչև 16.8 Վ, ինչը 10 օմ դիմադրությամբ նշանակում էր 1.68 Ա հոսանք և, իհարկե, էներգիայի սպառում գրեթե 30 Վտ բեռի դիմադրիչից: Այսպիսով, ցածր լարման չափազանց երկար փորձարկման ժամանակով և բարձր լարման չափազանց բարձր հոսանքով: Ակնհայտ է, որ դա համարժեք լուծում չէր, և անհրաժեշտ էր հետագա զարգացում:

Քայլ 2: Տարբերակ 2

Ես ուզում էի լուծում, որտեղ հոսանքը կմնար որոշակի սահմաններում ՝ անկախ մարտկոցի լարումից: Մեկ լուծում կլիներ PWM- ի և միայն մեկ դիմադրության օգտագործումը, բայց ես նախընտրեցի լուծում ունենալ առանց իմպուլսային հոսանքի կամ ունենալ մոսֆետի ջերմությունը ցրելու անհրաժեշտություն: Այսպիսով, ես ստեղծեցի լուծում 10 լարման անցքերով, յուրաքանչյուրը 2 Վ լայնությամբ, օգտագործելով 10 3.3 օհմ ռեզիստոր և յուրաքանչյուր ռեզիստորի համար մոսֆետ:

Քայլ 3: Այսպես ստացվեց

Այսպես ստացվեց
Այսպես ստացվեց

Մեկը կարող է պնդել, որ մոսֆեթի վրա լարման կորուստը աննշան է, քանի որ մոսֆեթի դիմադրությունը շատ ցածր է, բայց ես մոսֆեթի ընտրությունը թողել եմ ընթերցողին, և այդպիսով դիմադրությունը կարող է հասնել նույնիսկ 1 օմ -ից, որտեղ այն սկսում է հարց Առաջին տարբերակում ճիշտ mosfet- ի ընտրությունը կհեռացնի ստորին կետերի չափման անհրաժեշտությունը, բայց 2 -րդ տարբերակում ես որոշեցի չափել լարումը միայն մեկ դիմադրության վրա, ինչը կարևորում է երկու չափիչ կետերի առկայությունը: Եվ ընտրության պատճառը Veroboard- ի էլեկտրագծերի տեղադրման պարզությունն էր: Սա ավելացնում է որոշակի ճշգրտության սխալ, քանի որ մեկ ռեզիստորի վրա չափված լարումը զգալիորեն փոքր է, քան բոլոր դիմադրիչների վրա չափելը: Բաղադրիչների ընտրության ժամանակ ես որոշեցի օգտագործել այն, ինչ կա՛մ արդեն ձեռքի տակ ունեի, կա՛մ այն, ինչ հեշտությամբ կարող էի ձեռք բերել: Սա հանգեցրեց հետևյալ BOM- ին.

  • Arduino Pro Mini 5V! ԿԱՐԵՎՈՐ! Ես օգտագործել եմ 5V տարբերակ և ամեն ինչ հիմնված է դրա վրա
  • 128x64 I2C OLED էկրան
  • 10 x 5W 3.3 Օմ դիմադրիչներ
  • 3 x 2n7000 մոսֆեթ
  • 10 x IRFZ34N միջատներ
  • 6 x 10 kOhm ռեզիստորներ
  • 2 x 5 kOhm ռեզիստորներ
  • 16V 680uF կոնդենսատոր
  • 1 հին պրոցեսորի երկրպագու

Սխեմաներում ես չեմ ավելացրել հետևյալը

  • քաշման դիմադրիչներ I2C գծերի վրա, որոնք ես նկատեցի, որ ցուցադրումն ավելի կայուն դարձրեց
  • էլեկտրահաղորդման գծեր
  • կոնդենսատոր 5 Վ գծում, որը նաև կայունացրեց էկրանը

Փորձարկելիս ես նկատեցի, որ բեռի դիմադրիչները բավականին տաքանալու էին, հատկապես, եթե դրանք բոլորը օգտագործված լինեին: Theերմաստիճանը բարձրացել է մինչև 100 աստիճան elsելսիուս (որը կազմում է 212 աստիճան Ֆարենհայտ), և եթե ամբողջ համակարգը պետք է փակվի տուփի մեջ, պետք է ինչ -որ հովացում ապահովվի: Իմ օգտագործած ռեզիստորները 3.3 օմ / 5 Վտ են, իսկ առավելագույն հոսանքը պետք է առաջանա մոտ 2 Վ մեկ դիմադրության դիմաց `տալով 2 Վ / 3.3 = 0.61 Ա, ինչը հանգեցնում է 1.21 Վտ -ի: Ես ավարտեցի տուփի մեջ ավելացնելով մի պարզ երկրպագու: Հիմնականում այն պատճառով, որ ես պատահաբար մոտս մի պրոցեսորի հին երկրպագու ունեի:

Սխեմատիկ ֆունկցիոնալություն

Այն բավականին ուղիղ է և ինքնին բացատրող: Փորձարկվող մարտկոցը միացված է դիմադրիչների և գրունտի շարքին: Լարման չափման կետերն են մարտկոցի միացումը և առաջին դիմադրությունը: Լարման բաժանարարներն այնուհետև օգտագործվում են լարումը մի մակարդակի իջեցնելու համար, որն ավելի լավ է հարմարեցնում Arduino- ին: Մեկ թվային ելք օգտագործվում է բաժանարարների կամ 10 Վ կամ 20 Վ տիրույթ ընտրելու համար: Բեռի մեջ գտնվող յուրաքանչյուր դիմադրություն կարող է անհատապես հիմնավորվել mosfets- ի միջոցով, որոնք ուղղակիորեն առաջնորդվում են Arduino- ով: Եվ վերջապես, էկրանը միացված է Arduino I2C կապումներին: Շատ չեմ կարող ասել սխեմատիկ

Քայլ 4: Կոդ

Օրենսգիրքը
Օրենսգիրքը

Վերևում երևում է կոդի կոպիտ ֆունկցիոնալությունը: Եկեք ավելի սերտ նայենք ծածկագրին (arduino ino ֆայլերը կցված են): Կան մի շարք գործառույթներ, այնուհետև հիմնական հանգույց:

Հիմնական հանգույց

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

Արդյունքների ցուցադրման կարգը

ShowResults գործառույթը պարզապես սահմանում է էկրանին ցուցադրվող տողերը, ինչպես նաև սերիական ինտերֆեյսի ուղարկվող տողը:

Լարման չափման կարգը

Գործառույթի սկզբում չափվում է Արդուինոյի Vcc- ն: Անհրաժեշտ է, որպեսզի կարողանաք հաշվարկել անալոգային մուտքերի միջոցով չափվող լարումները: Այնուհետև մարտկոցի լարումը չափվում է 20 Վ տիրույթի միջոցով, որպեսզի կարողանաք որոշել, թե որ տիրույթն օգտագործել: Այնուհետեւ հաշվարկվում է ինչպես մարտկոցի լարման, այնպես էլ դիմադրության լարումը: Մարտկոցի լարման չափումներն օգտվում են DividerInput դասից, որն ունի ընթերցման և լարման մեթոդներ ՝ տվյալ անալոգային մուտքի հում ընթերցումը կամ հաշվարկված լարումը տալու համար:

Օգտագործված արժեքների ընտրության կարգը

SelectUsedValues ֆունկցիայի մեջ ենթադրվում է բջիջների քանակը, և մարտկոցի բարձր և ցածր սահմանները կիրառվում են լիցքաթափման ընթացակարգով: Նաև չափումը նշվում է որպես սկսված: Այս ընթացակարգի սահմանները սահմանվում են գլոբալ փոփոխականների սկզբում: Չնայած դրանք կարող են լինել մշտական, և դրանք կարող են սահմանվել նաև ընթացակարգի ներսում, քանի որ դրանք գլոբալ չեն օգտագործվում: Բայց, բարև, միշտ էլ բարելավելու բան կա:)

Մարտկոցի հզորությունը հաշվարկելու կարգը

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

Օգտագործման համար դիմադրողների թիվը գտնելու կարգը

SelectNumOfResistors գործառույթում կատարվում է լարման պարզ նախնական արժեքների համեմատություն և արդյունքում որոշվում է օգտագործվող դիմադրողների թիվը: Համապատասխան mosfet- ը բացվում է ՝ որոշ դիմադրություններ բաց թողնելու համար: Լարման անցքերն ընտրված են այնպես, որ առավելագույն հոսանքը լիցքաթափման ընթացքում ցանկացած պահի մնա մի փոքր ավելի, քան 600 մԱ (2 Վ/3.3 Օմ = 606 մԱ): Ֆունկցիան վերադարձնում է օգտագործվող դիմադրողների թիվը: Քանի որ օդափոխիչը դուրս է մղվում նույն գծից, ինչպես առաջին mosfet- ը, այն միշտ պետք է բացվի, երբ լիցքաթափումը շարունակվում է:

Քայլ 5: Չափիչի չափաբերում

Չափիչի չափաբերում
Չափիչի չափաբերում

Հաշվիչը ճշգրտելու համար ես ստեղծեցի մեկ այլ ծրագիր (կցված է): Այն օգտագործում է նույն սարքավորումները: Սկզբում ուղղիչ բաժանարարի արժեքները բոլորը սահմանվում են 1000 -ի:

const int divCorrectB10V = 1000; // բաժանարարի ուղղման բազմապատկիչ 10V տիրույթում միջ int divCorrectR10V = 1000; // բաժանարարի ուղղման բազմապատկիչ 10V const int divCorrectB20V = 1000; // բաժանարարի ուղղման բազմապատկիչ 20V տիրույթում միջ int divCorrectR20V = 1000; // բաժանարարի ուղղման բազմապատկիչ 20V տիրույթում

readVcc () ֆունկցիայի արդյունքում ստացված Vcc լարումը թուլանում է վերադարձից առաջ գործառույթի վերջին տողում արժեքը սահմանելիս: Սովորաբար ինտերնետում կարող եք գտնել 1126400L արժեք, որը կօգտագործվի հաշվարկման մեջ: Ես նկատեցի, որ արդյունքը ճիշտ չէ:

Կալիբրացման գործընթաց

  1. Բեռնեք չափման ծրագիրը Arduino- ում:
  2. Դուք կարող եք տեսնել Arduino- ում (և սերիայի ելքի մեջ, և եթե օդափոխիչը պտտվում է), եթե բեռը միացված է: Եթե այն շրջվել է, միացրեք մարտկոցի տեսակի ընտրության անջատիչը:
  3. Կարգավորեք արժեքը readuVCC () - ում `ճիշտ արդյունք ունենալու համար: Վերցրեք գործառույթի տված արժեքը (որը գտնվում է միլիվոլտներում) և դրա հետ բաժանեք երկար արժեքը: Դուք կստանաք ներքին տեղեկանքի հում արժեքը: Այժմ չափեք մատակարարման իրական լարումը միլիվոլտներում բազմիմետրով և բազմապատկեք այն նախկինում հաշվարկված արժեքով և կստանաք նոր ուղղված երկարություն: Իմ դեպքում գործառույթը վերադարձավ 5288 մՎ, երբ իրական Vcc- ն 5.14 Վ էր: Հաշվարկելով 1126400/5288*5140 = 1094874, որը ես վերջնականապես ավարտեցի դատավարությամբ: Տեղադրեք նոր արժեքը ծածկագրում և նորից վերբեռնեք Arduino- ում:
  4. Անալոգային մուտքային ռեզիստորի բաժանարարի ուղղման արժեքների ճշգրտումը տեղի է ունենում կարգավորելի էներգիայի աղբյուրի միջոցով, որն օգտագործվում է հաշվիչի մուտքը սնուցելու համար: Ամենապարզն այն է, որ 1V- ից մինչև 20V լարումներ օգտագործվեն 1V քայլերով և արդյունքները գրանցեն աղյուսակում: Աղյուսակում ընդունվում է միջինը: Ուղղված արժեքները հաշվարկվում են հետևյալ բանաձևով ՝ «raw_value**range*Vcc/Vin», որտեղ raw_value արժեքը 10VdivB, 10VdivR, 20VdivB կամ 20VdivR արժեքներն են ՝ կախված այն բանից, թե որ ուղղումը պետք է հաշվարկվի:

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

Սրա նման

const int divCorrectB10V = 998; // բաժանարարի ուղղման բաժանարար միջակայքում 10V const int divCorrectionR10V = 1022; // բաժանարարի ուղղման բաժանարար միջակայքում 10V const int divCorrectB20V = 1044; // բաժանարարի ուղղման բաժանարար միջակայքում 20V const int divCorrectionR20V = 1045; // բաժանարարի ուղղման բաժանարար 20V տիրույթում

Ռեզիստորի արժեքը ճշգրտելը կարող է կատարվել մուտքի որոշակի լարման միջոցով (այսինքն ՝ 2 Վ), միացնել չղջիկի տիպի անջատիչը (բեռնվածություն ստանալու համար) և չափել ընթացիկ հոսանքը և առաջին ռեզիստորի լարումը և լարումը հոսանքի հետ բաժանելով:. Ինձ համար 2 Վ -ն տվեց 607 մԱ, ինչը տալիս է 2/0.607 = 3.2948 օմ, որը ես կլորացրեցի մինչև 3.295 օմ: Այսպիսով, այժմ չափագրումն ավարտված է:

Քայլ 6: Վերջին նշումը:

Այստեղ մի կարևոր նշում. Պարտադիր է բոլոր կապերը ունենալ գերազանց վիճակում ՝ մարտկոցից մինչև ռեզիստորներ: Ես ունեի մեկ վատ միացում և հետաքրքրվում էի, թե ինչու ես 0.3V պակաս վոլտ ստացա դիմադրության ցանցում, քան մարտկոցը: Սա նշանակում էր, որ չափման գործընթացը գրեթե անմիջապես ավարտվեց 1.2 Վ NiCd բջիջներով, քանի որ 0.95 Վ ստորին սահմանը արագ հասավ:

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