Мазмұны:

Батарея сыйымдылығының тағы бір сынағы: 6 қадам
Батарея сыйымдылығының тағы бір сынағы: 6 қадам

Бейне: Батарея сыйымдылығының тағы бір сынағы: 6 қадам

Бейне: Батарея сыйымдылығының тағы бір сынағы: 6 қадам
Бейне: #БережокV1 Адаптивное ЗУ. Напряжение окончания выравнивающего ( восстанавливающего ) заряда . 2024, Шілде
Anonim
Батарея сыйымдылығының тағы бір сынағы
Батарея сыйымдылығының тағы бір сынағы
Батарея сыйымдылығының тағы бір сынағы
Батарея сыйымдылығының тағы бір сынағы

Неліктен тағы бір қуаттылықты тексеруші

Мен тестілеудің әр түрлі нұсқауларын оқыдым, бірақ олардың ешқайсысы менің қажеттіліктеріме сәйкес келмейтін сияқты. Мен тек NiCd/NiMH немесе Lion жасушаларын тексеріп қана қоймай сынап көргім келді. Мен электр құралының аккумуляторын алдымен бөлшектемей сынап көргім келді. Сондықтан мен мәселені егжей -тегжейлі қарастырып, өзімнің дизайнымды жасауды шештім. Бір нәрсе екіншісіне әкеледі, мен ақырында нұсқаулық жазуды шештім. Мен сондай -ақ тестерді қалай құруға болатыны туралы барлық мәліметтерді айтпауға шешім қабылдадым, өйткені әркім резистордың қандай мөлшерін қолдану керектігін шеше алады, егер ПХД қажет болса немесе Veroboard жеткілікті болса, сонымен қатар нұсқаулықтарда бір тонна бар. бүркітті орнатыңыз немесе ПХД жасау әдісі. Басқаша айтқанда, мен схемаға және кодқа және тестерді калибрлеуге назар аударамын.

1 -қадам: Тарих - 1 нұсқа

Тарих - 1 нұсқа
Тарих - 1 нұсқа

Жоғарыда - төменде көрсетілген 10В -тан жоғары кіріс қолдауының бірінші нұсқасы (R12 & R17 & Q11 & Q12).

Бірінші нұсқа Deba168 нұсқаулығынан азды -көпті алынды (өкінішке орай, мен сілтеме беру үшін оның нұсқауын таба алмаймын). Тек аздаған өзгерістер енгізілді. Бұл нұсқада менде мосфет басқаратын 10 Ом жүктеме резисторы болды. Бұл кейбір қиындықтарды тудырды. Бір NiCd немесе NiMH ұяшығын тестілеу кезінде қажет уақыт, егер күн болмаса, сағатпен оңай өлшенеді. 1500 мАч батарея 12 сағатқа созылды (ток 120 мА болды). Екінші жағынан, бірінші нұсқа тек 10 В -тан төмен батареяларды тексере алады. Толық зарядталған 9,6 В аккумулятор шынымен 11,2 В дейін болуы мүмкін, оны 10 В шектеуіне байланысты тексеру мүмкін болмады. Бірдеңе істеу керек болды. Біріншіден, мен кернеу бөлгіштерінің 10В -тан жоғары кернеуіне мүмкіндік беру үшін бірнеше москит пен резисторды қостым. Бірақ бұл екінші жағынан басқа проблеманы тудырды. Толық жүктелген 14,4 В батареяның қуаты 16,8 В дейін болуы мүмкін, бұл 10 Ом резисторы 1,68 А токты және, әрине, 30 Вт -қа жуық жүктеме резисторынан қуаттың таралуын білдіреді. Осылайша, төмен кернеу кезінде тестілеудің ұзақ уақыты және жоғары кернеудің тым жоғары тогы. Әрине, бұл дұрыс шешім болмады және оны одан әрі дамыту қажет болды.

2 -қадам: 2 -нұсқа

Мен батарея кернеуіне қарамастан ток белгілі бір шектерде қалатын шешімді алғым келді. Бір шешім PWM мен бір ғана резисторды қолдану болар еді, бірақ мен пульсирленген токсыз шешімді немесе мосфет жылуын тарату қажеттілігін таңдадым. Осылайша, мен әрқайсысының ені 2В болатын 10 кернеу слоттары бар 10 3.3 Ом резисторы мен әр резисторға мосфет қолданатын шешім жасадым.

3 -қадам: Осылай болды

Осылай болып шықты
Осылай болып шықты

Электр тізбегіндегі түсініктемелер Біреуі мосфет кернеуінің шамалы екендігіне күмән келтіруі мүмкін, себебі мосфеттің кедергісі өте төмен, бірақ мен оқырмандарға мосфет таңдауын қалдырдым, осылайша қарсылық 1 Ом -нан асып кетуі мүмкін. мәселе Бір нұсқада дұрыс мосфет таңдау төменгі нүктені өлшеу қажеттілігін жояды, бірақ 2 нұсқада мен кернеуді бір резистордан өлшеуді шештім, содан кейін екі өлшеу нүктесінің болуы маңызды. Таңдаудың себебі Veroboard сымдарын қосудың қарапайымдылығы болды. Бұл біршама қателік қосады, өйткені бір резистордағы өлшенетін кернеу барлық резисторларды өлшеуге қарағанда әлдеқайда аз. Компоненттерді таңдауда менде бұрыннан бар не оңай болатын нәрсені қолдануға шешім қабылдадым. Бұл келесі банкке әкелді:

  • Arduino Pro Mini 5V! МАҢЫЗДЫ! Мен 5V нұсқасын қолдандым және бәрі соған негізделген
  • 128x64 I2C OLED дисплейі
  • 10 x 5W 3.3 Ом резисторлары
  • 3 x 2n7000 мифтер
  • 10 x IRFZ34N қондырғышы
  • 6 x 10 кОм резисторлар
  • 2 x 5 кОм резисторлар
  • 16V 680uF конденсатор
  • 1 ескі процессорлық желдеткіш

Мен төмендегілерді схемаға қоспадым

  • I2C желілеріндегі тартқыш резисторлар, мен байқадым, олар дисплейді тұрақты етеді
  • электр желілері
  • 5В желісіндегі конденсатор дисплейді тұрақтандырды

Тестілеу кезінде мен жүктеме резисторлары өте қызып кететінін байқадым, әсіресе егер олар қолданыста болса. Температура 100 градус Цельсийге дейін көтерілді (бұл Фаренгейт бойынша 212 градустан жоғары) және егер бүкіл жүйе қорапта жабылатын болса, онда қандай да бір салқындату қамтамасыз етілуі керек. Мен қолданған резисторлар 3,3 Ом / 5 Вт және максималды ток 2 В / 3,3 = 0,61А беретін резистор үшін шамамен 2 В болуы керек, бұл 1,21 Вт құрайды. Мен қорапқа қарапайым желдеткішті қостым. Көбінесе менде ескі процессордың желдеткіші болды.

Схемалық функционалдылық

Бұл өте қарапайым және өздігінен түсіндіріледі. Тексерілетін батарея резисторлар мен жерге қосылған. Кернеуді өлшеу нүктелері - аккумулятордың қосылуы және бірінші резистор. Кернеуді бөлгіштер кернеуді Arduino -ға сәйкес келетін деңгейге дейін төмендету үшін қолданылады. Бөлгіштердің 10В немесе 20В диапазонын таңдау үшін бір цифрлық шығыс қолданылады. Жүктемедегі әр резисторды тікелей Arduino басқаратын москеттер көмегімен жерге тұйықтауға болады. Ақырында, дисплей Arduino I2C түйреуіштеріне қосылған. Схемалық J туралы айту көп емес

4 -қадам: Кодекс

Кодекс
Кодекс

Жоғарыда кодтың өрескел функционалдығын көруге болады. Содан кейін кодты мұқият қарастырайық (arduino ino файлдары қоса беріледі). Бірнеше функциялар бар, содан кейін негізгі цикл.

Негізгі цикл

Өлшеу дайын болған кезде нәтижелер көрсетіледі және орындау сонда аяқталады. Егер өлшеу әлі аяқталмаса, алдымен батареяның қай түрі таңдалғанын, содан кейін кіріс кернеуін тексереді. Егер кернеу 0,1 В -тан жоғары болса, кем дегенде қандай да бір батарея қосылған болуы керек. Бұл жағдайда тестілеуді шешу үшін аккумуляторда қанша ұяшық бар екенін анықтау үшін кіші бағдарлама шақырылады. Ұяшықтар саны жақсы немесе аз ақпарат болып табылады, бірақ бұл нұсқада ол тек сериялық интерфейс арқылы беріледі. Егер бәрі жақсы болса, разрядтау процесі басталады және негізгі циклдің әр айналымында батарея сыйымдылығы есептеледі. Негізгі циклдің соңында дисплей белгілі мәндермен толтырылады.

Нәтижелерді көрсету тәртібі

ShowResults функциясы дисплейде көрсетілетін жолдарды, сондай -ақ сериялық интерфейске жіберілетін жолды орнатады.

Кернеуді өлшеу тәртібі

Функцияның басында Arduino Vcc өлшенеді. Аналогты кірістер көмегімен өлшенетін кернеулерді есептей білу қажет. Содан кейін батарея кернеуі 20 В диапазонының көмегімен өлшенеді, ол қай диапазонды қолдану керектігін шешеді. Содан кейін батарея кернеуі де, резистор кернеуі де есептеледі. Батарея кернеуін өлшеу оқылатын және кернеудің аналогтық кірісінің есептелген кернеуін беретін оқу әдістері мен кернеуі бар DividerInput класының артықшылығын пайдаланады.

Қолданылатын мәндерді таңдау процедурасы

SelectUsedValues функциясында ұяшықтар саны есептеледі және батареяның жоғары және төменгі шектері зарядсыздандыру процедурасымен пайдаланылады. Сонымен қатар өлшеу басталды деп белгіленеді, бұл процедураның шектері жаһандық айнымалылардың басында орнатылады. Олар тұрақты бола алатынына қарамастан және оларды бүкіл әлемде қолданылмайтындықтан, процедураның ішінде анықтауға болады. Бірақ әрқашан жақсартатын нәрсе бар:)

Батарея сыйымдылығын есептеу тәртібі

Зарядсыздандыру функциясы аккумулятордың сыйымдылығын есептейді. Ол параметрлер ретінде тексерілетін батареяның кернеулерінің төменгі және жоғары шектерін алады. Бұл нұсқада жоғары мән қолданылмайды, бірақ төмен мән тестілеуді қашан тоқтату керектігін шешу үшін қолданылады. Функцияның басында қолданылатын резисторлардың саны осы мақсат үшін құрылған функция көмегімен анықталады. Функция резистордың санын қайтарады және сонымен бірге разрядты бастайды және есептегішті қалпына келтіреді. Содан кейін кернеулер өлшенеді және токты есептеу үшін белгілі резистор мәнімен бірге қолданылады. Енді біз кернеу мен токты білеміз және оның соңғы өлшеу кезінен бергі уақытты білеміз, біз сыйымдылықты есептей аламыз. Босату процесінің соңында батареяның кернеуі төменгі шектіге теңестіріледі, ал егер ол шектен асып кетсе, разряд фазасы тоқтайды, мосфеттер жабылады және өлшеу дайын деп белгіленеді.

Қолданылатын резисторлардың санын табу тәртібі

SelectNumOfResistors функциясында кернеуді алдын ала орнатылған мәндерге қарапайым салыстыру жүргізіледі және нәтижесінде резисторлардың саны шешіледі. Тиісті мосфет кейбір резисторларды өткізіп жіберу үшін ашылады. Кернеу слоттары максималды ток разряд кезінде кез келген уақытта 600мА (2V/3.3Ohm = 606mA) шамасында қалатын етіп таңдалады. Функция пайдаланылған резисторлардың санын қайтарады. Желдеткіш бірінші мосфет сияқты бір желіден шығарылады, ол ағызу кезінде әрқашан ашылуы керек.

5 -қадам: Есептегішті калибрлеу

Есептегішті калибрлеу
Есептегішті калибрлеу

Есептегішті калибрлеу үшін мен басқа қосымшаны құрдым (қоса берілген). Ол бірдей жабдықты қолданады. Бастапқыда түзету бөлгіш мәндерінің барлығы 1000 -ға орнатылады.

const int divCorrectionB10V = 1000; // 10V const int divCorrectionR10V = 1000 диапазонындағы бөлгіш түзету мультипликаторы; // 10V const int divCorrectionB20V = 1000 диапазонындағы бөлгіш түзету мультипликаторы; // 20V const int divCorrectionR20V = 1000 диапазонындағы бөлгіш түзету мультипликаторы; // 20В диапазонындағы бөлгішті түзету мультипликаторы

readVcc () функциясында пайда болатын Vcc кернеуі қайтарудың алдында функцияның соңғы жолындағы мәнді орнатуға байланысты. Әдетте интернетте есептеуге қолданылатын 1126400L мәнін табуға болады. Мен нәтиженің дұрыс емес екенін байқадым.

Калибрлеу процесі:

  1. Өлшеу қосымшасын Arduino -ға жүктеңіз.
  2. Егер жүктеме қосулы болса, сіз Arduino -да (және сериялық шығуда және желдеткіш айналғанда) көре аласыз. Егер бұл болса, батарея түрін таңдау қосқышын бұраңыз.
  3. Дұрыс нәтиже алу үшін readuVCC () мәнін реттеңіз. Функция беретін мәнді алыңыз (ол милливольтпен) және онымен ұзақ мәнді бөліңіз. Сіз ішкі анықтаманың бастапқы мәнін аласыз. Енді нақты кернеуді милливольтпен мультиметрмен өлшеп, оны бұрын есептелген мәнге көбейтіңіз, сонда сіз жаңа түзетілген ұзақ мәнді аласыз. Менің жағдайда, нақты Vcc 5,14 В болғанда, функция 5288 мВ қайтарады. 1126400/5288*5140 = 1094874 есептеймін, мен оны сынақпен аяқтадым. Жаңа мәнді кодқа енгізіп, оны қайтадан Arduino -ға жүктеңіз.
  4. Аналогты кіріс резисторының бөлгішінің түзету мәндері есептегіштің кірісін беру үшін пайдаланылатын реттелетін қуат көзінің көмегімен жүзеге асады. Ең қарапайым - 1В -тан 20В -қа дейінгі кернеулерді 1В қадамдарымен қолдану және нәтижелерді электрондық кестеге жазу. Электрондық кестеде орташа мән алынады. Түзетілген мәндер келесі формуламен есептеледі: «raw_value*диапазоны*Vcc/Vin», онда raw_value - 10VdivB, 10VdivR, 20VdivB немесе 20VdivR мәні, қандай түзетудің есептелетініне байланысты.

Электрондық кесте мені қалай іздегенін қараңыз. Орташа мәндер тек диапазонда болатын мәндер бойынша есептеледі және сол мәндер нақты есептегіш қосымшасында орнатылады.

Бұл сияқты

const int divCorrectionB10V = 998; // 10V const int divCorrectionR10V = 1022 диапазонындағы бөлгіш түзету бөлгіш; // 10V const int divCorrectionB20V = 1044 диапазонындағы бөлгіш түзету бөлгіш; // 20V диапазонындағы бөлгіш түзету бөлгіш const int divCorrectionR20V = 1045; // 20В диапазонындағы бөлгішті түзететін бөлгіш

Резистордың мәнін реттеу кернеуді (яғни 2В) біршама кернеуді қамтамасыз ету арқылы, соқтығысу түрінің қосқышын ауыстыру (жүктемені қосу үшін) және бірінші резистордағы кернеуді өлшеу және кернеуді токқа бөлу арқылы жүзеге асады.. Мен үшін 2В 607мА берді, ол 2/0.607 = 3.2948 Ом береді, мен оны 3.295 Омға дейін дөңгелектедім. Енді калибрлеу аяқталды.

6 -қадам: Соңғы ескерту

Мұнда бір маңызды ескерту. Батареядан резисторға дейінгі барлық қосылымдарды бастапқы күйде ұстау қажет. Менде бір нашар байланыс болды және неге мен батареяға қарағанда резисторлық торда 0,3 В аз вольт алдым деп ойладым. Бұл өлшеу процесі дереу 1,2V NiCd ұяшықтарымен аяқталды дегенді білдіреді, себебі 0,95В төменгі шегіне тез жетті.

Ұсынылған: