mppss.ru – Все про автомобили

Все про автомобили

Автомат для разрядки и измерения реальной ёмкости аккумуляторов. Зарядное устройство-тестер аккумуляторов на Atmega8 Измеритель емкости и внутреннего сопротивления аккумуляторов

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

Небольшая прелюдия…
Под моим покровительством находится парк из 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.

1. Схема

С измерением напряжения и времени в Arduino проблем нет – есть АЦП, но чтобы измерить ток нужен шунт. У меня появилась идея использовать сам нагрузочный резистор в качестве шунта. То есть, зная на нем напряжение и предварительно измерив сопротивление, мы всегда можем рассчитать ток. Поэтому простейший вариант схемы будет состоять лишь из нагрузки и АКБ, с подключением к аналоговому входу Arduino. Но было бы неплохо предусмотреть отключение нагрузки по достижению порогового напряжение на батарее (для Li-Ion это обычно 2,5-3В). Поэтому я предусмотрел в схеме реле, управляемое цифровым пином 7 через транзистор. Конечный вариант схемы на рисунке ниже.

Все элементы схемы я разместил на кусочке макетной платы, которая устанавливается прямо на Uno. В качестве нагрузки использовал спираль из нихромовой проволоки толщиной 0,5мм, имеющей сопротивление около 3 Ом. Это дает расчетное значение тока разряда 0,9-1,2А.

2. Измерение тока

Как было сказано выше ток рассчитывается исходя из напряжения на спирали и её сопротивления. Но стоит учесть, что спираль нагревается, а сопротивление нихрома довольно сильно зависит от температуры. Чтобы компенсировать ошибку я просто снял вольт-амперную характеристику спирали, используя лабораторный блок питания и давая ей прогреться перед каждым измерением. Далее вывел в Excel уравнение линии тренда (график ниже), которое дает довольно точную зависимость i(u) с учетом нагрева. Видно, что линия не прямая.

3. Измерение напряжения

Поскольку точность данного тестера напрямую зависит от точности измерения напряжения, я решил уделить этому особое внимание. В других статьях уже неоднократно упоминали метод, позволяющих наиболее точно измерять напряжение контроллерами Atmega. Повторю лишь вкратце – суть состоит в определении внутреннего опорного напряжения средствами самого контроллера. Я пользовался материалами данной статьи.

4. Программа

Код не представляет из себя ничего сложного:

Текст программы

#define A_PIN 1 #define NUM_READS 100 #define pinRelay 7 const float typVbg = 1.095; // 1.0 -- 1.2 float Voff = 2.5; // напряжение выключения float I; float cap = 0; float V; float Vcc; float Wh = 0; unsigned long prevMillis; unsigned long testStart; void setup() { Serial.begin(9600); pinMode(pinRelay, OUTPUT); Serial.println("Press any key to start the test..."); while (Serial.available() == 0) { } Serial.println("Test is launched..."); Serial.print("s"); Serial.print(" "); Serial.print("V"); Serial.print(" "); Serial.print("mA"); Serial.print(" "); Serial.print("mAh"); Serial.print(" "); Serial.print("Wh"); Serial.print(" "); Serial.println("Vcc"); digitalWrite(pinRelay, HIGH); testStart = millis(); prevMillis = millis(); } void loop() { Vcc = readVcc(); //считывание опорного напряжения V = (readAnalog(A_PIN) * Vcc) / 1023.000; //считывание напряжения АКБ if (V > 0.01) I = -13.1 * V * V + 344.3 * V + 23.2; //расчет тока по ВАХ спирали else I=0; cap += (I * (millis() - prevMillis) / 3600000); //расчет емкости АКБ в мАч Wh += I * V * (millis() - prevMillis) / 3600000000; //расчет емкости АКБ в ВтЧ prevMillis = millis(); sendData(); // отправка данных в последовательный порт if (V < Voff) { //выключение нагрузки при достижении порогового напряжения digitalWrite(pinRelay, LOW); Serial.println("Test is done"); while (2 > 1) { } } } void sendData() { Serial.print((millis() - testStart) / 1000); Serial.print(" "); Serial.print(V, 3); Serial.print(" "); Serial.print(I, 1); Serial.print(" "); Serial.print(cap, 0); Serial.print(" "); Serial.print(Wh, 2); Serial.print(" "); Serial.println(Vcc, 3); } float readAnalog(int pin) { // read multiple values and sort them to take the mode int sortedValues; for (int i = 0; i < NUM_READS; i++) { delay(25); int value = analogRead(pin); int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= value) { // j is insert position break; } } } for (int k = i; k > < (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; } float readVcc() { // read multiple values and sort them to take the mode float sortedValues; for (int i = 0; i < NUM_READS; i++) { float tmp = 0.0; ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); ADCSRA |= _BV(ADSC); // Start conversion delay(25); while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both tmp = (high << 8) | low; float value = (typVbg * 1023.0) / tmp; int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= value) { // j is insert position break; } } } for (int k = i; k > j; k--) { // move all values higher than current reading up one position sortedValues[k] = sortedValues; } sortedValues[j] = value; //insert current reading } //return scaled mode of 10 values float returnval = 0; for (int i = NUM_READS / 2 - 5; i < (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; }

Каждые 5 секунд данные о времени, напряжении батареи, токе разряда, текущей емкости в мАч и ВтЧ, а также напряжении питания передаются в последовательный порт. Ток рассчитывается по полученной в п. 2 функции. По достижении порогового напряжения Voff тест прекращается.
Единственным, на мой взгляд, интересным моментом в коде я бы выделил использование цифрового фильтра. Дело в том, что при считывании напряжения значения неизбежно «пляшут» вверх-вниз. Сначала я пытался уменьшить этот эффект просто сделав 100 измерений за 5 секунд и взяв среднее. Но результат по-прежнему меня не удовлетворил. В ходе поисков я наткнулся на такой программный фильтр. Работает он похожим образом, но вместо усреднения он сортирует все 100 значений измерений по возрастанию, выбирает центральные 10 и высчитывает среднее из них. Результат меня впечатлил – флуктуации измерений полностью прекратились. Я решил использовать его и для измерения внутреннего опорного напряжения (функция readVcc в коде).

5. Результаты

Данные из монитора последовательного порта в несколько кликов импортируются в Excel и выглядят следующим образом:

В случае с моим Nexus 5 заявленная ёмкость аккумулятора BL-T9 – 2300 мАч. Измеренная мной – 2040 мАч при разряде до 2,5 В. В реальности контроллер вряд ли позволяет сесть батарее до такого низкого напряжения, скорее всего пороговое значение 3В. Ёмкость в этом случае 1960 мАч. Полтора года службы телефона привели к просадке емкости примерно на 15%. С покупкой новой АКБ было решено повременить.
С помощью данного тестера было разряжено уже несколько других Li-Ion аккумуляторов. Результаты выглядят очень реалистично. Измеренная емкость новых АКБ совпадает с заявленной с отклонением менее 2%.
Данный тестер подойдет и для металл-гидридных пальчиковых аккумуляторов. Ток разряда в этом случае составит около 400 мА.

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

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

Разработанное автором устройство предназначено для измерения в автоматическом режиме емкости большинства типов аккумуляторов ― от малогабаритных до автомобильных батарей. Принцип измерения основан на разрядке аккумулятора стабильным током с автоматическим подсчетом времени разрядки и дальнейшим перемножением этих величин, результат получается в привычной размерности — ампер-часах. Основа устройства — микроконтроллер (МК) 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 >.

Это устройство предназначено для измерения ёмкости аккумуляторов 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 байт результат предыдущего измерения емкости.

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

Это устройство предназначено для измерения ёмкости аккумуляторов 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 байт результат предыдущего измерения емкости.

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


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении