Зарядное устройство на микроконтроллере avr. Зарядное устройство на микроконтроллере. Схема плавного выключения дальнего света

В этой статье я расскажу, как из компьютерного блока питания формата АТ/АТХ и самодельного блока управления изготовить довольно-таки «умное» зарядное устройство для свинцово-кислотных аккумуляторных батарей. К ним относятся т.н. «УПС-овые», автомобильные и другие АКБ широкого применения.

Описание
Устройство предназначено для зарядки и тренировки (десульфатации) свинцово-кислотных АКБ ёмкостью от 7 до 100 Ач, а также для приблизительной оценки уровня их заряда и емкости. ЗУ имеет защиту от неправильного включения батареи (переполюсовки) и от короткого замыкания случайно брошенных клемм. В нём применено микроконтроллерное управление, благодаря чему осуществляются безопасные и оптимальные алгоритмы зарядки: IUoU или IUIoU, с последующей «добивкой» до 100%-го уровня зарядки. Параметры зарядки можно подстроить под конкретный аккумулятор (настраиваемые профили) или выбрать уже заложенные в управляющей программе. Конструктивно зарядное устройство состоит из блока питания АТ/АТХ, который нужно немного доработать и блока управления на МК ATmega16A. Всё устройство свободно монтируется в корпусе того же блока питания. Система охлаждения (штатный кулер БП) включается/отключается автоматически.
Достоинства данного ЗУ - его относительная простота и отсутствие трудоёмких регулировок, что особенно актуально для начинающих радиолюбителей.
]1. Режим зарядки - меню «Заряд». Для аккумуляторов емкостью от 7Ач до 12Ач по умолчанию задан алгоритм IUoU. Это значит:
- первый этап- зарядка стабильным током 0.1С до достижения напряжения14.6В
- второй этап-зарядка стабильным напряжением 14.6В, пока ток не упадет до 0,02С
- третий этап-поддержание стабильного напряжения 13.8В, пока ток не упадет до 0.01С. Здесь С - ёмкость батареи в Ач.
- четвёртый этап - «добивка». На этом этапе отслеживается напряжение на АКБ. Если оно падает ниже 12.7В, включается заряд с самого начала.
Для стартерных АКБ (от 45 Ач и выше) применяем алгоритм IUIoU. Вместо третьего этапа включается стабилизация тока на уровне 0.02C до достижения напряжения на АКБ 16В или по прошествии времени около 2-х часов. По окончанию этого этапа зарядка прекращается и начинается «добивка». Это- четвёртый этап. Процесс заряда проиллюстрирован графиками рис.1 и рис.2.
2. Режим тренировки (десульфатации) - меню «Тренировка». Здесь осуществляется тренировочный цикл:
10 секунд - разряд током 0,01С, 5 секунд - заряд током 0.1С. Зарядно-разрядный цикл продолжается, пока напряжение на АКБ не поднимется до 14.6В. Далее - обычный заряд.
3. Режим теста батареи. Позволяет приблизительно оценить степень разряда АКБ. Батарея нагружается током 0,01С на 15 секунд, затем включается режим измерения напряжения на АКБ.
4. Контрольно-тренировочный цикл (КТЦ). Если предварительно подключить дополнительную нагрузку и включить режим «Заряд» или «Тренировка», то в этом случае, сначала будет выполнена разрядка АКБ до напряжения 10.8В, а затем включится соответствующий выбранный режим. При этом измеряются ток и время разряда, таким образом, подсчитывается примерная емкость АКБ. Эти параметры отображаются на дисплее после окончания зарядки (когда появится надпись «Батарея заряжена») при нажатии на кнопку «выбор». В качестве дополнительной нагрузки можно применить автомобильную лампу накаливания. Ее мощность выбирается, исходя из требуемого тока разряда. Обычно его задают равным 0.1С - 0.05С (ток 10-ти или 20-ти часового разряда).
Перемещение по меню осуществляется кнопками «влево», «вправо», «выбор». Кнопкой «ресет» осуществляется выход из любого режима работы ЗУ в главное меню.
Основные параметры зарядных алгоритмов можно настроить под конкретный аккумулятор, для этого в меню есть два настраиваемых профиля - П1 и П2. Настроенные параметры сохраняются в энергонезависимой памяти (EEPROM-е).
Чтобы попасть в меню настроек нужно выбрать любой из профилей, нажать кнопку «выбор», выбрать «установки», «параметры профиля», профиль П1 или П2. Выбрав нужный параметр, нажимаем «выбор». Стрелки «влево» или «вправо» сменятся на стрелки «вверх» или «вниз», что означает готовность параметра к изменению. Выбираем нужное значение кнопками «влево» или «вправо», подтверждаем кнопкой «выбор». На дисплее появится надпись «Сохранено», что обозначает запись значения в EEPROM.
Значения настроек:
1. «Алгоритм заряда». Выбирается IUoU или IUIoU. См. графики на рис.1 и рис.2.
2. «Емкость АКБ». Задавая значение этого параметра, мы задаем ток зарядки на первом этапе I=0.1C, где С- емкость АКБ В Ач. (Таким образом, если нужно задать ток заряда, например 4.5А, следует выбрать емкость АКБ 45Ач).
3. «Напряжение U1». Это напряжение, при котором заканчивается первый этап зарядки и начинается второй. По умолчанию задано значение 14.6В.
4. «Напряжение U2». Используется только, если задан алгоритм IUIoU. Это напряжение, при котором заканчивается третий этап зарядки. По умолчанию - 16В.
5. «Ток 2-го этапа I2». Это значение тока, при котором заканчивается второй этап зарядки. Ток стабилизации на третьем этапе для алгоритма IUIoU. По умолчанию задано значение 0.2С.
6. «Окончание заряда I3». Это значение тока, по достижению которого зарядка считается оконченной. По умолчанию задано значение 0.01С.
7. «Ток разряда». Это значение тока, которым осуществляется разряд АКБ при тренировке зарядно-разрядными циклами.


Выбор и переделка блока питания.

В нашей конструкции мы используем блок питания от компьютера. Почему? Причин несколько. Во–первых, это - практически готовая силовая часть. Во-вторых, это же и корпус нашего будущего устройства. В-третьих, он имеет малые габариты и вес. И, в-четвёртых, его можно приобрести практически на любом радиорынке, барахолке и в компьютерных сервисных центрах. Как говорится, дёшево и сердито.
Из всего многообразия моделей блоков питания нам лучше всего подходит блок формата АТX, мощностью не менее 250 Вт. Нужно только учесть следующее. Подходят лишь те блоки питания, в которых применён ШИМ-контроллер TL494 или его аналоги (MB3759, КА7500, КР1114ЕУ4). Можно также применить и БП формата AT, только придется изготовить еще маломощный блок дежурного питания (дежурку) на напряжение 12В и ток 150-200мА. Разница между AT и ATX – в схеме начального запуска. АТ запускается самостоятельно, питание микросхемы ШИМ–контроллера берётся с 12-вольтовой обмотки трансформатора. В ATX для начального питания микросхемы служит отдельный источник 5В, называемый «источник дежурного питания» или «дежурка». Более подробно о блоках питания можно прочитать, например, а переделка БП в зарядное устройство неплохо описана
Итак, блок питания имеется. Сначала необходимо его проверить на исправность. Для этого его разбираем, вынимаем предохранитель и вместо него подпаиваем лампу накаливания 220 вольт мощностью 100-200Вт. Если на задней панели БП имеется переключатель сетевого напряжения, то он должен быть установлен на 220В. Включаем БП в сеть. Блок питания АТ запускается сразу, для ATX нужно замкнуть зелёный и чёрный провода на большом разъёме. Если лампочка не светится, кулер вращается, а все выходные напряжения в норме - значит, нам повезло и наш блок питания рабочий. В противном случае, придётся заняться его ремонтом. Оставляем лампочку пока на месте.
Для переделки БП в наше будущее зарядное устройство, нам потребуется немного изменить «обвязку» ШИМ-контроллера. Несмотря на огромное разнообразие схем блоков питания, схема включения TL494 стандартная и может иметь пару вариаций, в зависимости от того, как реализованы защиты по току и ограничения по напряжению. Схема переделки показана на рис.3.


На ней показан только один канал выходного напряжения: +12В. Остальные каналы: +5В,-5В, +3,3В не используются. Их обязательно нужно отключить, перерезав соответствующие дорожки или выпаяв из их цепей элементы. Которые, кстати, нам могут и пригодиться для блока управления. Об этом - чуть позже. Красным цветом обозначены элементы, которые устанавливаются дополнительно. Конденсатор С2 должен иметь рабочее напряжение не ниже 35В и устанавливается взамен существующего в БП. После того, как «обвязка» TL494 приведена к схеме на рис.3, включаем БП в сеть. Напряжение на выходе БП определяется по формуле: Uвых=2,5*(1+R3/R4) и при указанных на схеме номиналах должно составлять около 10В. Если это не так, придется проверить правильность монтажа. На этом переделка закончена, можно убирать лампочку и ставить на место предохранитель.

Схема и принцип работы.

Схема блока управления показана на рис.4.


Она довольно проста, так как все основные процессы выполняет микроконтроллер. В его память записывается управляющая программа, в которой и заложены все алгоритмы. Управление блоком питания осуществляется с помощью ШИМ с вывода PD7 МК и простейшего ЦАП на элементах R4,C9,R7,C11. Измерение напряжения АКБ и зарядного тока осуществляется средствами самого микроконтроллера - встроенным АЦП и управляемым дифференциальным усилителем. Напряжение АКБ на вход АЦП подается с делителя R10R11, Зарядный и разрядный ток измеряются следующим образом. Падение напряжения с измерительного резистора R8 через делители R5R6R10R11 подается на усилительный каскад, который находится внутри МК и подключен к выводам PA2, PA3. Коэффициент его усиления устанавливается программно, в зависимости от измеряемого тока. Для токов меньше 1А коэффициент усиления (КУ) задается равным 200, для токов выше 1А КУ=10. Вся информация выводится на ЖКИ, подключенный к портам РВ1-РВ7 по четырёхпроводной шине. Защита от переполюсовки выполнена на транзисторе Т1, сигнализация неправильного подключения - на элементах VD1,EP1 ,R13. При включении зарядного устройства в сеть транзистор Т1 закрыт низким уровнем с порта РС5, и АКБ отключена от зарядного устройства. Подключается она только при выборе в меню типа АКБ и режима работы ЗУ. Этим обеспечивается также отсутствие искрения при подключении батареи. При попытке подключить аккумулятор в неправильной полярности сработает зуммер ЕР1 и красный светодиод VD1, сигнализируя о возможной аварии. В процессе заряда постоянно контролируется зарядный ток. Если он станет равным нулю (сняли клеммы с АКБ), устройство автоматически переходит в главное меню, останавливая заряд и отключая батарею. Транзистор Т2 и резистор R12 образуют разрядную цепь, которая участвует в зарядно-разрядном цикле десульфатирующего заряда (режим тренировки) и в режиме теста АКБ. Ток разряда 0.01С задается с помощью ШИМ с порта PD5. Кулер автоматически выключается, когда ток заряда падает ниже 1,8А. Управляет кулером порт PD4 и транзистор VT1.

Детали и конструкция.

Микроконтроллер. В продаже обычно встречаются в корпусе DIP-40 или TQFP-44 и маркируются так: ATMega16А-PU или ATMega16A-AU. Буква после дефиса обозначает тип корпуса: «P»- корпус DIP, «A»- корпус TQFP. Встречаются также и снятые с производства микроконтроллеры ATMega16-16PU, ATMega16-16AU или ATMega16L-8AU. В них цифра после дефиса обозначает максимальную тактовую частоту контроллера. Фирма- производитель ATMEL рекомендует использовать контроллеры ATMega16A (именно с буквой «А») и в корпусе TQFP, то есть, вот такие: ATMega16A-AU, хотя в нашем устройстве будут работать все вышеперечисленные экземпляры, что и подтвердила практика. Типы корпусов отличаются также и количеством выводов (40 или 44) и их назначением. На рис.4 изображена принципиальная схема блока управления для МК в корпусе DIP.
Резистор R8 –керамический или проволочный, мощностью не менее 10 Вт, R12- 7-10Вт. Все остальные- 0.125Вт. Резисторы R5,R6,R10 и R11 нужно применять с допустимым отклонением 0.1-0.5% . Это очень важно! От этого будет зависеть точность измерений и, следовательно, правильная работа всего устройства.
Транзисторы T1 и Т1 желательно применять такие, как указаны на схеме. Но если придется подбирать замену, то необходимо учитывать, что они должны открываться напряжением на затворе 5В и, конечно же, должны выдерживать ток не ниже 10А. Подойдут, например, транзисторы с маркировкой 40N03GР, которые иногда используются в тех же БП формата АТХ, в цепи стабилизации 3.3В.
Диод Шоттки D2 можно взять из того же БП, из цепи +5В, которая у нас не используется. Элементы D2, Т1 иТ2 через изолирующие прокладки размещаются на одном радиаторе площадью 40 квадратных сантиметров. Буззер EP1- со встроенным генератором, на напряжение 8-12 В, громкость звучания можно подрегулировать резистором R13.
Жидкокристаллический индикатор – WH1602 или аналогичный, на контроллере HD44780, KS0066 или совместимых с ними. К сожалению, эти индикаторы могут иметь разное расположение выводов, так что, возможно, придется разрабатывать печатную плату под свой экземпляр
Программа
Управляющая программа содержится в папке «Программа» Конфигурационные биты (фузы) устанавливаются следующие:
Запрограммированы (установлены в 0):
CKSEL0
CKSEL1
CKSEL3
SPIEN
SUT0
BODEN
BODLEVEL
BOOTSZ0
BOOTSZ1
все остальные - незапрограммированы (установлены в 1).
Наладка
Итак, блок питания переделан и выдает напряжение около 10В. При подключении к нему исправного блока управления с прошитым МК, напряжение должно упасть до 0.8..15В. Резистором R1 устанавливается контрастность индикатора. Наладка устройства заключается в проверке и калибровке измерительной части. Подключаем к клеммам аккумулятор, либо блок питания напряжением 12-15В и вольтметр. Заходим в меню «Калибровка». Сверяем показания напряжения на индикаторе с показаниями вольтметра, при необходимости, корректируем кнопками «<» и «>». Нажимаем «Выбор». Далее идет калибровка по току при КУ=10. Теми же кнопками «<» и «>» нужно выставить нулевые показания тока. Нагрузка (аккумулятор) при этом автоматически отключается, так что ток заряда отсутствует. В идеальном случае там должны быть нули или очень близкие к нулю значения. Если это так, это говорит о точности резисторов R5,R6,R10,R11,R8 и хорошем качестве дифференциального усилителя. Нажимаем «Выбор». Аналогично - калибровка для КУ=200. «Выбор». На дисплее отобразится «Готово» и через 3 сек. устройство перейдет в главное меню.
Калибровка окончена. Поправочные коэффициенты хранятся в энергонезависимой памяти. Здесь стоит отметить, что если при самой первой калибровке значение напряжения на ЖКИ сильно отличается от показаний вольтметра, а токи при каком - либо КУ сильно отличаются от нуля, нужно применить (подобрать) другие резисторы делителя R5,R6,R10,R11,R8, иначе в работе устройства возможны сбои. При точных резисторах (с допуском 0,1-0,5%) поправочные коэффициенты равны нулю или минимальны. На этом наладка заканчивается. Если же напряжение или ток зарядного устройства на каком-то этапе не возрастает до положенного уровня или устройство «выскакивает» в меню, нужно ещё раз внимательно проверить правильность доработки блока питания. Возможно, срабатывает защита.
Весь материал одним архивом можно скачать

Краткое описание:

  • Точная калибровка тока и напряжения
  • Использование зарядного устройства без ПК
  • 12 профилей (данные хранятся в зарядном устройстве)
  • 17 различных параметров на каждую батарею, 5 редактируемых в приборе, 12 на программное обеспечение для ПК
  • Параметры редактируемые в приборе

    • Тип аккумулятора
    • Ёмкость аккумулятора
    • Количество ячеек
    • Зарядный ток
    • Разрядный ток

    Параметры редактируемые автономно (с помощью ПК)

    • Напряжение окончания заряда (все типы)
    • Дельта пик напряжение (NiCd и NiMh)
    • Максимальное напряжение заряда (LiPo и SLA)
    • Зарядный конечный ток (LiPo и SLA)
    • Максимальная ёмкость заряда

    Общие параметры зарядного устройства (с помощью программного обеспечения)

    • Выбор аккумулятора - профиля
    • Максимальный ток заряда
    • Максимальный ток разряда
    • Напряжение и ток калибровки
    • Настраиваемые поля приветствия (две стрки)

    Возможность заряжать:

    1. Никель-кадмиевый
    2. Никель-металл
    3. Литий-полимерная
    4. Герметичные свинцово-кислотные

    Работа с программным обеспечением


    Запускаем программу Universal_manager.exe , справа выбираем COM порт (1-16), подсвечиваются только действующие порты.

    Backup and Restore

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

    Charger Parameters

    Actual Profile - (0-11) профили настройки, все настройки отображенные ниже можно сохранить в профиль, далее выбирая профиль в зарядке можно выбрать те или иные настройки сохраненные ранее.

    MAX charge current - (0-255) максимальный ток заряда в Амперах, заряд будет ограничен этим значением тока.

    MAX discharge current - (0-255) максимальный ток разряда в Амперах, разряд будет ограничен этим значением тока.

    Buzzer frequency - (50-10000) частота динамика в Гц. С какой частотой будет звучать buzzer .

    R6

    R5 - (0-65536) корректировка сопротивления резистора в Ом.

    Current pick-up sens - (0-65535) чувствительность датчика тока

    Для датчика тока LTS-25NP: 25000

    Для датчика тока ACS750-50: 40000

    Suspended action - (0-2) при запуске программы выполняет действие, только при условии что кнопки не нажаты, почему-то работает только один раз, при следующем запуске записывается как "0", абсолютно непонятная функция.

    0-ничего не делать

    First hello line -(16 символов) строка приветствия. Когда зарядка включается отображается надпись на первой строчке.

    Second hello line -(16 символов) строка приветствия. Когда зарядка включается отображается надпись на второй строчке.

    Profiles Parameters

    Cell chemistry -(0-3) выбор типа аккумулятора :

    0:NiCd, 1:NiMh, 2:LiPo, 3:SLA

    Cell capacity -(100-25500) ёмкость аккум. в мА.

    Number of cells -(1-19) количество банок аккум.

    Charge current -(0.1-25.5) коэффициент тока заряда, как правило 1.0 коэфф. При токе в 1000мА и коэфф. 1.0 зарядный ток равняется 1А.

    Discharge current -(0.1-25.5) коэффициент тока разряда, как правило 4.0-6.0 коэфф. При токе в 1000мА и коэфф. 4.0 разрядный ток равняется 4А.

    Charge peak inhibit -(0-255) дельта-пиковый контроль, типичное значение 5-10 минут. Если аккум. долгое время не использовался то время следует увеличить.

    Cutoff NiCd -(0-2550) минимальное напряжение NiCd акум. процесса разряда в мВ, типичное значение 700-900мВ.

    Cutoff NiMh -(0-2550) минимальное напряжение NiMh акум. процесса разряда в мВ, типичное значение 900-1100мВ.

    Cutoff LiPo -(2500-3500) минимальное напряжение LiPo акум. процесса разряда в мВ, типичное значение 3000мВ.

    Cutoff SLA -(1500-2500) минимальное напряжение SLA акум. процесса разряда в мВ, типичное значение 2000мВ.

    Delta peak NiCd -(0-255) дельта-пик, используется когда зарядка завершена, типичное значение 5-10мВ.

    Delta peak NiMh -(0-255) дельта-пик, используется когда зарядка завершена, типичное значение 3-7мВ.

    Max. voltage LiPo -(3500-4500) максимальное напряжение в мВ прекращения заряда, после достижения этого порога, зарядка переходит из режима постоянного тока в постоянное напряжение, типичное значение 4200мВ.

    Max. voltage SLA -(2000-3000) максимальное напряжение в мВ прекращения заряда, после достижения этого порога, зарядка переходит из режима постоянного тока в постоянное напряжение, типичное значение 2500мВ.

    Final curr. LiPo

    Final curr. SLA -(0-255) финальный ток заряда в % от ёмкости акум., типичное значение 3-20%.

    Maximum charge -(0-255) максимальное значение заряда в % от ёмкости акум., типичное значение 120 или 70-80. Зарядка будет прекращена, когда данная ёмкость будет передана акум.

    Запускаем программу Universal_display.exe в колонке справа выбераем порт подключения из активных (которые есть в ПК). Внимание программа Universal_display.exe не может работать одновременно с программой Universal_manager.exe т.к. при выборе порта программа занимает порт для обменна данными.

    В файле Universal_Charger.ini находятся настройки для корректного отображения данных на ПК. После каллибровки по току и напряжению считываем значения R5, R6, Current scaleс помощью программы Universal_manager.exe, потом вносим данные в файл Universal_Charger.ini только после этого данные будут правильно отображатся на экранне Universal_display.exe.

    Current scale=25000

    R 5 R 6 исчесляются в единицах Ом, значение тока 25000 типичное для датчика тока LTS-25NP

    Вкладка Display - для отображения процесса заряд/разряд. Отображается три графика - напряжение, ток и ёмкость.

    PWM drive - ШИМ транзисторных ключей при заряде или разрядке АКБ. Максимальное значение 1023 для 10-бит ШИМ.

    В правой части экрана есть кнопка “RECORD on FILE” для записи данных в файл Monitor_hhmmss_DDMMYY.txt

    В имени файла отображается время, день, месяц и год.

    Запись данных обновляется с частотой 80мс одна строка.

    При запуске заряда/разряда нажимаем кнопку “RECORD on FILE” только начиная с этого момента данные начинают записыватся в файл, при отжатии кнопки данные прекращают запись.

    Описание работы в меню прибора


    Вся информация отображается на дисплее, 16 символов на 2 строки. Для управления используется четыре кнопки:

    [+] вверх, следующее

    [- ] вниз, предыдущее

    ввод

    сброс, отмена, используется при аварийном режиме или для перезагрузки МК

    Принцип управления зарядным устройством основан на выборе профиля. Всего 12 профилей. В каждом профиле можно настроить какой тип АКБ будет заряжаться, количество и прочие электрические характеристики. Профили можно редактировать с помощью простого интерфейса программы на ПК, с последующей загрузкой в зарядное устройство. При включении прибора подождите процесс инициализации, не выключайте прибор и не предпринимайте никаких действий, просто подождите когда закончится процесс инициализации . После включения прибора необходимо пройти калибровку тока и напряжения, калибровка делается только после первого включения в дальнейшем калибровать не нужно.

    Выбор профиля

    Процесс заряда заключается в выборе профиле по которому и будем заряжать АКБ.

    Распишем, что отображено на экране:

    Pack# 1 (1-12) - номер профиля

    LiPo (NiCd, NiMh, LiPo, SLA) - тип АКБ

    x 2 (1-19) - количество АКБ соединенных последовательно, к примеру АКБ из двух LiPo каждая по 3,7В, значение будет - 2

    K 2000 (100-25500) - ёмкость АКБ в мА

    C 1.0 (0,1-25,5) - ток заряда, к примеру 1,0, АКБ ёмкостью 2000мА, будет заряжаться током 2000мА

    D 4.0 (0,1-25,5) - ток разряда, к примеру 4,0, АКБ ёмкостью 2000мА, будет разряжаться током 8000мА

    Процесс заряда

    В процессе заряда на дисплее отображаются реальные данные, а не уставки.

    Chrg LiPo - тип заряжаемого АКБ

    5.49A - текущий ток заряда АКБ

    12.345V - текущее напряжение заряда на АКБ

    2690mAh - на какую ёмкость уже заряжен АКБ

    По окончанию заряда прозвучит три коротких звуковых сигнала и на дисплее будет следующая информация:

    На дисплее отображается статус заряда, напряжение до которого заряжен АКБ и ёмкость. Вентилятор еще продолжает работать охлаждая радиатор. Нажатием кнопки ОК вентилятор отключается и осуществляется переход в основное меню.

    Статусы окончания заряда могут быть следующие:

    Standard:

    1)Для NiMh и NiCd - заряжается данные АКБ постоянным значением тока. После начального заряда 5мин устройство сравнивает напряжение АКБ с пиковым значением напряжения заряда. Дельта пик по умолчанию 5мВ для NiMh и 10мВ для NiCd.

    2)Для LiPo и SLA - на начальном этапе заряжается фиксированным током по достижению 4,2В для LiPo и 2,5В для SLA после этого переходит на заряд фиксированным напряжением. Когда значение тока станет ниже 5% по умолчанию, заряд окончен.

    Timeout - отключение АКБ по истечении времени заряда ёмкость на 120% от номинальной, этот параметр настраивается через ПК.

    Error - два варианта:

    1)обрыв цепи АКБ или батарея удалена,

    2)слишком большой ток

    User break - если вручную остановить процесс заряда нажатием на кнопку ОК.

    Состояния заряда фиксируется в памяти МК, если процесс прервался потерей питания то при включении прибора, отобразится окно приветствия, процесс зарядки продолжится с того момента на котором был окончен. Если необходимо прервать процесс нажмите кнопку “break” (сброс).

    Процесс разряда

    На экране отображаются реальные данные полученные в процессе разрядки АКБ.

    5,49А текущий ток

    12,345V текущее напряжение

    2690mAh ёмкость на которую уже разряжен акумм.

    После окончания разряда вентилятор еще работает, для останова вентилятора и возврата в меню воспользуйтесь кнопкой ОК.

    Статусы окончания разряда:

    Standard - стандартный процесс, разрядка заканчивается при разряде АКБ до напряжения:

    Error - ошибка, если ток разряда слишком большой

    User break - если пользователь нажал кнопку ОК (останов разряда)

    Состояния разряда фиксируется в памяти МК, если процесс прервался потерей питания то при включении прибора, отобразится окно приветствия, процесс разрядки продолжится с того момента на котором был окончен. Если необходимо прервать процесс нажмите кнопку “break” (сброс).

    Профильный настройки

    Выбирает кнопками вверх/вниз значение, для перехода в следующий пункт жмем ОК.

    Battery type : выбор типа АКБ:

    0 - NiCd: Nickel Cadmium

    1 - NiMh: Nickel Metal hydride

    2 - LiPo: Lithium Polymer

    3 - SLA: Sealed Lead Acid

    После выбор АКБ переходим к следующему шагу.

    Battery pack capacity : ёмкость АКБ

    Значение ёмкости используется для отключения процесса заряда, при заряде на 120% от номинальной ёмкости. После выбора переходим в следующий пункт.

    Number of cells : количество банок АКБ

    К примеру 12В свинцовый аккумулятор, чтоб зарядить выбираем SLA 6шт.

    Типичные значения напряжения:

    NiCd and NiMh: 1.2 V/банку

    LiPo: 3.7 V/банку

    SLA: 2 V/банку

    Переходим в следующий пункт.

    Charge current : выбор тока заряда (0,1-25,5)

    Выбираем коэффициент, к примеру выберем 1, это значит, что при ёмкости АКБ в 2000мА ток заряда будет 2000мА.

    Выбор тока разряда (0,1-25,5)

    Выбираем коэффициент, к примеру выберем 4, это значит, что при ёмкости АКБ в 2000мА ток разряда будет 8000мА.

    PC management , подключение к ПК

    Эта функция нужна только для редактирование данных через ПК, для редактирования дополнительных параметров “advanced parameters” . Только выбрав этот режим можно соединится с ПК, в любом другом режиме невозможно соединится с программой Universal_manager.exe. Любое нажатие на кнопку возвращает в главное меню.

    Volt calibration - калибровка напряжения

    Эта функция нужна для корректировки показаний напряжения. Подключаем параллельно АКБ вольтметр эталонный. Подключаем батарею или любой источник напряжения. Кнопками вверх/вниз установите значение на приборе равное значению эталонного вольметра, по окончанию калибровки нажмите ОК.

    При настройке пользуйтесь функцией автоповтора, нажатием на кнопку более 1сек. Если с помощью прибора не удается настроить можете настроить с помощью ПК. Запустите программу Universal_manager и в Charger parameters настройте значение R5 и R6.

    Ampere calibration - калибровка тока

    Желательно с помощью ПК настроить и зашить в МК значение чувствительности датчика тока. Запускаем программу Universal_manager и в Charger parameters выставляем значение тока. К примеру 25000 мВ/Ампер для датчика тока LTS-25NP. Подключаем эталонный амперметр к выводам прибора т.е. закорачиваем амперметром вывода прибора. Кнопками верх и вниз корректируем показания и жмем ОК. Блок питания должен выдать 2А, ток будет задан 2А автоматически.

    Дополнение:

    К примеру покажу как выставить ток чувстительности который задан в описании к датчику тока.

    При выборе датчика тока необходимо учитывать (и эксперементов с шунтом), что при токе 0 Ампер на выходе будет 2,5В (половину питающего напряжения).

    Внимание! Нет защиты от переполюсовки, при переполюсовке сгорает датчик тока.

    Вы не можете скачивать файлы с нашего сервера прошивку, исходник, програмное обеспечение, документацию.

    Данное зарядное устройство предназначено для независимой автоматической зарядки трёх малогабаритных АКБ, размера ААА, АА. Весь процесс зарядки индицируется светодиодами. Если аккумулятор не разряжен до 1-го вольта, то ЗУ проведёт его разрядку и только потом начнётся зарядка, по окончании которой ЗУ проверит работоспособность аккумулятора, и если он будет неисправен, то подаст соответствующий сигнал.
    За основу своей конструкции, я взял схему из журнала «Радио» № 10 за 2007 год - «Зарядное устройство на микроконтроллере PIC12F675», стр. 33-35.

    Схема зарядного устройства и схема блока питания, приведены ниже на рисунках 1 и 2. В оригинальном зарядном устройстве, был использован импульсный блок питания на микросхеме TNY264, который подробно описан в журнале "Радио" за 2006 год, стр. 33-34, и в качестве которого можно использовать любой подходящий блок питания, с выходным напряжением 9 - 12 вольт, и током нагрузки от 1,5 ампера.

    Рисунок 1.
    Схема электрическая принципиальная.

    Рисунок 2.
    Схема электрическая принципиальная блока питания.

    Программа для применённого в схеме микроконтроллера PIC12F675, постоянно дорабатывается. На данное время есть версия прошивки ZU_12F675_V_6.5.1. Я прошил версией ZU_12F675_V_6.4. Работает нормально. В прикреплённом архиве имеются все эти прошивки.
    Данное зарядное устройство так же можно собрать и на микроконтроллере PIC12F683, программа для него написана пользователем kpmic с форума, ссылка на который приведена ниже и основательно отличается от версий для МК 12F675.
    На данном микроконтроллере я работу устройства не проверял, а прошивка для него также имеется в прикреплении.
    Да, схема и плата при применении данного микроконтроллера переделки не требует, отличие от версий для МК 12F675
    измерение напряжения производится по прерыванию АЦП..

    Работа схемы.

    После подачи питающего напряжения, МК DD1 последовательно проверяет наличие подключенных к ячейкам аккумуляторов. При отсутствии напряжения на гнезде XS1 - МК DD1 "делает вывод”, что аккумулятор не установлен и переходит к анализу состояния следующей ячейки. Когда аккумулятор подключен, MK DD1 измеряет его напряжение, и если оно более 1 В. ячейка включается на режим разрядки.
    На выводе 5 регистра DD2 появляется высокий уровень напряжения, открывается транзистор 1VT3, и через него и резистор 1R8 протекает ток разрядки около 100 мА, а светодиод 1HL2 начинает светить, индицируя этот режим.
    Как только напряжение аккумулятора станет менее 1 В, МК DD1 выключит режим разрядки и светодиод 1HL2 погаснет. Высокий уровень появится на выводе 6 регистра DD2, откроются транзисторы 1VT1 и 1VT2, начнется зарядка аккумулятора и загорится светодиод 1HL1.
    В этом режиме МК DD1 периодически измеряет напряжение на аккумуляторе, и когда оно достигнет значения 1,45 В, он начинает проверять возрастает напряжение или нет. Когда напряжение перестает увеличиваться, режим зарядки прекращается и кратковременно включается режим разрядки (загорается светодиод 1HL2) и измеряется напряжение на аккумуляторе. Если оно будет 1,1 В и менее, что свидетельствует о неудовлетворительном состоянии аккумулятора, светодиод 1HL2 станет мигать.

    При подключении к ЗУ аккумулятора, напряжение на котором менее 1 В, режим зарядки включается сразу.
    Для охлаждения элементов ЗУ применен вентилятор М1, который начинает работать при включении режима зарядки любого из аккумуляторов. Так как на него поступает напряжение питания меньше номинального (примерно 8,5 В), вращается он медленно, но производительности достаточно для охлаждения устройства. После окончания зарядки всех аккумуляторов вентилятор прекращает работу, а светодиод HL1 зеленого цвета свечения начинает мигать, показывая, что ЗУ можно отключить от сети.

    ЗУ собрал на печатке, которую сделал по размерам имеющегося корпуса

    Рисунок 3.
    Печатная плата ЗУ.

    При номиналах 1R2 24Ома - ток заряда около 0,22А и 1R8 10 Ом - ток разряда - 0,1А. Если нужны другие токи (под конкретный АКБ), то необходимо подбирать эти резисторы.

    При прошивке МК особое внимание об-ратить на калибровочный байт, прошитый на заводе. Перед программированием необходимо прочитать содержимое его памяти. В конце последней строки вместо 3FFF будет 34ХХ это и есть байт, после загрузки hex в буфер программы эту константу нужно вернуть на место вручную ! Ели затереть калибровочный байт, ЗУ не будет работать.

    Ниже на рисунке 4, он обведён красным квадратом.

    Рисунок 4.
    Скрин с калибровочным байтом.

    Если собрано все правильно, детали исправные, МК прошит как говорилось раньше, то ЗУ начинает работать сразу.
    В процессе прогонки (проверки работоспособности, проверка max тока потребления, чтобы определиться с блоком питания) проводил заряд-разряд АКБ на всех каналах по раздельно и вместе.

    У применённой мной версии прошивки, после включения устройства - кратковременно мигают светодиоды разряда.
    Если напряжение больше 1 V - включается разряд, загораются светодиоды разряда и светодиод индикации включения.
    Желтый (1HL2) - разряд до 0,9 V, красный (1HL1) - заряд, напряжение зависит от состояния аккумулятора, чем хуже аккумулятор, тем выше напряжение, может доходить до 2,5 V (зависит от внутреннего сопротивления аккумулятора).
    После окончания заряда, на 10 сек. включается желтый (разряд) и измеряется напряжение на аккумуляторе, и если оно упало до 1,1 вольта (и ниже), то мигает желтый светодиод. Аккумулятор в таком случае можно выкинуть или использовать в пультах управления. Хватает на пару месяцев.
    При тестировании использовал свой лабораторный БП:

    Рисунок 5.
    Лабораторный БП.

    Зеленый (HL1) включается при отсчете минутных интервалов, вспыхивает каждую минуту.
    Так как устройство предназначенного для длительной работы (полный цикл заряд-разряд АКБ 2,8 А/ч занял около 15 часов), то желательно проконтролировать температурный режим силовых элементов (1DA1, 1VT2 во всех каналах) в подготовленном Вами корпусе.
    Я сначала установил 1VT2 такие, как по схеме - КТ973, но в процессе работы «уж больно сильно они грелись» - до 70С. Пришлось поставить по мощнее - TIP146 (по схеме Дарлингтона, составные, аналог КТ825). Можно было в принципе оставить и КТ973, только желательно предусмотреть для них теплоотвод.
    7805 тоже порядочно греются, если есть возможность, то их тоже лучше ставить на радиатор (все три на общую пластину через изолятор).

    После всех тестов определился с параметрами необходимого БП, который должен иметь напряжение 9,5 V, и с током нагрузки 1,5 А.
    Сначала пытался использовать и «китайские» малогабаритные БП, потом принял решение собирать ИБП по подобию в оригинале, на основе микрух TNY267PN (имеются в наличии). При проектировании использовал программу PIExpertSuite. Данная прога очень упрощает изготовление ИБП.
    Вот скрин рабочего проекта:

    Рисунок 6.
    Скрин рабочего проекта схемы БП.

    Рисунок 7.
    Спецификация (список элементов).

    Схема электрическая принципиальная, применённого мной в устройстве блока питания.

    Рисунок 8.
    Схема блока питания.

    Программа PIExpertSuite очень удобная для проектирования импульсных блоков питания (правда, только на основе подобных микрух) и дает все рекомендации в использовании и применении компонентов, а также и изготовлении импульсного трансформатора.

    Изготовил плату ИБП

    Рисунок 10.
    Печатная плата ИБП.

    Собрал, проверил в работе.

    Рисунок 11.
    Собранная конструкция блока питания.

    При изготовлении ЗУ обратил внимание, что в схеме есть неточности: вывод 4 (GP3/MCLR) DD1 подключить к плюсу питания через резистор 1 к; перепутаны ноги DD1 5, 7 - это 1-й и 3-й канал (просто поменять местами при изготовлении платы).

    Рисунок 12.
    Плата БП в корпусе.

    Рисунок 13.
    Плата ЗУ в крышке корпуса.

    Рисунок 14.
    Компоновка устройства.

    По данному ЗУ есть форум журнала "Радио", где обсуждаются некоторые вопросы по повторению данной конструкции…

    Если кто-то заинтересуется данной конструкцией, и в процессе сборки, или настройки возникнут какие либо вопросы, то задавайте их на форуме. Чем смогу - обязательно помогу и отвечу на вопросы.

    В прикреплённом вложении содержатся все необходимые файлы для сборки ЗУ.

    Архив для статьи.

    В интернете существует огромное количество схем зарядных устройств (ЗУ) для автомобильных аккумуляторов. От простейших до очень сложных. В нашем случае пойдет речь о ЗУ сделанном на микроконтроллере (МК) Atmega8. Использование МК в отличие от схемы на транзисторах позволяет внедрить очень богатый функционал для ЗУ. К примеру в данном зарядном я решил внедрить следующие функции.

    1. Простота в управлении. Достаточно одного энкодера. Повернул по часовой стрелке - заряд включился. Вращением по часовой стрелке или против часовой выбирается ток заряда. Энкодер решил выбрать с тактовым нажатием. Нажимая на него можно будет войти в меню с настройками дополнительных функций.

    2. Ток заряда будет до 5А. Хотя у меня в автомобиле стоит батарея 85А/ч мне для заряда хватит и 5А, просто на заряд уйдет немного больше времени. Однако при необходимости можно будет без глобальных переделок и перепрошивки МК увеличить ток заряда до 10А.

    3. Менять ток заряда можно будет с шагом до 0.1А. Минимальный ток можно будет выбрать до 0.1А. Это значит можно заряжать и батареи маленькой емкости. Причем если энкодер вращать чуть быстрее, шаг увеличения/уменьшения тока заряда будет работать в пределах 0.5 А.

    4. Батарея будет заряжаться до напряжения 14.4 вольт.

    5. На дисплей будет выводится информация о текущем токе заряда и напряжении на батарее, так же будет работать индикатор заряда батареи, примерно как в мобильном телефоне. Мне показалось что так будет более наглядно.

    6. Обязательно должна быть защита от замыкания клемм ЗУ. К примеру если закоротить клеммы между собой и при этом включить зарядник, то разумеется это не должно принести ему вред. И вообще пока не будет подключена батарея на клеммах не будет никакого напряжения. Так же если по ошибке была подключена батарея не с соблюдением полярности, включение заряда будет невозможно. Вся эта защита будет реализована программно аппаратным способом.

    7. Заряд батареи должен быть полностью автоматизирован. Это вполне возможно, так как будет использоваться МК. Автоматизация процесса заряда должна исключать участие человека. Это значит подключил батарею, выбрал ток заряда и на этом все. Все остальное должно сделать само зарядное. А именно, поддержание выбранного зарядного тока в процесе заряда. Если батарея неисправна и заряд дальше не возможен, батарея должна быть автоматически отключена, в противном случае она будет просто бесконечно кипеть, а нам это не надо.

    8. Показалось, что удобна будет функция "хранение батареи зимой". Как ни крути, абсолютно любая батарея в природе имеет свой внутренний саморазряд. Это значит, что если просто оставить без присмотра батарею на определенный срок, то из-за тока саморазряда она разрядится, что в итоге приведет к сульфатации пластин. А для батареи это смерть. Причем время саморазряда и сульфатации не такое уж и большое. Порой достаточно пару месяцев. Чтобы этого не произошло и будет внедрена функция "хранение батареи зимой". Работает это просто, подключаем зарядник к батарее, причем батарею не нужно вынимать из автомобиля. Далее ЗУ будет раз в пол часа смотреть какое же напряжение на батарее. Если напряжение упало ниже нормы, включится автоматический заряд, после окончания цикла заряда, ЗУ опять перейдет в режим контроля напряжения на батарее. Причем порог срабатывания выставляет сам пользователь в меню и силу тока тоже можно выбрать в меню. Лично я для себя установил порог 12.5 вольт и сила тока заряда 0.5А. Зярадка малым током более эффективна чем большими токами.

    9. Возможно будет полезна функция "продолжение заряда после отключения электричества". Хотя такое совпадение может произойти раз в 150 лет, тем не менее эта функция есть. Зарядное всегда "помнит", что включен процесс заряда и если произойдет отключение/включение элетричества, заряд просто продолжится дальше. В любом случае все функции можно отключить или включить по выбору в меню. Если отключить все функуции, то зарядное просто станет "обычным зарядным" которое зарядит батарею и выключится.

    10. Ну и напоследок в ЗУ будет работать программный таймер. Таймер будет постоянно тикать вперед 0..1,2 и так далее. Если батарея заряжается, а это видно будет по тому, как на ней будет постепенно подниматься напряжение до 14.4 вольта. Так вот, как только на батарее напряжение чуть поднялось, таймер сразу сбросится в 0 и продолжить снова считать 0...1,2... Но если батарея неисправна или старая, или не совсем правильна плотность электролита, то при определенном пороге заряд дальше невозможен. И этот порог может быть ниже 14.4 вольта. Как быть? В таком случае таймер перестанет сбрасываться. И дотикав до определенного момента, он попросту выключит заряд с сообщением на дисплей. Дальше кипятить батарею не имеет смысла. Таймер можно выключить в меню или включить, задав диапазон тикания от 30 мин до 3х часов. На дисплее можно будет видеть как таймер будет тикать и сбрасываться время от времени, если заряд протекат в штатном режиме.

    Теперь перейдем к обсуждению схемы зарядника.

    Блок питания.
    В данном случае будем использовать любой импульсный блок питания (ИБП). Выходное напряжение от 16 до 20 вольт. Так как ток заряда будет до 5А, то выходной ток ИПБ должен быть с запасом где-то до 6А. Я использовал ИПБ MEAN WELL RS-75-15 у которого выходное напряжение 15 вольт, но в блоке есть подстроечный резистор которым можно поднять напряжение до 16.5 вольт. Преимущество ИПБ в том что он легкий, компактный и имеет уже втроенную защиту от повышенных токов, замыканий и пр. Поэтому об этом уже не надо особо заботиться. Впринципе подходит любой другой ИПБ. Хоть с ноутбука. Если в вашем ИПБ ток менее 5А, его тоже можно использовать, просто нужно следить за тем чтоб не выставлять ток заряда более чем может выдать ИПБ. Трансформатрный блок питания в нашем случае не подходит. Зарядное на трансформаторе это отдельная тема и отдельная статья. Итак схема питания будет выглядеть примерно так.

    Конденсатор на 1000uF в принципе можно не ставить так как он уже установлен в импульсном блоке питания на выходе, но если установить то хуже не будет. Конденсатор С2 лучше если будет электролит, но я поставил керамический smd. Стабилизатор 7805 нужен чтобы питать МК, дисплей LCD и прочую обвязку.

    Теперь подключим батарею и полевой транзистор.



    Как видим, все просто. Транзистором будем регулировать силу тока через батарею. Реле К1 будет брать на себя роль защиты, будет включаться только тогда, когда батарея подключена и подключена правильно. Цементный резистор R18 выполняет роль шунта. При токе в 5А на нем будет напряжение 0.5 вольт. Это напряжение усилим и подадим на АЦП МК, так МК будет знать какой ток в цепи заряда и это значение можно будет вывести на дисплей. Теперь пора подключать МК к схеме.

    Как видим схема немного усложнилась. Но не сильно. К выводу PB0 подключим реле, любое реле на 12V, контакты которого должны выдержать ток в 5А. Последовательно с реле надо подключить гасящий резистор примерно в 200 Ом, так как питаться то реле у нас будет от напряжения 16-20 вольт. Параллельно катушке реле надо установить защитный диод (любой, поставил LL4148) , без диода может пробиться транзистор VT4. VT4 может быть любой тип npn, использовал MMBT4401LT1 .

    К выводам PD7, PC1, PC0 подключен энкодер. Использовался этот или этот . На выводы к которым подключен энкодер необходимо подключить конденсаторы 0.1 uF и подтягивающие резисторы по 10к. Это уменьшит контактов.

    Дисплей использовался на две строки по 16 символов. Дисплей так же имеет встроенный русский шрифт. Если подключить дисплей без русских символов, на экране будут крякозябры. Так как у МК Atmega8 не сильно много ног, то дисплей подключил по 4х битной шине. Выводы дисплея DB3-DB0 не используются.

    К выводу МК PB2 подключен диод шоттки BAT54S , два конденсатора 0.1uF и резистор 100 Ом. Зачем это нужно? Дело в том что в схеме используется операционный усилитель ОУ LM358 который не "rail to rail". В таких ОУ без отрицательного напряжения питания на минусовом выводе питания, на выходе ОУ никогда не будет 0 вольт. Поэтому эта цепочка элементов подключенная к выводу PB2 создает отрицательное напряжение где то -4V для питания ОУ. Для того чтобы цепочка на выводе PB2 заработала и генерировала -4V, на нее необходимо подать ШИМ сигнал со скважностью 50%. Таким образом на выводе PB2 всегда присутствует ШИМ с частотой 62.5 кГц.

    На выводе PB3 так же всегда присутствует ШИМ, но скважность сигнала в данном случае от 0 до 100% уже регулируется вращением энкодера. Резистор R18 и конденсатор С11 составляют интегрирующую цепочку сглаживают ШИМ в постоянное напряжение. Резисторы R19 и подстроечный R20 являются делителем напряжения. Как настроить R20? Подключаем мультиметр к выводу PB3 и вращаем энкодер до тех пор, пока прибор не покажет 2.5 Вольта. Далее вращаем подстроечный резистор R20 так чтобы на неинвертирующем выводе ОУ было напряжение 0.25 вольта. На этом настройка R20 закончена.

    Как работает регулировка и управление транзистором? Предположим что на неинвертирующем выводе ОУ (+) 0.5 вольт. Одно из свойств ОУ это то, что он стремиться к тому, чтоб уровнять разность потенциалов между его двумя входами. Делает это он используя свой выход, повышая или понижая на нем напряжение. Итак на выводе (+) 0.5 вольт, а на выводе (-) 0 вольт. Что дальше? ОУ сразу же начнет повышать напряжение на выходе, который подключен к затвору транзистора IRF540. Транзистор начинает открываться. Через батарею, транзистор и шунт начинает течь ток. Текущий ток вызывает падение напряжение на шунте R18. ОУ будет открывать транзистор до тех пор пока на шунте не будет напряжение 0.5 вольт. Напряжение с шунта подается через R13 на вывод (-). Как только на выводе (-) будет 0.5 вольта (такое же как и на выводе (+)), ОУ перестанет открывать транзистор. При этом ток заряда будет равен 5А.

    Если энкодером уменьшить напряжение на выводе (+) до 0.25 вольта, ОУ уменьшит напряжение на затворе транзистора до такой величины, чтоб на выводе (-), так же стало 0.25 вольта, данное значение соответствует току заряда в 2.5А. Получается что регулировка тока заряда осуществляется аппаратным способом с помощью ОУ. А это очень хорошо, так как ОУ никогда не зависнет и скорость раекции мгновенная. Данная схема регулировки является обычным линейным источником тока. Удобство данной схемы в том что она является простой, но минус в том, что вся разность напряжения между импульсным блоком питания и напряжением на батарее выделяется в виде тепла на транзисторе.

    К примеру ИПБ выдает 20 вольт, напряжение на батарее в начале ее заряда 12 вольт, а ток заряда 5А. Какая мощность выделиться на трназисторе? (20-12)*5=40 Вт. 40Вт это очень много!!! Нужен здоровенный радиатор и пять вентиляторов. Так никуда не годиться. Хотя транзистор IRF540 выдержит и 150 ватт, разогревать транзистором зарядник нет смысла. Как уменьшить выделение тепла? Можно понизить напряжение ИПБ например до 16 вольт. Тогда (16-12)*5 =20 Вт в два раза меньше уже лучше. Но нагрев можно сделать еще меньше до 5 ватт и менее. Каким образом?

    В ИПБ подобного типа как MEAN WELL RS-75-15 всегда есть подстроечный резистор, которым можно регулировать напряжение на выходе в пределах 10%. Это значит от 13.5 до 16.5, в моем случае получилось от 13 до 17 вольт. Можно выпаять из ИПБ подстроечник, а вместо него впаять вывод МК, таким образом мы сможем с помощью МК регулировать напряжение на выходе ИПБ, это позволит снизить выделение тепла на транзисторе до минимума. К примеру если на батарее 12 вольт, понижаем напряжение до 13 вольт и получаем (13-12)*5=5 Вт тепла на транзисторе, лучше чем 40. Итак модернезируем схему


    В выводу PB1 подключаем оптрон PC123 или подобный ему. На выводе PB1 так же всегда дежурит шим сигнал который интегрируется цепочкой R22 и C13. В ИБП выпаиваем подстроечный резистор и вместо него впаиваем обычный на 1.2 кОм. Вот теперь МК может управлять напряжением на выходе ИБП через оптрон. Когда оптрон выключен напряжение на выходе ИБП минимально, когда включен, резистор R23 шунтируется на землю, напряжение поднимается. Плавно закрывая/открывая оптрон с помощью ШИМ сигнала на выводе РВ1, плавно регулируем напряжение на выходе ИБП.

    Чтабы знать когда и на сколько регулировать напряжение на выходе ИБП, надо знать сколько вольт вообще на силовом транзисторе. Нам то надо напряжение на выходе ИБП понизить настолько, чтоб разница между напряжением на батарее и напряжением на выходе ИБП была допустимо минимально. Для этого выводом РС2 используя АЦП МК измеряем напряжение на стоке транзистора. Это делается с помощью делителя R9 и R10. Теперь зная необходимые параметры, программа в МК будет сама контролировать скважность ШИМ на выводе РВ1.

    Теперь осталось совсем немного. Это измерять ток в цепи заряда и выводить его на дисплей. И еще осталось измерить напряжение на батарее и так же вывести его на дисплей.

    Напряжение на батарее измеряем дифференциальным способом. Значение снимаем с вывода РС5. Резисторы R5 и R6 должны быть ровно по 3кОм, а резисторы R2 и R4 по 1кОм, желательно точность не менее 1%, у меня таких не было поэтому R4 установил подстроечным. Суть в том, что при таких номиналах резисторов отношение напряжений на входах ОУ и на его выходе составляет 3:1. При изменении напряжения от 0 до 15 вольт на батарее, на выходе ОУ напряжение будет меняться от 0 до 5 вольт. Для настройки данной цепочки необходимо вместо батареи подключить 14.4 вольта например с лабораторного блока питания. Далее вращаем подстроечник R4 чтоб на дисплее LCD тоже было 14.4 вольта. Настройка цепи измерения напряжения на этом закончена.

    Ток измеряется через падение напряжения на шунте, роль которого играет обычный цементный резистор. Ток у нас от 0 до 5А. Напряжение на шунте соответсвенно изменяется от 0 до 0.5 вольт. Значения резисторов R16 и R17 подобраны так, чтоб на выходе ОУ значение напряжения было от 0 до 5 вольт. Отображение тока заряда настраиваем по следующей цепочке. Подключаем батарею и делаем ток в 2.5 А. Параллельно батарее подключаем лампочку на 12 вольт. Батарею отключаем, а лампочку оставляем. Убеждаемся что ток равен 2.5 ампера. Если на шунте напряжение будет 0.25 вольт, значит ток равен 2.5А. если это не так, вращаем энкодер пока на шунте не будет 0.25 вольт. Теперь вращаем подстроечник R17 чтоб на дисплее отображался ток в 2.5А. Настройка отображения тока на этом закончена.

    Что можно было бы упростить? Например если нет желания возиться с делителем напряжения в ИБП, то все что припаяно к ноге МК РВ1, можно выкинуть из схемы. Но все остальное должно быть на своих местах. Но в таком случае вся разница напряжения между батареей и на выходе ИБП высадится в виде тепла на силовом транзисторе. В таком случае радиатор берем побольше не жалеем.

    Если нужен ток заряда до 10А, параллельно шунту припаиваем такой же шунт значением 0.1 Ом. Реле берем с контактами выдерживающем до 10А и параллельно транзистору IRF540 припаиваем еще один такой же. Транзисторы прикручиваем на здоровенный радиатор и вперед, делаем тест. Единственное, значение тока на диспле надо в уме умножать на 2. Если дисплей покажет 5А, на самом деле это уже будет 10А. Лично я сам так не делал, но в теории должно работать.

    В конце концов итоговая схема будет иметь следующий вид:


    Ничего не видно согласен, поэтому скачиваем схему отсюда .

    Пару фрагментов прошивки.

    #include "define.h" #include "init_mcu.h" #include "lcd.h" #include "text.h" #include "bits_macros.h" #include "fun.h" #include "encoder.h" #include "servise.h" #include "main.h" #include #include #include #include #include #include #include #define RELAY PB0 uint8_t lcd_time,lcd_track,lcd_count,enc_interval,enc_speed,off_charge; uint8_t U_bat_tim,I_bat_tim=255,stok_reg,energy_flag,count; uint16_t I_reg,enc_block,bat_count,bat_save,bat_off; EEMEM uint8_t energy_off; struct flag { _Bool lcd_clr_txt0: 1; _Bool lcd_clr_txt1: 1; _Bool count_timer0: 1;//для обработчика прерывания _Bool start_charging: 1;//отключение реле если при заряде бат откл. электричество _Bool ocr1a_block: 1; }flags; ISR(TIMER0_OVF_vect)//прерывание по переполнению Timer 0 раз в 1мсек. { TCNT0=0x6; flags.count_timer0=1; } void reg_I(uint16_t reg_val)//уменьшение тока заряда при достижении 14.4вольта { if (I_reg>reg_val) { I_reg=0; off_charge=1; if (OCR2!=0) { OCR2--; enc_data=OCR2; } } } void charg_off(void) { if (BitIsSet(PORTB,RELAY)) { eeprom_update_byte(&energy_off,0); } ClearBit(PORTB,RELAY); ClearBit(TCCR2,COM21);//отключили аппаратный вывод шим на пине PB3 OCR1A=0;//опустили питание импульсника до 12.5 вольт. off_charge=0; flags.start_charging=0; flags.ocr1a_block=0; enc_data=0; I_bat_tim=255; count=0; OCR2=0; } int main(void) { #if 1//инициализация MCU_init_ports(); MCU_init_adc(); MCU_init_an_comp(); MCU_init_timer0(); MCU_init_timer1(); MCU_init_timer2(); LCD_init(); LCD_string_of_flashXY(text_1,4,0); LCD_string_of_flashXY(text_2,3,1); _delay_ms(1500); LCD_string_of_flashXY(text_3,3,0); LCD_string_of_flashXY(text_4,2,1); _delay_ms(1500); LCD_clear(); if (BitIsClear(PIND,PUSH)){servise();}//вход в сервисное меню if (eeprom_read_byte(&energy_off) && u_batt()>20) { enc_data=eeprom_read_byte(&i_pusk); } else { eeprom_update_byte(&energy_off,0); } MCU_init_wdt(); sei(); #endif while(1) { wdt_reset(); uint8_t u_bat=u_batt(); uint8_t i_bat=i_batt(); #if 1/*определяем подключена ли батарея*/ if (u_bat>30)//30*0.0585=1.7 вольта на батарее, подключена { if (flags.lcd_clr_txt0==0) { flags.lcd_clr_txt0=1; LCD_clear(); } if (lcd_time>200) { lcd_time=0; LCD_string_of_flashXY(text_7,0,0); LCD_string_of_flashXY(text_9,7,0); LCD_string_of_flashXY(text_11,13,0); char buffer; uint16_t U=(u_bat*59)/100; utoa((uint8_t)U, buffer, 10);//выводим напряжение на дисплей if ((uint8_t)U>=100) { LCD_dataXY(buffer,2,0); LCD_data(buffer); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,6,0); } else if ((uint8_t)U>=10 && (uint8_t)U<=99) { LCD_dataXY(buffer,2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } else { LCD_dataXY("0",2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } uint16_t I=(i_bat*20)/100; utoa((uint8_t)I, buffer, 10);//выводим ток на дисплей c шунта if ((uint8_t)I>9) { LCD_dataXY(buffer,10,0); LCD_data("."); LCD_data(buffer); } else { LCD_dataXY("0",10,0); LCD_data("."); LCD_data(buffer); } } } else //неподключена { LCD_string_of_flashXY(text_5,0,0); LCD_string_of_flashXY(text_6,0,1); flags.lcd_clr_txt0=0; eeprom_update_byte(&energy_off,0); continue; } #endif #if 1/*обрабатываем флаг прерывания timer0*/ if (flags.count_timer0==1) { flags.count_timer0=0; lcd_time++; enc_interval++; I_reg++; lcd_track++; if (enc_speed!=100)//определяем скорость вращения энкодера. { enc_speed++; } if (enc_block>=1) { enc_block++; if (enc_block>=500) { enc_block=0; } } if (BitIsSet (PORTB,RELAY)) { bat_count++; } else { bat_count=0; bat_off=0; bat_save++; } stok_reg++; if (flags.start_charging && count!=255) { count++; } } #endif #if 1/*Получение данных от энкодера*/ if (enc_interval>=5) { enc_interval=0; OCR2=encoder();//считали значение энкодера. #if 0//временно для теста char buffer; utoa(OCR2, buffer, 10); if (OCR2>=100) { LCD_dataXY(buffer,0,1); LCD_data(buffer); LCD_data(buffer); } else if (OCR2>=10 && OCR2<=99) { LCD_dataXY("0",0,1); LCD_data(buffer); LCD_data(buffer); } else { LCD_dataXY("0",0,1); LCD_data("0"); LCD_data(buffer); } #endif if (OCR2==0)//отключаем все. { charg_off(); } else//начали заряд { if (flags.ocr1a_block==0) { flags.ocr1a_block=1; OCR1A=255;//подняли питание импульсника до 17 вольт. } SetBit(TCCR2,COM21); SetBit(PORTB,RELAY); } } #endif #if 1 /*уменьшение тока заряда при достижении 14.4вольта*/ if (u_bat==246 && OCR2>0) { reg_I(3000);//раз в 3 сек } else if (u_bat==255 && OCR2>0) { reg_I(100);//раз в 100 мсек } else if (u_bat>246 && OCR2>0) { reg_I(500);//раз в 500 мсек } #endif #if 1 /*Отключаем заряд при достижении тока заряда 0.1А*/ if (off_charge==1 && enc_block==0) { if (i_bat<=5)//5*0.02=0.1 А ток в батарее. { charg_off(); flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_13,0,1);//"БАТАРЕЯ ЗАРЯЖЕНА" } } //отключение реле если при заряде бат откл. электричество. if (OCR2>0 && i_bat>4)//4*0.02=0.08A { flags.start_charging=1; } if (flags.start_charging==1 && i_bat<2 && count==255)//2*0.02=0.04 А ток в батарее. { ClearBit(PORTB,RELAY); } #endif #if 1 /*Бегущий индикатор на дисплее*/ if (OCR2>0) { if (flags.lcd_clr_txt1==1) { flags.lcd_clr_txt1=0; LCD_string_of_flashXY(text_8,0,1); } if (lcd_track>=200) { lcd_track=0; lcd_count++; switch (lcd_count) { case 0: LCD_data_of_flashXY(text_15,8,1); break; case 1: LCD_data_of_flashXY(text_16,8,1); break; case 2: LCD_data_of_flashXY(text_17,8,1); break; case 3: LCD_data_of_flashXY(text_18,8,1); break; case 4: LCD_data_of_flashXY(text_19,8,1); break; case 5: LCD_data_of_flashXY(text_20,8,1); break; case 6: LCD_data_of_flashXY(text_21,8,1); break; case 7: LCD_data_of_flashXY(text_22,8,1); break; case 8: #if 1 if (off_charge==1) { lcd_count=5; break; } if (u_bat<232)// 13.57V/0.0585=230 на АЦП. { lcd_count=255; LCD_string_of_flashXY(text_12,8,1); } else if (u_bat<=234) { lcd_count=0; } else if (u_bat<=236) { lcd_count=1; } else if (u_bat<=238) { lcd_count=2; } else if (u_bat<=240) { lcd_count=3; } else if (u_bat<=242) { lcd_count=4; } else if (u_bat<=244) { lcd_count=5; } else { lcd_count=5; } break; #endif default:lcd_count=5; break; } } } else { lcd_count=255; if (flags.lcd_clr_txt1==0) { flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_8,0,1); } } #endif #if 1 /*Аварийный таймер отключения*/ if (bat_count>=60000 && eeprom_read_byte(&timer_time))//мсек 60000 { bat_count=0; bat_off++; #if 1//для отладки LCD_string_of_flashXY(text_37,0,1); char buffer; utoa(bat_off, buffer, 10); if(bat_off>=100) { LCD_dataXY(buffer,2,1); LCD_data(buffer); LCD_data(buffer); LCD_string_of_flashXY(text_38,5,1); } else if (bat_off>=10 && bat_off<=99) { LCD_dataXY(buffer,2,1); LCD_data(buffer); LCD_string_of_flashXY(text_38,4,1); } else { LCD_dataXY(buffer,2,1); LCD_data(" "); LCD_string_of_flashXY(text_38,4,1); LCD_dataXY(" ",7,1); } #endif } if (u_bat>U_bat_tim && off_charge==0)//сброс аварийного таймера по напряжению { bat_off=0; U_bat_tim=u_bat; } if (i_bat= eeprom_read_word(&tim_dlitl))//180 минут по умолчанию { charg_off(); LCD_string_of_flashXY(text_14,0,1); bat_off=0; flags.lcd_clr_txt1=1; } #endif #if 1/*Регулировка напряжения на выходе блока питания*/ if (stok_reg>=100) { stok_reg=0; uint8_t u_stok=u_stokk(); if (u_stok>62)//0,0195*51*2=2 вольта на стоке. { if (OCR1A!=0) { OCR1A--; } } else if (u_stok<60) { if (OCR1A!=255) { OCR1A++; } } #if 0//временно для теста char buff; utoa(u_stok, buff, 10); if (u_stok>=100) { LCD_dataXY(buff,3,1); LCD_data(buff); LCD_data(buff); } else if (u_stok>=10 && u_stok<=99) { LCD_dataXY("0",3,1); LCD_data(buff); LCD_data(buff); } else { LCD_dataXY("0",3,1); LCD_data("0"); LCD_data(buff); } #endif } #endif #if 1 /*Режим хранения батареи*/ if (bat_save>=60000 && eeprom_read_byte(&save_on)!=0) { bat_save=0; if (u_bat<=eeprom_read_byte(&u_start))//12.5V / 0.0585=213,6 на АЦП { enc_data=eeprom_read_byte(&i_pusk); } } #endif #if 1 /*Режим отключения питания*/ if (enc_data && eeprom_read_byte(&power_off) && energy_flag==0) { energy_flag=1; eeprom_update_byte(&energy_off,1); } #endif } } #if 1 //тексты на дисплей const uint8_t PROGMEM text_1="Зарядное"; const uint8_t PROGMEM text_2="устройcтво"; const uint8_t PROGMEM text_3="SIRIUS 5А "; const uint8_t PROGMEM text_4="Для АКБ 12В"; const uint8_t PROGMEM text_5="Подключи батарею"; const uint8_t PROGMEM text_6="УЧТИ полярность."; const uint8_t PROGMEM text_7="U="; const uint8_t PROGMEM text_8=" "; const uint8_t PROGMEM text_9=" I="; const uint8_t PROGMEM text_10="В "; const uint8_t PROGMEM text_11="А "; const uint8_t PROGMEM text_12=" "; const uint8_t PROGMEM text_13="БАТАРЕЯ ЗАРЯЖЕНА"; const uint8_t PROGMEM text_14="ЗАРЯД ОТКЛЮЧЕН! "; // const uint8_t PROGMEM text_15={0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 1 const uint8_t PROGMEM text_16={0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 12 const uint8_t PROGMEM text_17={0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0}; // 123 const uint8_t PROGMEM text_18={0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0}; // 1234 const uint8_t PROGMEM text_19={0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0}; // 12345 const uint8_t PROGMEM text_20={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0}; // 123456 const uint8_t PROGMEM text_21={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0}; // 1234567 const uint8_t PROGMEM text_22={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0}; // 12345678 const uint8_t PROGMEM text_23 ="Режим сохр. "; const uint8_t PROGMEM text_24 ="ВКЛ "; const uint8_t PROGMEM text_25 ="ВЫКЛ"; const uint8_t PROGMEM text_26 ="U запуска <"; const uint8_t PROGMEM text_27 =" СЕРВИСНОЕ МЕНЮ "; const uint8_t PROGMEM text_28 =" ВЫХОД ИЗ МЕНЮ "; const uint8_t PROGMEM text_29 ="I запуска "; const uint8_t PROGMEM text_30 ="Режим отключения"; const uint8_t PROGMEM text_31 ="питания "; const uint8_t PROGMEM text_32 ="Аварийный Таймер"; const uint8_t PROGMEM text_33 =" ВКЛ "; const uint8_t PROGMEM text_34 =" ВЫКЛ "; const uint8_t PROGMEM text_35 ="задержка "; const uint8_t PROGMEM text_36 =" мин"; const uint8_t PROGMEM text_37 ="T="; const uint8_t PROGMEM text_38 ="min"; #endif

    Вопросы задаем сюда dmalash@gmail com
    Если кому то нужен прошитый микроконтроллер, то его можно заказать отсюда . Все остальное естественно собираем и делаем сами.

    Сейчас немного видео и фотографий. Вот так выглядел самый первый прототип.

    Вот так выглядела первая плата.

    В последствии была сделана более цивильная плата.

    Потом был придуман корпус.

    Потом все это было собрано.

    В итоге получилось вот что.

    Скачать схему зарядного устройства можно .
    Заказать прошитый микроконтроллер можно .
    Дополнительная информация., печатная плата .
    Вопросы и пожелания [email protected]

    Описание


    Устройство предназначено для зарядки и тренировки (десульфатации) свинцово-кислотных АКБ ёмкостью от 7 до 100 Ач, а также для приблизительной оценки уровня их заряда и емкости. ЗУ имеет защиту от неправильного включения батареи (переполюсовки) и от короткого замыкания случайно брошенных клемм. В нём применено микроконтроллерное управление, благодаря чему осуществляются безопасные и оптимальные алгоритмы зарядки: IUoU или IUIoU, с последующей «добивкой» до 100%-го уровня зарядки. Параметры зарядки можно подстроить под конкретный аккумулятор (настраиваемые профили) или выбрать уже заложенные в управляющей программе. Конструктивно зарядное устройство состоит из блока питания АТ/АТХ, который нужно немного доработать и блока управления на МК ATmega16A. Всё устройство свободно монтируется в корпусе того же блока питания. Система охлаждения (штатный кулер БП) включается/отключается автоматически.
    Достоинства данного ЗУ - его относительная простота и отсутствие трудоёмких регулировок, что особенно актуально для начинающих радиолюбителей.

    Рассмотрим основные режимы работы устройства для заложенных в программу предустановок (профилей).

    1. Режим зарядки - меню «Заряд». Для аккумуляторов емкостью от 7Ач до 12Ач по умолчанию задан алгоритм IUoU. Это значит:
    - первый этап- зарядка стабильным током 0.1С до достижения напряжения14.6В
    - второй этап-зарядка стабильным напряжением 14.6В, пока ток не упадет до 0,02С
    - третий этап-поддержание стабильного напряжения 13.8В, пока ток не упадет до 0.01С. Здесь С - ёмкость батареи в Ач.
    - четвёртый этап - «добивка». На этом этапе отслеживается напряжение на АКБ. Если оно падает ниже 12.7В, включается заряд с самого начала.
    Для стартерных АКБ (от 45 Ач и выше) применяем алгоритм IUIoU. Вместо третьего этапа включается стабилизация тока на уровне 0.02C до достижения напряжения на АКБ 16В или по прошествии времени около 2-х часов. По окончанию этого этапа зарядка прекращается и начинается «добивка». Это- четвёртый этап. Процесс заряда проиллюстрирован графиками рис.1 и рис.2.

    2. Режим тренировки (десульфатации) - меню «Тренировка». Здесь осуществляется тренировочный цикл:
    10 секунд - разряд током 0,01С, 5 секунд - заряд током 0.1С. Зарядно-разрядный цикл продолжается, пока напряжение на АКБ не поднимется до 14.6В. Далее - обычный заряд.

    3. Режим теста батареи. Позволяет приблизительно оценить степень разряда АКБ. Батарея нагружается током 0,01С на 15 секунд, затем включается режим измерения напряжения на АКБ.

    4. Контрольно-тренировочный цикл (КТЦ). Если предварительно подключить дополнительную нагрузку и включить режим «Заряд» или «Тренировка», то в этом случае, сначала будет выполнена разрядка АКБ до напряжения 10.8В, а затем включится соответствующий выбранный режим. При этом измеряются ток и время разряда, таким образом, подсчитывается примерная емкость АКБ. Эти параметры отображаются на дисплее после окончания зарядки (когда появится надпись «Батарея заряжена») при нажатии на кнопку «выбор». В качестве дополнительной нагрузки можно применить автомобильную лампу накаливания. Ее мощность выбирается, исходя из требуемого тока разряда. Обычно его задают равным 0.1С - 0.05С (ток 10-ти или 20-ти часового разряда). Перемещение по меню осуществляется кнопками «влево», «вправо», «выбор». Кнопкой «ресет» осуществляется выход из любого режима работы ЗУ в главное меню.

    Основные параметры зарядных алгоритмов можно настроить под конкретный аккумулятор, для этого в меню есть два настраиваемых профиля - П1 и П2. Настроенные параметры сохраняются в энергонезависимой памяти (EEPROM-е).
    Чтобы попасть в меню настроек нужно выбрать любой из профилей, нажать кнопку «выбор», выбрать «установки», «параметры профиля», профиль П1 или П2. Выбрав нужный параметр, нажимаем «выбор». Стрелки «влево» или «вправо» сменятся на стрелки «вверх» или «вниз», что означает готовность параметра к изменению. Выбираем нужное значение кнопками «влево» или «вправо», подтверждаем кнопкой «выбор». На дисплее появится надпись «Сохранено», что обозначает запись значения в EEPROM.

    Значения настроек:


    1. «Алгоритм заряда». Выбирается IUoU или IUIoU. См. графики ниже.
    2. «Емкость АКБ». Задавая значение этого параметра, мы задаем ток зарядки на первом этапе I=0.1C, где С- емкость АКБ В Ач. (Таким образом, если нужно задать ток заряда, например 4.5А, следует выбрать емкость АКБ 45Ач).
    3. «Напряжение U1». Это напряжение, при котором заканчивается первый этап зарядки и начинается второй. По умолчанию задано значение 14.6В.
    4. «Напряжение U2». Используется только, если задан алгоритм IUIoU. Это напряжение, при котором заканчивается третий этап зарядки. По умолчанию - 16В.
    5. «Ток 2-го этапа I2». Это значение тока, при котором заканчивается второй этап зарядки. Ток стабилизации на третьем этапе для алгоритма IUIoU. По умолчанию задано значение 0.2С.
    6. «Окончание заряда I3». Это значение тока, по достижению которого зарядка считается оконченной. По умолчанию задано значение 0.01С.
    7. «Ток разряда». Это значение тока, которым осуществляется разряд АКБ при тренировке зарядно-разрядными циклами.

    Алгоритм заряда - IUoU



    Алгоритм заряда - IUIoU



    Выбор и переделка блока питания

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

    Из всего многообразия моделей блоков питания нам лучше всего подходит блок формата АТX, мощностью не менее 250 Вт. Нужно только учесть следующее. Подходят лишь те блоки питания, в которых применён ШИМ-контроллер TL494 или его аналоги (MB3759, КА7500, КР1114ЕУ4).

    Итак, блок питания имеется. Сначала необходимо его проверить на исправность. Для этого его разбираем, вынимаем предохранитель и вместо него подпаиваем лампу накаливания 220 вольт мощностью 100-200Вт. Если на задней панели БП имеется переключатель сетевого напряжения, то он должен быть установлен на 220В. Включаем БП в сеть, для ATX нужно замкнуть зелёный и чёрный провода на большом разъёме. Если лампочка не светится, кулер вращается, а все выходные напряжения в норме - значит, нам повезло и наш блок питания рабочий. В противном случае, придётся заняться его ремонтом. Оставляем лампочку пока на месте.

    Для переделки БП в наше будущее зарядное устройство, нам потребуется немного изменить «обвязку» ШИМ-контроллера. Несмотря на огромное разнообразие схем блоков питания, схема включения TL494 стандартная и может иметь пару вариаций, в зависимости от того, как реализованы защиты по току и ограничения по напряжению. Схема переделки показана на рис.3. На ней показан только один канал выходного напряжения: +12В. Остальные каналы: +5В,-5В, +3,3В не используются. Их обязательно нужно отключить, перерезав соответствующие дорожки или выпаяв из их цепей элементы. Которые, кстати, нам могут и пригодиться для блока управления. Об этом - чуть позже. Красным цветом обозначены элементы, которые устанавливаются дополнительно. Конденсатор С2 должен иметь рабочее напряжение не ниже 35В и устанавливается взамен существующего в БП. После того, как «обвязка» TL494 приведена к схеме на рис.3, включаем БП в сеть. Напряжение на выходе БП определяется по формуле: Uвых=2,5*(1+R3/R4) и при указанных на схеме номиналах должно составлять около 10В. Если это не так, придется проверить правильность монтажа. На этом переделка закончена, можно убирать лампочку и ставить на место предохранитель.

    Схема и принцип работы


    Все основные процессы выполняет микроконтроллер. В его память записывается управляющая программа, в которой и заложены все алгоритмы. Управление блоком питания осуществляется с помощью ШИМ с вывода PD7 МК и простейшего ЦАП на элементах R4,C9,R7,C11. Измерение напряжения АКБ и зарядного тока осуществляется средствами самого микроконтроллера - встроенным АЦП и управляемым дифференциальным усилителем.

    Напряжение АКБ на вход АЦП подается с делителя R10R11, Зарядный и разрядный ток измеряются следующим образом. Падение напряжения с измерительного резистора R8 через делители R5R6R10R11 подается на усилительный каскад, который находится внутри МК и подключен к выводам PA2, PA3. Коэффициент его усиления устанавливается программно, в зависимости от измеряемого тока. Для токов меньше 1А коэффициент усиления (КУ) задается равным 200, для токов выше 1А КУ=10. Вся информация выводится на ЖКИ, подключенный к портам РВ1-РВ7 по четырёхпроводной шине. Защита от переполюсовки выполнена на транзисторе Т1, сигнализация неправильного подключения - на элементах VD1,EP1 ,R13.

    При включении зарядного устройства в сеть транзистор Т1 закрыт низким уровнем с порта РС5, и АКБ отключена от зарядного устройства. Подключается она только при выборе в меню типа АКБ и режима работы ЗУ. Этим обеспечивается также отсутствие искрения при подключении батареи. При попытке подключить аккумулятор в неправильной полярности сработает зуммер ЕР1 и красный светодиод VD1, сигнализируя о возможной аварии. В процессе заряда постоянно контролируется зарядный ток. Если он станет равным нулю (сняли клеммы с АКБ), устройство автоматически переходит в главное меню, останавливая заряд и отключая батарею. Транзистор Т2 и резистор R12 образуют разрядную цепь, которая участвует в зарядно-разрядном цикле десульфатирующего заряда (режим тренировки) и в режиме теста АКБ. Ток разряда 0.01С задается с помощью ШИМ с порта PD5. Кулер автоматически выключается, когда ток заряда падает ниже 1,8А. Управляет кулером порт PD4 и транзистор VT1.

    СХЕМЫ:


    первую часть схемы - (Переделка БП)
    вторую часть схемы - (Микроконтроллерная часть)

    Ниже в архиве имеется проект в протеусе, точнее его микроконтроллерная часть.


    Режимы работы (скрины):

    Тут приведена только часть скринов, поиграться можете сами, скачав проект протеуса.


    Детали и конструкция


    Микроконтроллер. В продаже обычно встречаются в корпусе DIP-40 или TQFP-44 и маркируются так: ATMega16А-PU или ATMega16A-AU. Буква после дефиса обозначает тип корпуса: «P»- корпус DIP, «A»- корпус TQFP. Встречаются также и снятые с производства микроконтроллеры ATMega16-16PU, ATMega16-16AU или ATMega16L-8AU. В них цифра после дефиса обозначает максимальную тактовую частоту контроллера. Фирма- производитель ATMEL рекомендует использовать контроллеры ATMega16A (именно с буквой «А») и в корпусе TQFP, то есть, вот такие: ATMega16A-AU, хотя в нашем устройстве будут работать все вышеперечисленные экземпляры, что и подтвердила практика. Типы корпусов отличаются также и количеством выводов (40 или 44) и их назначением. На рис.4 изображена принципиальная схема блока управления для МК в корпусе DIP.

    Резистор R8 –керамический или проволочный, мощностью не менее 10 Вт, R12- 7-10Вт. Все остальные- 0.125Вт. Резисторы R5,R6,R10 и R11 нужно применять с допустимым отклонением 0.1-0.5%. От этого будет зависеть точность измерений и, следовательно, правильная работа всего устройства.

    Транзисторы T1 и Т1 желательно применять такие, как указаны на схеме. Но если придется подбирать замену, то необходимо учитывать, что они должны открываться напряжением на затворе 5В и, конечно же, должны выдерживать ток не ниже 10А. Подойдут, например, транзисторы с маркировкой 40N03GР, которые иногда используются в тех же БП формата АТХ, в цепи стабилизации 3.3В.

    Диод Шоттки D2 можно взять из того же БП, из цепи +5В, которая у нас не используется. Элементы D2,Т1 иТ2 через изолирующие прокладки размещаются на одном радиаторе площадью 40 квадратных сантиметров. Буззер EP1- со встроенным генератором, на напряжение 8-12 В, громкость звучания можно подрегулировать резистором R13.
    Жидкокристаллический индикатор – WH1602 или аналогичный, на контроллере HD44780 , KS0066 или совместимых с ними. К сожалению, эти индикаторы могут иметь разное расположение выводов, так что, возможно, придется разрабатывать печатную плату под свой экземпляр

    Печатная плата

    Файлы печатных плат лежат ниже в архиве, есть два варианта ПП: для DIP элементов и вариант в SMD.



    Программа


    Конфигурационные биты (фузы) устанавливаются следующие:

    Запрограммированы (установлены в 0):

    CKSEL0
    CKSEL1
    CKSEL3
    SPIEN
    SUT0
    BODEN
    BODLEVEL
    BOOTSZ0
    BOOTSZ1

    Все остальные - незапрограммированы (установлены в 1).

    Наладка


    Итак, блок питания переделан и выдает напряжение около 10В. При подключении к нему исправного блока управления с прошитым МК, напряжение должно упасть до 0.8..15В. Резистором R1 устанавливается контрастность индикатора. Наладка устройства заключается в проверке и калибровке измерительной части. Подключаем к клеммам аккумулятор, либо блок питания напряжением 12-15В и вольтметр. Заходим в меню «Калибровка». Сверяем показания напряжения на индикаторе с показаниями вольтметра, при необходимости, корректируем кнопками «<» и «>». Нажимаем «Выбор». Далее идет калибровка по току при КУ=10. Теми же кнопками «<» и «>» нужно выставить нулевые показания тока. Нагрузка (аккумулятор) при этом автоматически отключается, так что ток заряда отсутствует. В идеальном случае там должны быть нули или очень близкие к нулю значения. Если это так, это говорит о точности резисторов R5,R6,R10,R11,R8 и хорошем качестве дифференциального усилителя. Нажимаем «Выбор». Аналогично - калибровка для КУ=200. «Выбор». На дисплее отобразится «Готово» и через 3 сек. устройство перейдет в главное меню.

    Калибровка окончена. Поправочные коэффициенты хранятся в энергонезависимой памяти. Здесь стоит отметить, что если при самой первой калибровке значение напряжения на ЖКИ сильно отличается от показаний вольтметра, а токи при каком - либо КУ сильно отличаются от нуля, нужно применить (подобрать) другие резисторы делителя R5,R6,R10,R11,R8, иначе в работе устройства возможны сбои. При точных резисторах (с допуском 0,1-0,5%) поправочные коэффициенты равны нулю или минимальны. На этом наладка заканчивается. И в заключение. Если же напряжение или ток зарядного устройства на каком-то этапе не возрастает до положенного уровня или устройство «выскакивает» в меню, нужно ещё раз внимательно проверить правильность доработки блока питания. Возможно, срабатывает защита.

    Файлы проекта (прошивки и проект в протеусе).
    файлы печатных плат и схемы.

    По материалам сайта