Измеритель емкости для автомобильных аккумуляторов на микроконтроллере. Зарядное устройство-тестер аккумуляторов на Atmega8

Измеритель емкости для автомобильных аккумуляторов на микроконтроллере. Зарядное устройство-тестер аккумуляторов на Atmega8

03.08.2023

Сайт находится в тестовом режиме. Приносим извинения за сбои и неточности.
Просим Вас писать нам о неточностях и проблемах через форму обратной связи.

Измеритель емкости аккумуляторов на микроконтроллере.

Разработанное автором устройство предназначено для измерения в автоматическом режиме емкости большинства типов аккумуляторов ― от малогабаритных до автомобильных батарей. Принцип измерения основан на разрядке аккумулятора стабильным током с автоматическим подсчетом времени разрядки и дальнейшим перемножением этих величин, результат получается в привычной размерности — ампер-часах. Основа устройства — микроконтроллер (МК) Atmega8, работающий по программе, коды которой приведены в статье. Кроме МК измеритель содержит три микросхемы (К155ИД3, КР142ЕН5В, LM358N) и транзистор IRL2505. Для индикации результатов применены два светодиодных цифровых индикатора: трехразрядный TOT3361 (он показывает значение тока разрядки в формате X.XX) и девятиразрядный E90361-L-F (показывает значение емкости в ампер-часах в формате XX. XXX и напряжение, до которого можно разряжать аккумулятор, в пределах от 1 до 25,5 В). Предусмотрен контроль текущего напряжения аккумулятора. Даны коды программы МК и чертеж печатной платы. Программа МК будет также размещена на нашем FTP-сервере по адресу < ftp:// ftp . radio . ru / pub /2009/03/ izm . zip >.

Этот измеритель емкости может измерять емкость конденсаторов с разрешением 1 пФ в нижнем конце диамазона. Максимальная измеряемая емкость - 10000 мкФ. Реальная точность не известна, но линейная ошибка лежит в пределах максимум 0.5 % , и обычно меньше 0.1% (получено измерением параллельно подключенных нескольких конденсаторов). Наибольшие затруднения возникают при измерении электролитических конденсаторов большой емкости.

Измеритель емкости работает в режиме автоматического выбора пределов измерения, либо в нижнем или верхнемдиапазоне емкостей принудительно. Прибор имеет два различных предела измерения, реализуя два измерения для одного и того же конденсатора. Это дает возможность проверить правдивость измерения и узнать, действительно ли измеряемая деталь является конденсатором. При этом методе электролиты проявляют свою характерную нелинейность, давая разные значения при разных пределах измерения.

Измеритель емкости имеет систему меню, которая в том числе позволяет откалибровать нулевое значение и емкость в 1 мкФ. Калибровка сохраняется в EEPROM.

Для проекта был выбран один из самых маленьких чипов - Атмега8. Схема питается от 9-вольтовой батарейки через линейный регулятор 7805.

Прибор может работать в трех режимах: измерение в нижнем диапазоне, в верхнем диапазоне, и в режиме разрядки. Эти режимы определяются состоянием выводов PD5 и PD6 контроллера. Во время разрядки PD6 имеет лог. 0 и кондерсатор разряжается через резистор R7 (220 Ом). В верхнем диапазоне измерений PD5 имеет лог. 1, заряжая конденсатор через R8 (1.8K) и PD6 находится в Z-состоянии чтобы позволить аналоговому компаратору сравнивать напряжение. В нижнем диапазоне измерений PD5 также находится в Z-состоянии, и конденсатор заряжается только через R6 (1.8MОм).

В качестве индикатора может использоваться любой дисплей на контроллере HD44780 размером 16x2 символов. Разводка коннектора дисплея показана на этом рисунке:

Устройство собрано на макетной плате и размещено в простом прямоугольном пластиковом корпусе. В крышке корпуса вырезаны отверстия под индикатор, кнопку и светодиод, которые закреплены термоклеем:

Программа измерителя емкости

В устройстве можно использовать контроллера atmega8 и atmega48/88/168 семейства. При замене контроллера в программе нужно изменить строку, отвечающую за конфигурацию таймера конкретного контроллера.

Модульный вариант наглядного и точного измерителя Ампер-часов аккумуляторов, собранный с минимальными затратами из компьютерного мусора.
Это мой отклик на статью .

Небольшая прелюдия…
Под моим покровительством находится парк из 70 компов, разных годов выпуска и состояния. Естественно на подавляющем количестве имеются источники бесперебойного питания (по тексту – ИБП). Организация бюджетная, денег конечно не дают, типа - делай, что хочешь, но должно всё работать. После коротких тестов с нагрузкой в виде лампочки на 150 Ватт выявил что 70% ИБП не держат нагрузку больше 1 минуты, ИБП фирмы АРС грешат контактами реле переключения (он переходит на АКБ, гудит-пищит, а на выходе полный ноль). Конечно никто мне не давал все ИБП проверить разом. Выход оказался прост: раз в пол года – год забирал компы на чистку, смазку, заодно и ИБП на тест и осмотр потрохов.

Конечно ИБП разных марок и мощностей (есть старичек на 600 Ватт 1992 года выпуска, АКБ родная сдохла этой осенью, до этого делал реанимацию 4 года назад). Если кто не в курсе в бытово-оффисных ИБП применяются АКБ разных типов, корпусов, напряжений и ёмкостей. Типовой представитель - это GP1272F2 (12 Вольт, 7 А/ч). Но попадаются и на 6В - 4,5 А/ч.

Цены на аккумуляторы часто превышаю половину цены нового ИБП. Да ещё в конторке (в которой подрабатываю) тоже скапливаются дохлые батарейки. Возник вопрос, а какова реальная ёмкость до и после поднятия из мусорной корзины, сколько минут работы можно ожидать от ИБП. И тут попалась на глаза статейка И. Нечаева в журнале "Радио" 2/2009 о подобном измерителе.
Конечно, некоторые моменты мне не понравились, такая вот я сволочь .
И так начнём-с…

Это оригинальная схема из статьи


ТТХ: ток разряда 50, 250, 500 ма, напряжение отсечки 2,5-27,5 Вольт.
Перечислю, что не понравилось: ток разряда максимальный всего 0,5а (да и ждать когда разрядится 7 ач не интересно), диапазон отсечки слишком широк и его легко сбить, на пуск через кнопку идёт весь ток, стабилизатор тока на полевике для светодиода это перебор, диод в управляющем выводе увеличивает требуемое падение на токовых резисторах до 1,8В и в случае пробоя 317 ходикам каюк.

Про ток разряда: у аккумов бывает что активная масса как бы запечатывается в намазке (не путать с сульфатацией), при этом подвижность электролита снижается и если разряжать его малым током, то он может отдать ёмкость полностью, а при установке в ИБП тест не пройдёт. Ну тогда надо разряжать его малым током и заряжать, т.е. лечить.
Модульность того, что у меня получилось, хороша тем что можно изготовить 2 и больше разрядных модуля (можно 1 и переключать токовые резисторы) разной мощности или даже типа и 2 отсекателя для 6-ти и 12-вольтовых батарей или 1 с переключателем.

Фотки моего измерителя:


Видим: блок отсекателя, токовая нагрузка, ходики китайские.
Повторюсь, работаю сисАДмином, починяю иногда материнские платы, поэтому имеется некоторая горка дохлого железа.
Начну в обратном порядке: ходики маленько модифицируются, что бы ходили при питании от 1,5 до 25 Вольт.
Схема модификации ходиков:


1117 дёрнул с дохлой материнской платы.
Резистор на 2 кОм это минимальная нагрузка стабилизатора.




соответственно схема:


Это на 2 ампера. Так как R1 оказался больше 0,75 ом пришлось добавить 2 сопротивления (это R3, два в одном на фото) что бы ток был 2 ампера. Если кто то не заметил, прокладок между микрой с транзистором на радиатор нету. Можно конечно использовать и другую схему, типа как в радио 3/2007 стр. 34, только добавьте опорное напряжение.
Токовая и термозащита в 317 (настоящей) есть.

Ну и самая страшная часть, это отсекатель.



Супер 3D-монтаж, зато всего 3см кубических, на печатке будет гораздо крупнее. Полевик, если на 6В АКБ, то очень желательно с логическим управленим.
Данная часть почти не отличается от первоначальной, кнопка пуск перенесена с сток-исток на коллектор-эммитер, переменник заменён на фиксированный делитель, китайский сверхяркий светодиод через резистор.

Возможные вариации: верхнее плечо (по исходной схеме это R4) заменить на сопротивление + переменник, ограничив таким образом диапазон настройки (требуется когда ток разряда соизмерим с ёмкостью АКБ); возможны иные идеи.

Для формул Uref=2.5v для обычных 431, а для 431L оно равно 1.25v.

Отсекатель с фиксированным напряжением:


Формула для расчета: Uотс= Uref(1+R4/R5)
или R5=(Uотс- Uref)/(Uref*R4)

Отсекатель с регулируемым напряжением:

Формула для расчета: Uотс = Uref(1+(R4+R6)/R5)
или R5 = (Uотс- Uref) / (Uref*(R4+R6))

Но тут надо считать от переменника, на нём при разряде 0,1с должно падать (Uдельта) 1,15v для 6в акб и 2,30v для 12v акб.
Поэтому формулы преобразуются и расчет несколько иной.
Uмин смотрим в таблице ниже.
R5 = Uref * R6 / Uдельта
R4 = ((Uмин -Uref) * R5) / Uмин

Устройство, с помощью которого можно проверить емкость литий-ионных пальчиковых аккумуляторов. Довольно часто батареи от ноутбуков приходят в негодность из-за того, что один или несколько аккумуляторов теряют свою емкость. В итоге приходится покупать новую батарею, когда можно обойтись малой кровью и заменить эти негодные аккумуляторы.

Что понадобится для устройства:
Arduino Uno или любой другой совместимый.
16Х2 ЖК-дисплей, в котором используется драйвер Hitachi HD44780
Твердотельное реле OPTO 22
Резистор 10 МОм на 0.25 Вт
Держатель для аккумуляторов 18650
Резистор 4 Ом 6Вт
Одна кнопка и блок питания от 6 до 10В на 600 мА


Теория и эксплуатация

Напряжение,на полностью заряженной, Li-Ion батарее при отсутствии нагрузки равно 4.2В. При подключении нагрузки, напряжение быстро снижается до 3.9В, и далее медленно снижается по мере работы батареи. Ячейка считается разряженной при падении напряжения на ней ниже 3В.

В данном устройстве аккумулятор подсоединяется к одному из аналоговых выводов Arduino. Измеряется напряжение на аккумуляторе без нагрузки и контроллер ожидает нажатие кнопки “Пуск”. Если напряжение на аккумуляторе выше 3В. , при нажатии кнопки начнется тест. Для этого через твердотельное реле к аккумулятору, подключается резистор 4Ом, который будет исполнять роль нагрузки. Напряжение считывается контроллером каждые пол секунды. Используя закон Ома можно узнать ток, отдаваемый в нагрузку. I=U/R, U-считывается аналоговым входом контроллера, R=4 Ом. Так как измерения проводятся каждые пол секунды, в каждом часе получается 7200 измерений. Автор просто умножает 1/7200 часа на значение тока, и складывает получившиеся числа, пока аккумулятор не разрядится ниже 3В. В этот момент реле переключается и на дисплей выводится результат измерений в мА\ч

Распиновка ЖК-дисплея

ПИН Назначение
1 GND
2 +5V
3 GND
4 Digital PIN 2
5 Digital PIN 3
6,7,8,9,10 No connected
11 Digital PIN 5
12 Digital PIN 6
13 Digital PIN 7
14 Digital PIN 8
15 +5V
16 GND



Автор не использовал потенциометр для регулировки яркости дисплея, вместо этого он подсоединил вывод 3 к земле. Держатель аккумулятора подсоединяется минусом на землю, а плюсом к аналоговому входу 0. Между плюсом держателя и аналоговым входом включен резистор 10 МОм, выполняющий функцию подтягивающего. Твердотельное реле включается минусом к земле, а плюсом к цифровому выходу 1. Один из контактных выводов реле соединяется с плюсом держателя, между вторым выводом и землей ставится резистор 4 Ом, выполняющий роль нагрузки при разряде аккумулятора. Имейте в виду, что он будет довольно сильно греться. Кнопка и включатель подключаются согласно схеме на фото.

Так как в схеме задействуются PIN 0 и PIN 1, надо отключить их перед загрузкой программы в контроллер.
После того, как вы все соедините, зальете прошивку, прикрепленную ниже, можно попробовать протестировать аккумулятор.



На фото видно значение напряжения, которое считал контроллер.
Напряжение на нем должно быть обязательно выше 3В

Это устройство предназначено для измерения ёмкости аккумуляторов Li-ion и Ni-Mh , а также для заряда Li-ion аккумуляторов с выбором начального тока заряда.

Управление

Подключаем устройство к стабилизированному блоку питания 5в и током 1А (например от сотового телефона). На индикаторе в течении 2 сек отображается результат предыдущего измерения емкости "ххххmA/c" а на второй строке значение регистра OCR1A "S.xxx". Вставляем аккумулятор. Если нужно зарядить аккумулятор то кратко жмём кнопку ЗАРЯД, если нужно измерить ёмкость то кратко жмём кнопку ТЕСТ. Если нужно изменить ток заряда (значение регистра OCR1A) то долго(2 сек) жмем кнопку ЗАРЯД. Заходим в окно регулировки регистра. Отпускаем кнопку. Кратко нажимая на кнопку ЗАРЯД меняем по кругу значения (50-75-100-125-150-175-200-225) регистра, в первой строке показывается ток заряда пустого аккумулятора при выбранном значении (при условии что у вас в схеме стоит резистор 0,22 Ом). Кратко жмём кнопку ТЕСТ значение регистра OCR1A запоминаются в энергонезависимой памяти.
Если вы проделывали разные манипуляции с устройством и вам надо сбросить показания часов, измеренной ёмкости то долго жмём кнопку ТЕСТ (значение регистра OCR1A не сбрасываются). Как только заряд окончен подсветка дисплея отключается, для включения подсветки кратко нажмите кнопку ТЕСТ или ЗАРЯД.

Логика работы устройства следующая:

При подаче питания, на индикаторе отображается результат предыдущего измерения ёмкости аккумулятора и значение регистра OCR1A, хранящееся в энергонезависимой памяти. Через 2 секунды устройство переходит в режим определения типа аккумулятора по величине напряжения на клемах.

Если напряжение более 2В то это Li-ion аккумулятор и напряжение полного разряда составит 2,9В, иначе это Ni-MH аккумулятор и напряжение полного разряда составит 1В. Только после подключения аккумулятора доступны кнопки управления. Далее устройство ожидает нажатия кнопок Тест или Заряд. На дисплее отображается "_STOP". При нажатии кратко кнопки Тест подключается нагрузка через MOSFET.

Величина тока разряда определяется по напряжению на резисторе 5,1Ом и, каждую минуту суммируется с предыдущим значением. В устройстве используется кварц 32768Гц для работы часов.

На дисплее отображается текущая величина емкости аккумулятора "ххххmA/c" и тора разряда "А.ххх", а также время "хх:хх:хх"с момента нажатия кнопки. Показывается также анимированный значок разряда аккумулятора. По окончании теста для Ni-MH аккумулятора появляется надпись "_STOP", результат измерения отображается на дисплее "ххххmA/c" и запоминается.

Если аккумулятор Li-ion, то также результат измерения отображается на дисплее "ххххmA/c" и запоминается, но сразу включается режим заряда. На дисплее отображается содержимое регистра OCR1A "S.xxx". Показывается также анимированный значок заряда аккумулятора.

Регулировка тока заряда осуществляется с помощью ШИМ и ограничивается резистором 0,22Ом. Апаратно ток заряда можно уменьшить увеличив сопротивление 0,22Ом до 0,5-1Ом. В начале заряда ток плавно нарастает до значения регистра OCR1A или до достижения напряжения на клемах аккумулятора 4,22В (если аккумулятор был заряжен).

Величина тока заряда зависит от значения регистра OCR1A - больше значение - больше ток заряда. При превышении напряжения на клемах аккумулятора 4,22В значение регистра OCR1A уменьшается. Процесс дозаряда продолжается до величины регистра OCR1A равного 33, что соответствует току около 40 mA. На этом заряд заканчивается. Подсветка дисплея отключается.

Настройка

1. Подключаем питание.
2. Подключаем аккумулятор.
3. Подключаем вольтметр к аккумулятору.
4. Временными кнопками + и - (PB4 и PB5)добиваемся совпадения показания вольтметра на дисплее и на эталонном вольтметре.
5. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.
6. Извлекаем аккумулятор.
7. Подключаем вольтметр к резистору 5,1Ом (по схеме около транзистора 09N03LA).
8. Подключаем регулируемый БП к клемам аккумулятора, выставляем на БП 4В.
9. Нажимаем кратко кнопку ТЕСТ.
10. Измеряем напряжение на резисторе 5,1Ом - U.
11. Высчитываем ток разряда I=U/5,1
12. Временными кнопками + и - (PB4 и PB5) устанавливаем на индикаторе"А.ххх" рассчитанный ток разряда I.
13. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.

Устройство питается от стабилизированного источника напряжением 5 Вольт и током 1А. Кварц на 32768Гц предназначен для точного отсчета времени. Контроллер ATmega8 тактируется от внутреннего генератора частотой 8 МГц, также необходимо установить защиту от стирания EEPROM соответствующими битами конфигурации. При написании управляющей программы были использованы обучающие статьи с данного сайта.

Текущие значения коэффициентов напряжения и тока (Ukof . Ikof) можно увидеть если подключить дисплей 16х4 (16х4 предпочтительно для отладки) на третьей строке. Или в Ponyprog если открыть файл прошивки EEPROM (считать с контроллера EEPROM).
1 байт - OCR1A , 2 байт - I_kof, 3 байт - U_kof, 4 и 5 байт результат предыдущего измерения емкости.

Видео работы прибора:



© 2024 globusks.ru - Ремонт и обслуживание автомобилей для новичков