Բովանդակություն:
- Քայլ 1. Պատմություն - տարբերակ 1
- Քայլ 2: Տարբերակ 2
- Քայլ 3: Այսպես ստացվեց
- Քայլ 4: Կոդ
- Քայլ 5: Չափիչի չափաբերում
- Քայլ 6: Վերջին նշումը:
Video: Մարտկոցի հզորության ևս մեկ փորձարկիչ ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ինչու ևս մեկ հզորության փորձարկիչ
Ես կարդացել եմ փորձարկողի կառուցման բազմաթիվ տարբեր հրահանգներ, բայց դրանցից ոչ մեկը կարծես չի համապատասխանում իմ կարիքներին: Ես ուզում էի կարողանալ փորձարկել նաև ավելին, քան պարզապես NiCd/NiMH կամ Lion բջիջները: Ես ուզում էի, որ կարողանայի էլեկտրական գործիքի մարտկոցը փորձարկել ՝ առանց այն առաջինը միացնելու: Այսպիսով, ես որոշեցի ավելի մոտիկից ուսումնասիրել հարցը և նախագծել իմ սեփականը: Մի բան տանում է մյուսին, և ես վերջապես որոշեցի ինքս գրել ուսանելի: Ես նաև որոշեցի չանդրադառնալ այն բոլոր մանրամասներին, թե ինչպես կարելի է իրականում կառուցել փորձարկիչը, քանի որ յուրաքանչյուրը կարող է որոշել որոշ ընտրություններ, ինչպիսիք են ՝ ինչ չափի դիմադրություն օգտագործել, կամ արդյոք PCB- ն անհրաժեշտ է, թե՞ Veroboard- ը բավարար է, և կա նաև մի տոննա հրահանգների վրա, թե ինչպես դա անել: տեղադրել արծիվ կամ ինչպես պատրաստել PCB: Այլ կերպ ասած, ես կկենտրոնանամ սխեմաների և ծածկագրի վրա, և թե ինչպես պետք է չափագրել փորձարկողին:
Քայլ 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 արժեք, որը կօգտագործվի հաշվարկման մեջ: Ես նկատեցի, որ արդյունքը ճիշտ չէ:
Կալիբրացման գործընթաց
- Բեռնեք չափման ծրագիրը Arduino- ում:
- Դուք կարող եք տեսնել Arduino- ում (և սերիայի ելքի մեջ, և եթե օդափոխիչը պտտվում է), եթե բեռը միացված է: Եթե այն շրջվել է, միացրեք մարտկոցի տեսակի ընտրության անջատիչը:
- Կարգավորեք արժեքը readuVCC () - ում `ճիշտ արդյունք ունենալու համար: Վերցրեք գործառույթի տված արժեքը (որը գտնվում է միլիվոլտներում) և դրա հետ բաժանեք երկար արժեքը: Դուք կստանաք ներքին տեղեկանքի հում արժեքը: Այժմ չափեք մատակարարման իրական լարումը միլիվոլտներում բազմիմետրով և բազմապատկեք այն նախկինում հաշվարկված արժեքով և կստանաք նոր ուղղված երկարություն: Իմ դեպքում գործառույթը վերադարձավ 5288 մՎ, երբ իրական Vcc- ն 5.14 Վ էր: Հաշվարկելով 1126400/5288*5140 = 1094874, որը ես վերջնականապես ավարտեցի դատավարությամբ: Տեղադրեք նոր արժեքը ծածկագրում և նորից վերբեռնեք Arduino- ում:
- Անալոգային մուտքային ռեզիստորի բաժանարարի ուղղման արժեքների ճշգրտումը տեղի է ունենում կարգավորելի էներգիայի աղբյուրի միջոցով, որն օգտագործվում է հաշվիչի մուտքը սնուցելու համար: Ամենապարզն այն է, որ 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 Վ ստորին սահմանը արագ հասավ:
Խորհուրդ ենք տալիս:
DIY բջջային հեռախոսի մարտկոցի հզորության բանկ ՝ 5 քայլ
DIY Բջջային հեռախոսի մարտկոցի հոսանքի բանկ
Մարտկոցի հզորության փորձարկիչ Arduino- ի միջոցով [Lithium-NiMH-NiCd]. 15 քայլ (նկարներով)
Մարտկոցի հզորության փորձարկիչ Arduino- ի միջոցով [Lithium-NiMH-NiCd] ցանկացած տեսակի մարտկոց (5 Վ -ից ցածր) Հեշտ է զոդել, կառուցել և օգտագործել
DIY Arduino մարտկոցի հզորության փորձարկիչ - V2.0: 11 քայլ (նկարներով)
DIY Arduino մարտկոցի հզորության ստուգիչ - V2.0. Մեր օրերում ամենուր կեղծ լիթիումի և NiMH մարտկոցներ են, որոնք վաճառվում են գովազդով `իրենց իսկական հզորությունից ավելի բարձր հզորությամբ: Այսպիսով, իսկապես դժվար է տարբերակել իրական և կեղծ մարտկոցը: Նմանապես, դժվար է իմանալ
DIY Arduino մարտկոցի հզորության փորձարկիչ - V1.0: 12 քայլ (նկարներով)
DIY Arduino մարտկոցի հզորության փորձարկիչ - V1.0. [Նվագարկեք տեսանյութը] Ես փրկել եմ այնքան հին մարտկոցներ (18650), որպեսզի դրանք նորից օգտագործեմ իմ արևային նախագծերում: Շատ դժվար է որոշել մարտկոցի տուփի լավ բջիջները: Ավելի վաղ իմ Power Bank Instructable- ից մեկում ես պատմել էի, թե ինչպես ճանաչել
Li-Ion մարտկոցի հզորության փորձիչ (լիթիումի էներգիայի փորձարկիչ) ՝ 5 քայլ
Li-Ion մարտկոցի հզորության փորձիչ (լիթիումի էներգիայի փորձիչ). =========== ARԳՈՇԱՈՄ & ՀՐԱՊԱՐԱԿՈ =ԹՅՈՆ ========= Li-Ion մարտկոցները շատ վտանգավոր են, եթե դրանք ճիշտ չօգտագործվեն: ՉԼԻՆԵԼ ԼՐԱՈ /Մ / ՎԱՌԵԼ / ԲԱ Li Լի-իոնային չղջիկներ Այն, ինչ անում եք այս տեղեկատվության հետ, ձեր սեփական ռիսկն է ====== ========================================