Pull to refresh

Comments 7

В такой схеме ток у вас получится непостоянным (поэтому и пишут, что требуется постоянное присутствие и регулировка тока). Даже считая сопротивление ламп постоянным, ток будет меняться на 20%. А сопротивление ламп заметно зависит от накала (хотя чем больше напряжение, тем больше сопротивление, что частично скомпенсирует изменение тока, но надо считать или мерить).
Железная часть позволяет измерять напряжение на аккумуляторе, правда, не очень точно. Полагаю, что переписать код так, чтобы напряжение учитывалось в подсчете емкости, несложно. Я сам делал похожую штуку для слежения за разрядом литий-ионных аккумуляторов, и учитывал напряжение — график весьма нелинейный.
Найти ВАХ лампочки тоже не очень сложно, из этого можно вычислить более-менее точную емкость.

А вообще, если в это дело еще и амперметр засунуть, будет совсем здорово.
Литий-ионные аккумуляторы и свинцово-кислотные имеют сильно разные кривые разряда. Данная система применима именно к самый распространенным автомобильным свинцово-кислотным батареям. Меняя границу напряжения, можно перейти к различным сборкам других типов батарей.
Амперметр можно подключить и создать БД, но упор делался на простоту схемы.
Погрешность измерения методом разрядки лампой накаливания укладывается в 5-7%, что для автомобильного аккумулятора в 45-65 Ач будет не очень критично. А так как лампа сама поддерживает свою температуру, то и сопротивление у нее меняется мало.
Активную нагрузку достаточно просто сделать на полевике. Подключаем его к любому PWM-выходу, настраиваем все сопутссвующее. Рабочий код такой:
//Discharge procedure
if ((state & POWER_BIT) && (state & ACTIVE_BIT) && (state & DISCHARGE_BIT)) {
i = read_adc_last(CURRENT_IN);
tmp = fabs(convert_current(i) * 10);
if (tmp > (set_current + 1))
OCR0--;
if (tmp < (set_current — 1))
OCR0++;
current_counter = tmp*10/36;
}
Пояснения:
read_adc_last — функция выдает последнее значение ацп из массива (нужно для вычисления среднего, чтоб не плавали показания на экране).
convert_current — конвертирует значение тока с ацп в амперы. fabs нужен так как сигнал тока идет на общий вход ацп и при зарядке ток положительный, при разрядке — отрицательный.
CURRENT_IN — константа с номером входа ацп
set_current — переменная в которую пользователь задает желаемый ток. Умножено на 10, т.е. 10 = 1А
плюс/минус 0.1 А — гистерезис.
current_counter — счетчик милиампер-часов. Каждую секунду добавляется к общему счетчику. (усреднение еще не сделал).

данная процедура выполняется по аппаратному таймеру раз в 50 мс (не важно на самом деле)

Обычный low-profile кулер от 1155 сокета спокойно рассеивает 150 Вт.
Данный метод позволяет вычислить емкость с крайне высокой точностью. Его лечше использовать для аккумуляторов малой емкости, где каждый Ач на счету. Подскажите, какой полевик может выдержать ток 20А, если разряжать аккумулятор 190Ач током в 0,1С?
20А — смех вообще для типичного N-канального полевика. Тут скорее вопрос в максимально допустимой рассеиваимой мощности кристалла и сопротивлении в открытом состоянии.
И тут ВНИМАНИЕ: надо подбирать заведомо «плохой» полевик с «высоким» сопротивлением затвора, что бы мощность рассеивалась именно на нем, а не на проводах, соединениях итд итп.
Я использую IRFP360: 23 A максимальный ток, 280 Вт, 0.2 Ома в открытом состоянии (в реальности под нагрузкой и нагревом около 1 Ома).
Главное рассеить мощность хорошим радиатором, но как я и говорил: процессорные кулеры в этом плане очень удобны и эффективны.
Sign up to leave a comment.

Articles