Оглавление:
- Шаг 1. Протокол зарядки литий-ионной батареи
- Шаг 2: Схема и объяснение
- Шаг 3: Функционирование…
- Шаг 4: Необходимые детали
- Шаг 5: Время рассчитывать ……
- Шаг 6: Программное обеспечение
- Шаг 7: Хватит теории … давайте разберемся
- Шаг 8: Перед первым циклом зарядки ……. Откалибруйте !!
- Шаг 9: Включение после калибровки…..Теперь вы готовы к игре
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Схема, которую вы собираетесь увидеть, представляет собой интеллектуальное зарядное устройство на базе ATMEGA8A с автоматическим отключением. Различные параметры отображаются на ЖК-дисплее во время различных состояний заряда. Кроме того, схема издает звуковой сигнал через зуммер после завершения зарядки.
Я построил зарядное устройство в основном для зарядки своей литий-ионной батареи 11,1 В / 4400 мАч. Прошивка в основном написана для зарядки этого конкретного типа батареи. Вы можете загрузить свой собственный протокол зарядки, чтобы удовлетворить ваши потребности в зарядке других типов аккумуляторов.
Как вы знаете, интеллектуальные зарядные устройства легко доступны на рынках, но, будучи энтузиастом электроники, для меня всегда предпочтительнее создать свое собственное, чем покупать такое, которое будет иметь статические / неизменяемые функции. В этом модуле я планирую обновить в будущем, так что я оставил на это место.
Когда я впервые купил свою предыдущую литий-ионную батарею 11,1 В / 2200 мАч, я искал в Интернете зарядные устройства для самостоятельной сборки с интеллектуальным управлением, но нашел очень ограниченные ресурсы, поэтому на тот момент я сделал зарядное устройство на базе LM317, и оно сработало. действительно хорошо для меня. Но поскольку моя предыдущая батарея со временем разрядилась (без всякой причины), я купил другую литий-ионную батарею на 11,1 В / 4400 мАч, но на этот раз предыдущая установка была недостаточной для зарядки моей новой батареи. Я изучал в сети и смог разработать собственное умное зарядное устройство.
Я разделяю это, так как думаю, что есть много любителей / энтузиастов, которые действительно увлечены работой над силовой электроникой и микроконтроллерами, а также нуждаются в создании собственного умного зарядного устройства.
Давайте быстро рассмотрим, как заряжать литий-ионный аккумулятор.
Шаг 1. Протокол зарядки литий-ионной батареи
Чтобы зарядить литий-ионный аккумулятор, должны быть выполнены определенные условия. Если мы не соблюдаем эти условия, либо аккумулятор будет недостаточно заряжен, либо он воспламенится (при перезарядке), либо будет необратимо поврежден.
Есть очень хороший веб-сайт, на котором можно узнать все необходимое о различных типах аккумуляторов, и, конечно, вы знаете название веб-сайта, если вы знакомы с работой с аккумуляторами … Да, я говорю о batteryuniversity.com.
Вот ссылка, чтобы узнать необходимые детали для зарядки литий-ионного аккумулятора.
Если вы достаточно ленивы, чтобы читать все эти теории, то суть такова.
1. Полная зарядка литий-ионной батареи 3,7 В составляет 4,2 В. В нашем случае литий-ионная батарея 11,1 В означает 3 батареи по 3,7 В. Для полной зарядки батарея должна достигать 12,6 В, но по соображениям безопасности мы будет заряжать его до 12,5 В.
2. Когда аккумулятор почти полностью заряжен, ток, потребляемый аккумулятором от зарядного устройства, падает до 3% от номинальной емкости аккумулятора. Например, емкость аккумулятора моего аккумулятора составляет 4400 мАч. Таким образом, когда батарея будет полностью заряжена, ток, потребляемый батареей, будет достигать примерно 3% -5% от 4400 мА, то есть между 132 и 220 мА. Чтобы безопасно остановить заряд, зарядка будет остановлена, когда потребляемый ток упадет ниже 190 мА (почти 4% от номинальной мощности).
3. Общий процесс зарядки разделен на две основные части: 1-постоянный ток (режим CC), 2-постоянное напряжение (режим CV). (Также есть режим подзарядки, но мы не будем реализовывать его в нашем зарядном устройстве в качестве зарядного устройства. уведомит пользователя о полной зарядке тревожным сигналом, затем аккумулятор необходимо отключить от зарядного устройства)
CC режим -
В режиме CC зарядное устройство заряжает аккумулятор со скоростью заряда 0,5c или 1c. Теперь, что, черт возьми, 0,5c / 1c ???? Проще говоря, если емкость вашей батареи составляет, скажем, 4400 мАч, то в режиме CC 0,5c. будет 2200 мА и 1c будет 4400 мА ток заряда. 'c' означает скорость заряда / разряда. Некоторые батареи также поддерживают 2c, т.е. в режиме CC, вы можете установить ток заряда до 2x емкости аккумулятора, но это безумие !!!!!
Но на всякий случай я выберу зарядный ток 1000 мА для аккумулятора 4400 мАч, т.е. 0,22 с. В этом режиме зарядное устройство будет контролировать ток, потребляемый аккумулятором, независимо от зарядного напряжения. Т.е. Зарядное устройство будет поддерживать ток заряда 1 А, увеличивая / уменьшая выходное напряжение до тех пор, пока заряд аккумулятора не достигнет 12,4 В.
Режим CV -
Теперь, когда напряжение аккумулятора достигает 12,4 В, зарядное устройство будет поддерживать на выходе 12,6 В (независимо от тока, потребляемого аккумулятором). Теперь зарядное устройство остановит цикл зарядки в зависимости от двух факторов: если напряжение аккумулятора превышает 12,5 В. а также, если ток заряда упадет ниже 190 мА (4% от номинальной емкости аккумулятора, как объяснялось ранее), цикл зарядки будет остановлен и раздастся звуковой сигнал.
Шаг 2: Схема и объяснение
Теперь посмотрим на работу схемы. Схема прилагается в формате pdf в файле BIN.pdf.
Входное напряжение схемы может быть 19/20 В. Я использовал старое зарядное устройство для ноутбука, чтобы получить 19 В.
J1 - это оконечный соединитель для подключения схемы к источнику входного напряжения. Q1, D2, L1, C9 образуют понижающий преобразователь. Что это за чертовщина ??? Это в основном понижающий преобразователь постоянного тока в постоянный. преобразователя, вы можете достичь желаемого выходного напряжения, варьируя рабочий цикл. Если вы хотите узнать больше о понижающих преобразователях, посетите эту страницу, но, честно говоря, они полностью отличаются от теории. Чтобы оценить правильные значения L1 & C9 для моих требований потребовалось 3 дня проб и ошибок. Если вы собираетесь заряжать разные батареи, возможно, эти значения изменятся.
Q2 - это управляющий транзистор для силового полевого транзистора Q1. R1 - резистор смещения для Q1. Мы будем подавать ШИМ-сигнал на базу Q2 для управления выходным напряжением. C13 - это развязывающий колпачок.
Теперь выходной сигнал подается на Q3. Можно задать вопрос: «Какая здесь польза от Q3 ??». Ответ довольно прост: он действует как простой переключатель. Каждый раз, когда мы будем измерять напряжение батареи, мы отключим Q3, чтобы отключить выход напряжения зарядки от понижающего преобразователя. Q4 является драйвером Q3 с резистором смещения R3.
Обратите внимание, что на пути есть диод D1. Что делает диод здесь, на пути? Этот ответ также очень прост: всякий раз, когда цепь будет отключена от входного питания, а на выходе батарея подключена, ток от батареи будет течет в обратном направлении через основные диоды полевых МОП-транзисторов Q3 и Q1, и, таким образом, U1 и U2 будут получать напряжение батареи на своих входах и будут питать цепь от напряжения батареи. Чтобы избежать этого, используется D1.
Затем выход D1 подается на вход датчика тока (IP +). Это датчик тока базы на эффекте Холла, т. Е. Токовая чувствительная часть и выходная часть изолированы. Выход датчика тока (IP-) затем подается на Здесь R5, RV1, R6 образуют схему делителя напряжения для измерения напряжения батареи / выходного напряжения.
АЦП atmega8 используется здесь для измерения напряжения и тока батареи. АЦП может измерять максимум 5 В. Но мы будем измерять максимум 20 В (с некоторым запасом).: Используется делитель напряжения: 1. Поток (RV1) используется для точной настройки / калибровки. Я расскажу об этом позже. C6 - развязывающий колпачок.
Выход датчика тока ACS714 также подается на вывод ADC0 atmega8. Через этот датчик ACS714 мы будем измерять ток. У меня есть коммутационная плата от pololu версии 5A, и она отлично работает. Я расскажу об этом на следующем этапе. как измерить ток.
ЖК-дисплей представляет собой обычный ЖК-дисплей 16x2. Используемый здесь ЖК-дисплей настроен в 4-битном режиме, поскольку количество выводов atmega8 ограничено. RV2 - это потенциометр для регулировки яркости ЖК-дисплея.
Atmega8 работает на частоте 16 МГц с внешним кристаллом X1 с двумя развязывающими конденсаторами C10 / 11. Блок АЦП atmega8 получает питание через вывод Avcc через индуктивность 10 мкГн. C7, C8 - это развязывающие конденсаторы, подключенные к Agnd. как можно ближе к Avcc и Aref соответственно при изготовлении печатной платы. Обратите внимание, что вывод Agnd не показан на схеме. Вывод Agnd будет подключен к земле.
Я настроил АЦП atmega8 на использование внешнего Vref, то есть мы будем подавать опорное напряжение через вывод Aref. Основная причина этого для достижения максимально возможной точности чтения. Внутреннее опорное напряжение 2,56 В не так уж и велико в avrs. Вот почему я настроил его внешне. Теперь вот что нужно заметить. 7805 (U2) питает только датчик ACS714 и вывод Aref atmega8. Это сделано для поддержания оптимальной точности. ACS714 дает стабильное выходное напряжение 2,5 В. через него не протекает ток, но, скажем, если напряжение питания ACS714 будет понижено (скажем, 4,7 В), то выходное напряжение отсутствия тока (2,5 В) также будет снижено, и это приведет к несоответствующему / ошибочному показанию тока. Так же, как мы измеряем напряжение относительно Vref, опорное напряжение на Aref должно быть стабильным и безошибочным. Вот почему нам нужны стабильные 5 В.
Если бы мы запитали ACS714 и Aref от U1, который питает atmega8 и ЖК-дисплей, то на выходе U1 будет существенное падение напряжения и показания силы тока и напряжения будут ошибочными. Вот почему U2 используется здесь для устранения ошибки. поставив стабильные 5В только на Aref и ACS714.
S1 нажимается для калибровки показаний напряжения. S2 зарезервирован для использования в будущем. Вы можете добавить / не добавлять эту кнопку по вашему выбору.
Шаг 3: Функционирование…
При включении atmega8 включит понижающий преобразователь, выдав 25% шим на выходе на базе Q2. В свою очередь, Q2 будет управлять Q1, и будет запущен понижающий преобразователь. Q3 будет отключен, чтобы отключить выход понижающего преобразователя. Затем atmega8 считывает напряжение батареи через резистивный делитель. Если батарея не подключена, то atmega8 показывает сообщение «Вставьте батарею» через ЖК-дисплей 16x2 и ждет батарею. atmega8 проверит напряжение. Если напряжение ниже 9 В, тогда atmega8 покажет «Неисправная батарея» на ЖК-дисплее 16x2.
Если обнаружена батарея с напряжением более 9 В, тогда зарядное устройство сначала войдет в режим CC и включит выходной МОП-транзистор Q3. Режим зарядного устройства (CC) будет обновлен и отобразится немедленно. Если напряжение батареи будет больше 12,4 В, тогда Mega8 немедленно выйдет из режима CC и войдет в режим CV. Если напряжение батареи меньше 12,4 В, то Mega8 будет поддерживать ток заряда 1 А за счет увеличения / уменьшения выходного напряжения понижающего преобразователя путем изменения рабочего цикла ШИМ.. Зарядный ток будет считываться датчиком тока ACS714. Выходное напряжение понижающего преобразователя, ток заряда, рабочий цикл ШИМ будут периодически обновляться на ЖК-дисплее.
Напряжение батареи будет проверяться выключением Q3 через каждые 500 мсек. Напряжение батареи будет немедленно обновлено на ЖК-дисплее.
Если во время зарядки напряжение аккумулятора превысит 12,4 В, Mega8 выйдет из режима CC и войдет в режим CV. Статус режима будет немедленно обновлен на ЖК-дисплее.
Тогда mega8 будет поддерживать выходное напряжение 12,6 В за счет изменения рабочего цикла понижающего напряжения. Здесь напряжение батареи будет проверяться через каждые 1 с. Как только напряжение батареи станет больше 12,5 В, тогда оно будет проверено. если потребляемый ток ниже 190 мА. Если оба условия соблюдены, то цикл зарядки будет остановлен постоянным выключением Q3, а при включении Q5 прозвучит звуковой сигнал. Также mega8 покажет «Заряд завершен» на ЖК-дисплее.
Шаг 4: Необходимые детали
Ниже перечислены детали, необходимые для выполнения проекта. Распиновку см. В таблицах данных. Предоставляется ссылка на технические данные только на важнейшие детали.
1) ATMEGA8A x 1. (лист данных)
2) Датчик тока ACS714 5A от Pololu x 1 (я настоятельно рекомендую использовать датчик от Pololu, поскольку они являются лучшими по точности среди всех других датчиков, которые я использовал. Вы можете найти его здесь). Выводы описаны на изображении.
3) IRF9540 x 2 (даташит)
4) 7805 x 2 (рекомендуется Toshiba genuinespare, так как они обеспечивают наиболее стабильный выходной сигнал 5 В) (техническое описание)
5) 2н3904 х 3. (даташит)
6) 1n5820 schottky x 2. (даташит)
7) ЖК-дисплей 16x2 x 1 шт. (Техническое описание)
8) 1 силовой индуктор 330 мкГн / 2 А (рекомендуется от coilmaster)
9) 1 индуктор 10 мкГн (малый)
10) Резисторы - (Все резисторы относятся к типу 1% MFR)
150R x 3
680R x 2
1к х 1
2к2 х 1
10 тыс. X 2
22k x 1
Горшок 5k x 2 (для монтажа на печатную плату)
11) Конденсаторы
Примечание: я не использовал C4, нет необходимости использовать его, если вы используете блок питания для ноутбука / регулируемый блок питания в качестве источника питания 19 В.
100 мкФ / 25 В x 3
470 мкФ / 25 В x 1
1000 мкФ / 25 В x 1
100n x 8
22p x 2
12) Двухпозиционный переключатель мгновенного действия для монтажа на печатной плате
13) Зуммер 20 В x 1
14) 2-контактный разъем клеммной колодки x 2
15) Шкаф (Я использовал вот такой шкаф.) Можете использовать все, что захотите.
16) Блок питания для ноутбука 19 В (я модифицировал блок питания для ноутбука HP, вы можете использовать блок питания любого типа по своему усмотрению. Если вы хотите его построить, посетите мои эти инструкции.)
17) Радиатор среднего размера для U1 и Q1. Вы можете использовать этот тип. Или вы можете обратиться к моим фотографиям схем, но обязательно используйте радиатор для них обоих.
18) Банановый разъем - розетка (черная и красная) x 1 + вилка (черная и красная) (в зависимости от ваших потребностей в разъемах)
Шаг 5: Время рассчитывать ……
Расчет измерения напряжения:
Максимальное напряжение, которое мы будем измерять с помощью АЦП atmega8, составляет 20 В. Но АЦП atmega8 может измерять максимум 5 В. Поэтому, чтобы сделать 20 В в диапазоне 5 В, здесь используется делитель напряжения 4: 1 (так как 20 В / 4 = 5 В). Таким образом, мы могли бы реализовать это, просто используя два резистора, но в нашем случае я добавил горшок между двумя фиксированными резисторами, чтобы мы могли вручную регулировать точность, поворачивая потенциометр. Разрешение АЦП составляет 10 бит, то есть АЦП будет представлять 0–5 В как десятичные числа от 0 до 1023 или от 00h до 3FFh. («h» означает шестнадцатеричные числа). Задание устанавливается на 5В извне через вывод Aref.
Таким образом, измеренное напряжение = (показания АЦП) x (Vref = 5 В) х (коэффициент резисторного делителя, т.е. 4 в данном случае) / (максимальное показание АЦП, т.е. 1023 для 10-битного АЦП).
Предположим, мы получили показание АЦП 512. Тогда измеренное напряжение будет -
(512 х 5 х 4) / 1023 = 10 В
Расчет текущего измерения:
ACS714 будет давать стабильный выходной сигнал 2,5 В на выводе out, когда ток не будет течь от IP + к IP-. Это даст 185 мВ / А по сравнению с 2,5 В, то есть, скажем, если через цепь протекает ток 3 А, acs714 выдаст 2,5 В + (0,185 x 3) В = 3,055 В на выходе.
Итак, текущая формула измерения выглядит следующим образом:
Измеренный ток = (((чтение АЦП) * (Vref = 5 В) / 1023) -2,5) / 0,185.
например, показание АЦП равно 700, тогда измеренный ток будет - (((700 x 5) / 1023) - 2,5) / 0,185 = 4,98 А.
Шаг 6: Программное обеспечение
Программное обеспечение написано в Winavr с использованием GCC. Я разбил код на модули, т.е. я создал различные библиотеки, такие как библиотека adc, библиотека lcd и т. Д. Библиотека adc содержит необходимые команды для настройки и взаимодействия с ADC. Библиотека lcd содержит все функции для управления ЖК-дисплеем 16x2. Вы также можете использовать lcd_updated _library.c, поскольку последовательность запуска ЖК-дисплея изменена в этой библиотеке. Если вы хотите использовать обновленную библиотеку, переименуйте ее с помощью lcd.c
Файл main.c содержит основные функции. Здесь написан протокол зарядки для литий-ионных аккумуляторов. Определите ref_volt в файле main.c, измерив выходной сигнал U2 (7805) с помощью точного мультиметра, чтобы получить точные показания при расчетах. основаны на нем.
Вы можете просто записать файл.hex прямо в свой mega8, чтобы обойти проблему.
Для тех, кто хочет написать другой протокол заряда, я добавил достаточно комментариев, по которым даже ребенок может понять, что происходит при выполнении каждой строки. Просто вам нужно написать свой собственный протокол для другого типа батареи. Если вы используете Li- иона с другим напряжением, вам нужно только изменить параметры (хотя это не тестировалось для других литий-ионных / других типов аккумуляторов, вам нужно решить это самостоятельно).
Я настоятельно рекомендую не строить эту схему, если это ваш первый проект или вы новичок в микроконтроллерах / силовой электронике.
Я загрузил каждый файл в исходном формате, кроме Makefile, поскольку он создает проблемы для открытия. Я загрузил его в формате.txt. Просто скопируйте содержимое и вставьте его в новый Makefile и соберите весь проект. Вы готовы записать шестнадцатеричный файл.
Шаг 7: Хватит теории … давайте разберемся
Вот фотографии моего прототипа от макета до доработки в печатной плате. Пожалуйста, просмотрите примечания к фотографиям, чтобы узнать больше. Фотографии расположены последовательно от начала до конца.
Шаг 8: Перед первым циклом зарядки ……. Откалибруйте !!
Перед зарядкой аккумулятора с помощью зарядного устройства необходимо сначала его откалибровать, иначе он не сможет зарядить аккумулятор / перезарядить его.
Есть два типа калибровки: 1) Калибровка напряжения. 2) Текущая калибровка. Для калибровки необходимо выполнить следующие действия.
Сначала измерьте выходное напряжение U2, затем определите его в main.c как ref_volt. Mine было 5.01. Измените его в соответствии с вашим измерением. Это основной необходимый шаг для калибровки напряжения и тока. остальное необходимо, обо всем позаботится сама программа
Теперь, когда вы записали шестнадцатеричный файл после определения опорного напряжения в main.c, отключите питание устройства.
. Теперь измерьте напряжение аккумулятора, которое будет заряжаться, с помощью мультиметра и подключите аккумулятор к устройству.
Теперь нажмите кнопку S1 и, удерживая ее, включите схему, пока кнопка нажата. После небольшой задержки около 1 с отпустите кнопку S1. Обратите внимание, что устройство не войдет в режим калибровки, если сначала запитать схему, а затем нажать S1.
Теперь вы можете видеть на дисплее, что схема вошла в режим калибровки. «Режим калибровки» будет отображаться на ЖК-дисплее вместе с напряжением батареи. Теперь сопоставьте напряжение батареи, показанное на ЖК-дисплее, с показаниями мультиметра, повернув потенциометр.. После того, как вы закончите, снова нажмите переключатель S1, удерживайте его около секунды и отпустите. Вы выйдете из режима калибровки. Снова перезагрузите зарядное устройство, выключив и снова включив его.
Вышеупомянутый процесс также может быть выполнен без подключенной батареи. Вы должны подключить внешний источник питания к выходной клемме (J2). После входа в режим калибровки выполните калибровку с помощью потенциометра. Но на этот раз сначала отключите внешний источник питания, затем нажмите S1, чтобы выйти из режима калибровки. Это необходимо, чтобы сначала отключить внешний источник питания, чтобы избежать каких-либо неисправностей каких-либо устройств.
Шаг 9: Включение после калибровки….. Теперь вы готовы к игре
Теперь, когда калибровка завершена, вы можете начать процесс зарядки. Сначала установите аккумулятор, затем включите устройство. Об отдыхе позаботится зарядное устройство.
Моя схема на 100% работает и протестирована, но если вы заметите что-нибудь, дайте мне знать. Также не стесняйтесь обращаться по любым вопросам.
Счастливое здание.
Rgds // Шаранья