Приставка для измерения ёмкости зарядки и емкости аккумулятора
При применении микроконтроллеров во многих случаях можно существенно упростить конструкцию, придать устройству такие функции, применить которые на отдельных логических элементах очень трудно или даже вообще невозможно .
В качестве примера предлагаем следующую конструкцию приставки для измерения ёмкости зарядки
Эта конструкция подключается как приставка к зарядному устройству, разнообразных схем которых в интернете уже описано немало. Она выводит на жидкокристаллический дисплей значение входного напряжения, величину тока зарядки аккумулятора, время зарядки и ёмкость зарядного тока(которая может быть или в Ампер-часах или в миллиампер-часах - зависит только от прошивки контроллера и применённого шунта). (См. Рис.1 и Рис.2)
Рис.1
Рис.2
Выходное напряжение зарядного устройства не должно быть менее 7 вольт, иначе для данной приставки потребуется отдельный источник питания.
Основу устройства составляет микроконтроллер PIC16F676 и жидкокристаллический 2-строчный индикатор SC 1602 ASLB-XH-HS-G.
Максимальная зарядная ёмкость составляет 5500 ма/ч и 95,0 А/ч соответственно.
Принципиальная схема приведена на Рис 3.
Рис.3. Принципиальная схема приставки для измерения ёмкости зарядки
Подключение к зарядному устройству - на Рис 4.
Рис.4 Схема подключения приставки к зарядному устройству
При включении микроконтроллер сначала запрашивает требуемую ёмкость зарядки.
Устанавливается кнопкой SB1. Сброс - кнопкой SB2.
На выводе 2 (RA5 )устанавливается высокий уровень, который включает реле P1, которое в свою очередь включает зарядное устройство (Рис.5).
Если кнопку не нажимать более 5 секунд - контроллер автоматически переходит в режим измерений.
Алгоритм подсчёта ёмкости в данной приставке следующий:
1 раз в секунду микроконтроллер измеряет напряжение на входе приставки и ток, и если величина тока больше единицы младшего разряда - увеличивает счётчик секунд на 1. Таким образом часы показывают только время зарядки.
Далее микроконтроллер высчитывает средний ток за минуту. Для этого показания зарядного тока делятся на 60. Целое число записываются в счётчик, а остаток от деления потом прибавляется к следующему измеренному значению тока,и уже потом эта сумма делится на 60. Сделав, таким образом, 60 измерений за 1 минуту в счётчике будет число среднего значения тока за минуту.
При переходе показаний секунд через ноль среднее значение тока в свою очередь делится на 60(по такому же алгоритму). Таким образом счётчик ёмкости увеличивается 1 раз в минуту на величину одна шестидесятая от величины среднего тока за минуту. После этого счётчик среднего значения тока обнуляется и подсчёт начинается сначала. Каждый раз, после подсчёта ёмкости зарядки, производится сравнение измеренной ёмкости и заданной, и при их равенстве на дисплей выдаётся сообщение - "Зарядка завершена", а во второй строке - значение этой ёмкости зарядки и напряжение. На выводе 2 микроконтроллера (RA5) появляется низкий уровень, что приводит к отключению реле. Зарядное устройство отключится от сети.
Рис.5
Наладка устройства сводится только к установке правильных показаний зарядного тока (R1 R5) и входного напряжения (R4) с помощью эталонного амперметра и вольтметра.
Теперь о шунтах.
Для зарядного устройства на ток до 1000 мА можно использовать блок питания на 15 в, в качестве шунта резистор на 0.5-10 Ом мощностью 5Вт (меньшее значение сопротивления будет вносить меньшую погрешность в измерение, но затруднит точную настройку тока при калибровки прибора), и последовательно с заряжаемым аккумулятором переменное сопротивление на 20-100 Ом, которым и будет выставляться величина зарядного тока.
Для зарядного тока до 10А потребуется изготовить шунт из высокоомной проволоки подходящего сечения на сопротивление 0,1 Ом. Проведённые испытания показали, что даже при сигнале с токового шунта равным 0,1 вольт настроечными резисторами R1 и R3 можно легко установить показания тока в 10 А.
Печатная плата для данного устройства разрабатывалась под индикатор WH1602D. Но можно использовать любой подходящий индикатор, сотвественно перепаяв провода. Плата собрана таких же размеров как и жидкокристаллический индикатор и закреплена сзади. Микроконтроллер устанавливается на панельку и позволяет быстро поменять прошивку для перехода на другой ток зарядного устройства.
Перед первым включением подстроечные резисторы установить в среднее положение.
В качестве шунта для варианта прошивки на малые токи можно применить 2 параллельно соединенных резистора млт-2 1 Ом.
В приставке можно применить индикатор WH1602D , но придется поменять местами выводы 1 и 2. А вообще- лучше свериться с документацией на индикатор.
Индикаторы фирмы МЭЛТ не будут работать, из-за несовместимости работы по 4-х битному интерфейсу.
При желании, можно подключить подсветку индикатора через токоограничительный резистор 100 Ом
Эту приставку можно использовать для определения емкости заряженного аккумулятора.
Рис.6. Определение емкости заряженного аккумулятора
В качестве нагрузки можно использовать любую нагрузку (Лампочку, резистор...), только при включении нужно выставить любую заведомо большую емкость аккумулятора и при этом следить за напряжением аккумулятора, чтобы не допускать глубокой разрядки.
(От автора) Приставка испытывалась с современным импульсным зарядным устройством для автомобильных аккумуляторов,
Данные устройства обеспечивают стабильное напряжение и ток с минимальными пульсациями.
При подсоединении же приставки к старому зарядному устройству (понижающий трансформатор и диодный выпрямитель) мне не удалось настроить показания зарядного тока из-за больших пульсаций.
Поэтому было решено изменить алгоритм измерения зарядного тока контроллером.
В новой редакции контроллер делает 255 измерений тока за 25 милисекунд (при 50Гц - период составляет 20 милисекунд). И из сделанных измерений выбирает самое большое значение.
Также происходит измерение входного напряжения, но выбирается наименьшее значение.
(При нулевом зарядном токе напряжение должно быть равно ЭДС аккумулятора.)
Однако при такой схеме перед стабилизатором 7805 необходимо поставить диод и сглаживающий конденсатор ( >200 мкФ )на напряжение не менее выходного напряжения зарядного
устройства. Плохо сглаженное напряжение питания микроконтроллера приводило к сбоям в работе.
Для точной установки показаний приставки рекомендуется использовать многооборотные подстроечные резисторы или ставить дополнительные резисторы последовательно с подстроечными (подобрать экспериментально).
В качестве шунта для приставки на 10 А я пробовал использовать кусок аллюминиевого провода сечением 1,5 мм длиной около 20 см -прекрасно работает.
С уважением Гуляев Сергей Николаевич. e-mail : kvant19@rambler.ru
Так а вопрос в чем?
А в чем заключается переработка схемы? Вместо светодиода на pin2 контроллера поставили ключ на реле? То таки сильно.
У меня вопрос: Какой диапазон напряжений? т.е. Сможет ли он оценить емкость разных аккумов на от 1,2 вольта до 29 вольт?
И еще, только без обид, при переработке схемы неплохо бы переработать и статью. Это я за абзац о шунтах говорю. Отличий нет, а надо бы (ну не 10 конечно же :-))
Просба к знающим и умеющим. Нужна прошивка с показаниями амперметра 2 цифр после точки т.е. 9,99 ампер. Заранее спасибо.
Честно говоря меня устраивает схема как есть хочу только установить шунт в 1 ОМ и чтоб деление амперметра было 10 мА для этого прошу кто разбирается в прошивках переделать прошивку.
В Архиве прошивки с делениями амперметра 1 мА и 100мА а вот 10мА нет-который мне то и нужен!!!
outA clrwdt
movlw 49 ; вывод " I "
movwf R30
movlw 3D ; вывод " = "
movwf R31
movf SOT,W ; вывод десятков (едениц)
movwf R32
movlw 2C ; вывод " , "
movwf R33
movf DES,W ; вывод единиц (десятых)
movwf R34
movf EDI,W ; вывод десятых (сотых)
movwf R35
movlw 41 ; " A "
movwf R36
return
Ток ограничен 9 А
PS. Для того, чтобы получить большую точность показаний амперметра, необходимо использовать ОУ с двухполярным питанием. Иначе даже нет смысла выводить сотые...
PS2 Да, необходимо так же перенести запятую в выводе емкости (стр.900)
Файл HEX с начальной установкой емкости 50
Запятую мы перенесли в Амперметре но показания измерения ёмкости зарядки теперь врут, т.е. они показывают как и должны были показывать до перенова запятой. В какой строке изменить что считал верно ёмкость зарядки?
Проверил вывод емкости отображает в 10 раз больше чем получает аккумулятор при токе зарятки 1 А за 1 час наматывает 10 А/ч.
С другой стороны спасибо за При помощи программы MPASM, входящей в комплект MPLAB -- Сам сегодня целый день копаюсь - что то да получается. Почему то в Proteus не работает эта схема - приходится часто прошивать микроконтроллер
Получилась начальная емкость 8 А/ч?
дальше просто не читал.
Все понял.Попробую заменить на английский.
А индикатор у меня SC 1602 ASLB S8 GB R.
Пока не введешь требуемое значение ёмкости зарядки. На выводе 2 (RA5) НЕ устанавливался высокий уровень.
СП.
Не этот - KS0066
;** 17. Ёмкость аккумулятора ***********************************
;**************************************************************
emk movlw 5 ; 5 секунд ожидания
movwf tmp2 ;
;--------------------------------------
emk1 clrwdt
call emkout ; вывод ёмкости аккумулятора
;-----------------------------------------------------------
call pau1s ;
;-----------------------------------------------------------
bsf PORTA,5 ; вкл светодиод
btfss PORTA,4 ; если нажата кнопка
call plus ; + 50 мА/ч
decfsz tmp2,1
goto emk1
goto zar0 ; переход на зарядное
строку "bsf PORTA,5 ; вкл светодиод" переставь перед
строкой "goto zar0 ; переход на зарядное"
и перекомпиль.
Собрал, включил, работает. Емкость по питанию поставил 1мкф (на схеме не указана).
Но! Схема зависает, особенно быстро при изменении нагрузки. Логично предположить помехи по питанию - но емкости все есть, добавлять уже некуда.
К сожалению, Ваше письмо не может быть доставлено одному или нескольким получателям:
kvant19@rambler.ru
SMTP error from remote mail server after RCPT TO:<kvant19@rambler.ru>:
host imx1.rambler.ru [81.19.66.234]: 540 5.7.1 <kvant19@rambler.ru>:
Recipient address rejected: Your emails has been returned because the intented recipient's email account has been suspended. The account must be re-activated to receive incoming messages.
Рекомендуем Вам проверить корректность указания адресов получателей.
Но контроллер действительно "зависает" при резком изменении измеряемого напряжения нагрузки. Это косяк в программе. Где именно- лень коврять. Поэтому после старта зарядки не допускайте перекоммутацию аккумулятора. В любом случае, после такого никто не скажет какая емкость у аккумулятора, поэтому косяк переводим в разряд фич и продолжаем пользоваться.
В схеме емкости на 10н поменял на те что были - 47н. Это как-то влияет на устойчивость?
п.с. я говорил о емкости по питанию, после 78L05. На схеме только электролит, а на плате есть отверстия для дополнительной емкости (?), на монтажке слева от панельки МК.
Виснуть не должно. Тыкнитесь осциллографом на питалово- может возбуд кренки?
Виснет практически сразу, иногда работает 1-3 минуты.
Если не давать ток через шунт больше 50 мА - работает долго, больше 5 минут (не засекал дальше).
Думаю попробовать ОУ, как советовали выше.
Но по-любому, устройство не имеет шансов на реальное применение. Чисто как индикатор, не более. Схема должна быть 100% стабильной. Вожусь с ней как с прикольной задачкой, но никому не советую повторять.
Спасибо за толковые советы. Привыкаю к мплабсу (он просто выглядит страшненько, но пашет
Ищем дальше - в источник , в зарядное устройство. "И остолбенели мужики!"
На 7805,которая с радиатором, видим такое
То-то она греется, подумали "мужики", а ток всего-то 500 ма показывает!
Вот общий вид
Вот ссылка на схему зарядного
Так что вы угадали, кренка возбуждается.
Поставил электролит 47мкф после 7805 - генерация пропала.
Приставка теперь ведет себя хорошо, шунт 1.7 Ом. Завтра продолжу тесты.
К приставке претензий пока нет. Сжег (судя по всему) индикатор WH1602D. Решил "облагородить" монтаж, как то сжег 78L05, 16в пошло на схему, МК вроде живой, читается, а вот индикатор заполосил, после ресета гаснет
В тестовом варианте показания тока были? проверьте поступление напряжения с шунта
Собрать смогли, а найти причину не можете?
Да, будет. У меня оно так и используется.
Долго искал схему для измерения емкости аккумулятора (2-17 А/ч)
Нашел, повторил. Но не могу измерить быстро емкость АКК.
Может что то в прошивке поменять ?
При подключении АКК к схеме и нагрузки около 10 Ом идет разряд АКК и только через 1-2 часа показывает результат, когда АКК уже почти разряжен........
Помогиге пож-та. Что можно сделать ?
Там в меню вообще много русских символов?
В исходнике там явно заданы буквы. При желании можно поменять и откомпилировать. Но это уже самостоятельно. Нужно ставить MPLAB IDE.
emkout call clrd ; стираем старые данные
movlw 0A2h ; Ё
movwf R1
movlw 0BC ; м
movwf R2
movlw 0BA ; к
movwf R3
movlw 06F ; о
movwf R4
movlw 063 ; с
movwf R5
movlw 0BF ; т
movwf R6
movlw 0C4 ; ь
movwf R7
movlw 061 ; а
movwf R9
movlw 0BA ; к
movwf R10
movlw 0BA ; к
movwf R11
movlw 79h ; у
movwf R12
movlw 0BC ; м
movwf R13
movlw 0D0 ; .
movwf R14
movf E1,W ; вывод уставки ёмкости
movwf A1
movf E10,W ;
movwf A10
call convert ; пересчёт
call Dig ; удаляем незначащие нули
movf TYS,0 ; тысячи - в R24
movwf R24
movf SOT,0 ; сотни - в R25
movwf R25
movf DES,0 ; десятки - в R26
movwf R26
movf EDI,0 ; единицы - в R27
movwf R27
movlw 06D ; " m "
movwf R29
movlw 41 ; " A "
movwf R30
movlw 02F ; " "
movwf R31
movlw 0C0 ; " ч "
movwf R32
call LCD ; выводим на экран