- CC и CV режим за зарядно устройство:
- Електрическа схема
- LM317 Текущ регулатор
- LM317 Регулатор на напрежение
- Релейна подредба за превключване между режим CC и CV
- Измерване на напрежението на литиевата батерия
- Измерване на зарядния ток
- Arduino и LCD
- Проектиране и изработка на печатни платки с помощта на EasyEDA
- Изчисляване и поръчване на проби онлайн
- Програмиране на Arduino за двуетапно зареждане на литиева батерия
- Работа на 7.4V двуетапно зарядно устройство за литиева батерия
Напредъкът в електрическите превозни средства, Drone и друга мобилна електроника като IoT Devices изглежда обещаващ за бъдещето. Едно често срещано нещо сред всички тези е, че всички те се захранват от батерии. Следвайки закона на Мур, електронните устройства са склонни да стават по-малки и по-питейни, тези преносими устройства трябва да имат собствен източник на енергия за работа. Най-често срещаният избор на батерии за преносима електроника днес са литиево-йонни или литиево-полимерни батерии. Въпреки че тези батерии имат много добра плътност на зареждане, те са химически нестабилни при тежки условия, поради което трябва да се внимава, докато се зареждат и използват.
В този проект ще изградим двустепенно зарядно устройство за батерии (CC и CV), което може да се използва за зареждане на литиево-йонни или литиево-полимерни батерии. Схемата на зарядното устройство за батерии е предназначена за 7.4V литиева батерия (две от 18650 в серия), която често използвам в повечето проекти по роботика, но веригата може лесно да бъде модифицирана, за да се побере в по-ниски или малко по-високи батерийни комплекти, които обичат да изграждат 3.7 зарядно устройство за литиеви батерии или 12v литиево-йонно зарядно устройство. Както може би знаете, за тези батерии има готови зарядни устройства, но тези, които са евтини, са много бавни, а тези, които са бързи, са много скъпи. Така че в тази схема реших да изградя просто зарядно устройство с интегрални схеми LM317 с режим CC и CV. Освен това, какво е по-забавно от изграждането на собствена джаджа и ученето в процеса.
Не забравяйте, че с литиевите батерии трябва да се работи внимателно. Презареждането или късото му може да доведе до експлозия и опасност от пожар, така че останете в безопасност около него. Ако сте напълно нови за литиевите батерии, тогава силно ви съветвам да прочетете статията за литиевата батерия, преди да продължите по-нататък. Като се каже, нека да влезем в проекта.
CC и CV режим за зарядно устройство:
Зарядното, което възнамеряваме да изградим тук, е двустепенно зарядно, което означава, че ще има два режима на зареждане, а именно Constant Charge (CC) и Constant Voltage (CV). Чрез комбинирането на тези два режима ще можем да зареждаме батерията по-бързо от обикновено.
Постоянно зареждане (CC):
Първият режим, който ще влезе в експлоатация, ще бъде режимът CC. Тук количеството на зареждащия ток, което трябва да влезе в батерията, е фиксирано. За да се поддържа този ток, напрежението ще се променя съответно.
Постоянно напрежение (CV):
След като режимът CC завърши, режимът CV ще се включи. Тук напрежението ще се поддържа фиксирано и токът ще може да варира според изискванията за зареждане на батерията.
В нашия случай имаме 7.4V литиева батерия, която не е нищо друго освен две 18650 клетки с по 3.7V всяка е свързана последователно (3.7V + 3.7V = 7.4V). Този комплект батерии трябва да се зарежда, когато напрежението достигне до 6.4V (3.2V на клетка) и може да се зарежда до 8.4V (4.2V на клетка). Следователно тези стойности вече са фиксирани за нашата батерия.
След това решихме зарядния ток в режим CC, който обикновено може да се намери в листа с данни на батерията и стойността зависи от рейтинга на Ah на батерията. В нашия случай съм определил стойност от 800mA като постоянен ток на зареждане. Така че първоначално, когато батерията е свързана за зареждане, зарядното устройство трябва да влезе в режим CC и да натисне 800mA в батерията, като променя напрежението на зареждане според. Това ще зареди батерията и напрежението на батерията ще започне бавно да се увеличава.
Тъй като натискаме силен ток в батерията с по-високи стойности на напрежението, не можем да го оставим в CC, докато батерията не се зареди напълно. Трябва да преместим зарядното устройство от режим CC в режим CV, когато напрежението на батерията достигне значителна стойност. Нашата батерия тук трябва да бъде 8.4V, когато е напълно заредена, за да можем да я преместим от режим CC в режим CV при 8.2V.
След като зарядното устройство се премести в режим CV, трябва да поддържаме постоянно напрежение, в нашия случай стойността на постоянното напрежение е 8.6V. Батерията ще изтощи значително по-малко ток в режим CV, отколкото режим CC, тъй като батерията е почти заредена в самия режим CC. Следователно при фиксирани 8.6V батерията ще консумира по-малко ток и този ток ще намалее, тъй като батерията се зарежда. Така че трябва да наблюдаваме тока, когато той достигне много ниска стойност, да речем по-малко от 50 mA, предполагаме, че батерията е напълно заредена и автоматично изключваме батерията от зарядното устройство с помощта на реле.
За да обобщим, можем да изброим процедурата за зареждане на батерията, както следва
- Влезте в режим CC и заредете батерията с фиксиран 800mA регулиран ток.
- Следете напрежението на батерията и когато то достигне 8,2V, превключете в режим CV.
- В режим CV заредете батерията с фиксирано 8,6V регулирано напрежение.
- Следете зарядния ток, когато той намалява.
- Когато токът достигне 50 mA, изключете батерията от зарядното устройство автоматично.
Стойностите 800mA, 8.2V и 8.6V са фиксирани, тъй като разполагаме с литиева батерия 7.4V. Можете лесно да промените тези стойности според изискванията на вашия батериен пакет. Също така имайте предвид, че има много сценични зарядни устройства. Двустепенното зарядно устройство като това е най-често използваното. При тристепенното зарядно устройство етапите ще бъдат CC, CV и float. В четири или шестстепенно зарядно устройство ще се вземат предвид вътрешното съпротивление, температура и т.н. Сега, след като имаме кратко разбиране за това как всъщност трябва да работи зарядното с две стъпки, нека да влезем в схемата.
Електрическа схема
Пълната електрическа схема за това зарядно устройство за литиеви батерии може да бъде намерена по-долу. Веригата е направена с помощта на EasyEDA и печатната платка също ще бъде произведена с помощта на същата.
Както можете да видите схемата е доста проста. Използвахме две интегрални схеми с променлив регулатор на напрежение LM317, едната за регулиране на тока, а другата за регулиране на напрежението. Първото реле се използва за превключване между режим CC и CV, а второто реле се използва за свързване или изключване на батерията към зарядното устройство. Нека разделим веригата на сегменти и да разберем нейния дизайн.
LM317 Текущ регулатор
LM317 IC може да действа като регулатор на тока с помощта на един резистор. Веригата за същото е показана по-долу
За нашето зарядно устройство трябва да регулираме ток от 800mA, както беше обсъдено по-горе. Формулата за изчисляване на стойността на резистора за необходимия ток е дадена в листа с данни като
Резистор (ома) = 1,25 / ток (ампера)
В нашия случай стойността на тока е 0,8А и за това получаваме стойност от 1,56 ома като стойност на резистора. Но най-близката стойност, която бихме могли да използваме, е 1,5 ома, което е споменато в схемата по-горе.
LM317 Регулатор на напрежение
За режима на CV на зарядното устройство за литиеви батерии трябва да регулираме напрежението до 8.6V, както беше обсъдено по-рано. Отново LM317 може да направи това с помощта само на два резистора. Веригата за същото е показана по-долу.
Формулата за изчисляване на изходното напрежение за регулатор LM317 е дадена като
В нашия случай изходното напрежение (Vout) трябва да бъде 8.6V, а стойността на R1 (тук R2) трябва да бъде по-малка от 1000 ома, така че избрах стойност от 560 ома. С това, ако изчислим стойността на R2, получаваме 3.3k ома. Като алтернатива можете да използвате всякакви стойности на комбинация от резистори, при условие че изходното напрежение е 8,6V. Можете да използвате този онлайн калкулатор LM317, за да улесните работата си.
Релейна подредба за превключване между режим CC и CV
Разполагаме с две 12V реле, всяко от които се задвижва от Arduino през BC547 NPN транзистор. И двете релейни устройства са показани по-долу
На първо място Relay се използва, за да превключвате между CC и CV режим на зарядното, това реле се задейства от Arduino ПИН етикетирани като "Mode". По подразбиране релето е в режим CC, когато се задейства, то се променя от режим CC в режим CV.
По същия начин второто реле се използва за свързване или изключване на зарядното устройство от батерията; това реле се задейства от щифта Arduino, обозначен като „Зареждане“. По подразбиране релето изключва батерията от зарядното, когато се задейства, свързва зарядното с батерията. Освен това двата диода D1 и D2 се използват за защита на веригата от обратен ток, а 1K резисторите R4 и R5 се използват за ограничаване на тока, протичащ през основата на транзистора.
Измерване на напрежението на литиевата батерия
За да наблюдаваме процеса на зареждане, трябва да измерим напрежението на батерията, само тогава можем да преместим зарядното устройство от режим CC в режим CV, когато напрежението на батерията достигне 8,2V, както беше обсъдено. Най-честата техника, използвана за измерване на напрежението с микроконтролери като Arduino, е използването на верига за разделяне на напрежението. Използваният тук е показан по-долу.
Тъй като знаем, че максималното напрежение, което аналоговият щифт Arduino може да измери, е 5V, но батерията ни може да достигне до 8,6V в режим CV, така че трябва да намалим това до по-ниско напрежение. Това е точно направено от веригата на делителя на напрежението. Можете да изчислите стойността на резистора и да знаете повече за делителя на напрежението, като използвате този онлайн калкулатор на делителя на напрежението. Тук сме извели изходното напрежение наполовина от първоначалното входно напрежение, след което това изходно напрежение се изпраща към аналоговия щифт Arduino чрез етикета „ B_Voltage “. По-късно можем да извлечем оригиналната стойност, докато програмираме Arduino.
Измерване на зарядния ток
Друг жизненоважен параметър, който трябва да се измери, е зарядният ток. По време на режим CV батерията ще бъде изключена от зарядното устройство, когато токът на зареждане падне под 50 mA, което показва завършване на зареждането. Има много методи за измерване на тока, най-често използваният метод е чрез използване на шунтиращ резистор. Веригата за същото е показана по-долу
Концепцията зад него е прост закон за ома. Целият ток, течащ към батерията, е направен да тече през шунтиращия резистор 2.2R. Тогава по закона на Ома (V = IR) знаем, че спадът на напрежението в този резистор ще бъде пропорционален на тока, протичащ през него. Тъй като знаем стойността на резистора и напрежението в него може да бъде измерено с помощта на Arduino Analog pin, стойността на тока може лесно да бъде изчислена. Стойността на спада на напрежението на резистора се изпраща до Arduino чрез етикета „B_Current “. Знаем, че максималният ток на зареждане ще бъде 800mA, така че използвайки формулите V = IR и P = I 2 R, можем да изчислим стойността на съпротивлението и стойността на мощността на резистора.
Arduino и LCD
Накрая от страна на Arduino трябва да свържем LCD с Arduino, за да покажем процеса на зареждане на потребителя и да контролираме зареждането, като измерим напрежението, тока и след това задействаме съответно релетата.
Arduino Nano има вграден регулатор на напрежението, поради което захранващото напрежение се подава към Vin и регулираното 5V се използва за управление на Arduino и 16x2 LCD дисплей. Напрежението и токът могат да бъдат измерени чрез аналоговите щифтове A0 и A1 съответно, като се използват етикетите „B_Voltage“ и „B_Current“. Релето може да се задейства чрез превключване на GPIO пина D8 и D9, които са свързани чрез етикетите „Режим“ и „Зареждане“. След като схемите са готови, можем да продължим с производството на печатни платки.
Проектиране и изработка на печатни платки с помощта на EasyEDA
За да проектираме това Lithum зарядно устройство за вериги, ние избрахме онлайн инструмента за EDA, наречен EasyEDA. Преди това използвах EasyEDA много пъти и го намерих за много удобен за използване, тъй като има добра колекция от отпечатъци и е с отворен код. След проектирането на печатни платки, ние можем да поръчаме пробите на печатни платки чрез техните евтини услуги за производство на печатни платки. Те също така предлагат услуга за снабдяване с компоненти, когато имат голям запас от електронни компоненти и потребителите могат да поръчат необходимите им компоненти заедно с поръчката на печатни платки.
Докато проектирате вашите схеми и печатни платки, можете също така да направите вашите схеми и печатни платки публични, така че другите потребители да могат да ги копират или редактират и да се възползват от вашата работа, ние също направихме цялата ни схема на платки и печатни платки публична за тази схема, проверете връзката по-долу:
easyeda.com/CircuitDigest/7.4V-Lithium-Charger-with-MCU
Можете да видите всеки слой (Top, Bottom, Topsilk, bottomomsilk и т.н.) на печатната платка, като изберете слоя от прозореца „Layers“. Можете също така да видите PCB на зарядното устройство за литиева батерия, как ще изглежда след изработката, като използвате бутона Photo View в EasyEDA:
Изчисляване и поръчване на проби онлайн
След като завършите дизайна на тази зарядна платка за литиеви батерии, можете да поръчате печатната платка чрез JLCPCB.com. За да поръчате печатната платка от JLCPCB, ви е необходим Gerber File. За да изтеглите Gerber файлове от вашата PCB, просто щракнете върху бутона Generate Fabrication File на страницата на редактора EasyEDA, след това изтеглете Gerber файла от там или можете да кликнете върху Order в JLCPCB, както е показано на изображението по-долу. Това ще ви пренасочи към JLCPCB.com, където можете да изберете броя на печатни платки, които искате да поръчате, колко медни слоя ви трябват, дебелината на печатната платка, теглото на медта и дори цвета на печатната платка, като снимката, показана по-долу:
След като щракнете върху поръчка на бутона JLCPCB, ще ви отведе до уебсайта на JLCPCB, където можете да поръчате печатни платки на много ниска цена, която е $ 2. Времето им за изграждане също е много по-малко, което е 48 часа с DHL доставка от 3-5 дни, като основно ще получите вашите печатни платки в рамките на една седмица след поръчката.
След като поръчате печатната платка, можете да проверите производствения напредък на вашата печатна платка с дата и час. Можете да го проверите, като отидете на страницата на акаунта и щракнете върху връзката "Производствен ход" под печатната платка, както е показано на изображението по-долу.
След няколко дни поръчка на печатни платки взех пробите на печатни платки в хубава опаковка, както е показано на снимките по-долу.
След като се уверих, че следите и следите са правилни. Продължих със сглобяването на печатната платка, използвах женски хедъри, за да поставя Arduino Nano и LCD, за да мога да ги премахна по-късно, ако имам нужда от тях за други проекти. Изцяло запоената дъска изглежда така по-долу
Програмиране на Arduino за двуетапно зареждане на литиева батерия
След като хардуерът е готов, можем да продължим с писането на кода за Arduino Nano. Пълната програма за този проект е предоставена в долната част на страницата, можете да я качите директно на вашия Arduino. Сега, нека разделим програмата на малки фрагменти и да разберем какво всъщност прави кодът.
Както винаги започваме програмата чрез инициализиране на I / O щифтовете. Както знаем от нашия хардуер, щифтовете A0 и A2 се използват съответно за измерване на напрежение и ток, а щифтовете D8 и D9 се използват за управление на релето за режим и релето за зареждане. Кодът за дефиниране на същия е показан по-долу
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; // Споменете номера на пина за LCD връзка LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Charge = 9; // ПИН за свързване или изключване на батерията към веригата int Mode = 8; // Фиксиране за превключване между режим CC и режим CV int Voltage_divider = A0; // За измерване на напрежението на батерията int Shunt_resistor = A1; // За измерване на текущия заряден поплавък Charge_Voltage; плаващ Charge_current;
Във функцията за настройка ние инициализираме функцията LCD и показваме въвеждащо съобщение на екрана. Ние също така определяме релейните щифтове като изходни щифтове. След това задействайте релето за зареждане, свържете батерията към зарядното устройство и по подразбиране зарядното устройство остава в режим CC.
void setup () { lcd.begin (16, 2); // Инициализиране на 16 * 2 LCD lcd.print ("7.4V Li + зарядно устройство"); // Входен ред за съобщение 1 lcd.setCursor (0, 1); lcd.print ("- CircuitDigest"); // Входен ред за съобщение 2 lcd.clear (); pinMode (Зареждане, ИЗХОД); pinMode (Mode, OUTPUT); digitalWrite (Charge, HIGH); // Започнете Chargig Първоначално чрез свързване на батерията digitalWrite (Mode, LOW); // HIGH за режим CV и LOW на режим CC, първоначално закъснение в режим CC (1000); }
След това, във функцията на безкраен контур , ние започваме програмата, като измерваме напрежението на батерията и тока на зареждане. Стойността 0,0095 и 1,78 се умножава с аналогова стойност, за да преобразува 0 до 1024 в действителна стойност на напрежението и тока. Можете да използвате мултицет и измервателен уред за измерване на реалната стойност и след това да изчислите стойността на множителя. Също така теоретично се изчисляват стойностите на множителя въз основа на използваните от нас резистори, но не беше толкова точно, колкото очаквах да бъде.
// Първоначално измерване на напрежение и ток Charge_Voltage = analogRead (Voltage_divider) * 0.0092; // Измерете напрежението на батерията Charge_current = analogRead (Shunt_resistor) * 1.78; // Измерете зареждащия ток
Ако зарядното напрежение е по-малко от 8.2V, влизаме в режим CC и ако е по-високо от 8.2V, влизаме в режим CV. Всеки режим има свой собствен цикъл while . Вътре в контура за режим CC ние държим щифта за режим като LOW, за да останем в режим CC и след това продължаваме да наблюдаваме напрежението и тока. Ако напрежението надвишава праговото напрежение 8.2V, ние прекъсваме веригата CC с помощта на инструкция за прекъсване. Състоянието на зарядното напрежение се показва и на LCD в рамките на CC контура.
// Ако напрежението на батерията е по-малко от 8.2V, влезте в режим CC докато (Charge_Voltage <8.2) // CC MODE Loop { digitalWrite (Mode, LOW); // Останете в режим CC // Измерете напрежението и тока Charge_Voltage = analogRead (Voltage_divider) * 0.0095; // Измерете напрежението на батерията Charge_current = analogRead (Shunt_resistor) * 1.78; // Измерване на зарядния ток // отпечатване на детайли на LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.setCursor (0, 1); lcd.print ("В режим CC"); забавяне (1000); lcd.clear (); // Проверяваме дали трябва да излезем от режим CC ако (Charge_Voltage> = 8.2) // Ако да { digitalWrite (Mode, HIGH); // Промяна в режим на прекъсване на CV ; } }
Същата техника може да се следва и за режим CV. Ако напрежението надвиши 8,2V, зарядното устройство влиза в режим CV, като прави щифта за режим висок. Това се отнася до постоянни 8,6 V в батерията и токът на зареждане може да варира в зависимост от изискванията на батерията. След това този ток на зареждане се следи и когато достигне под 50 mA, можем да прекратим процеса на зареждане, като изключим батерията от зарядното устройство. За целта просто трябва да изключим релето за зареждане, както е показано в кода по-долу
// Ако напрежението на батерията е по-голямо от 8.2V, влезте в режим CV, докато (Charge_Voltage> = 8.2) // Цикъл на режим CV { digitalWrite (Mode, HIGH); // Останете в режим CV // Измерете напрежението и тока Charge_Voltage = analogRead (Voltage_divider) * 0.0092; // Измерете напрежението на батерията Charge_current = analogRead (Shunt_resistor) * 1.78; // Измерване на тока на зареждане // Показване на подробности на потребителя в LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.print ("I ="); lcd.print (Charge_current); lcd.setCursor (0, 1); lcd.print ("В режим CV"); забавяне (1000); lcd.clear (); // Проверяваме дали батерията е заредена, като следим тока на зареждане, ако (Charge_current <50) // Ако да { digitalWrite (Charge, LOW); // Изключете зареждането, докато (1) // Дръжте зарядното устройство изключено, докато рестартирате { lcd.setCursor (0, 1); lcd.print ("Зареждането е завършено."); забавяне (1000); lcd.clear (); } } } }
Работа на 7.4V двуетапно зарядно устройство за литиева батерия
След като хардуерът е готов, качете кода в дъската на Arduino. След това свържете батерията към клемата за зареждане на платката. Уверете се, че ги свързвате с правилна полярност, обръщането на полярността ще причини сериозни щети на батерията и платката. След свързване на батерията, зарядното устройство използва 12V адаптер. Ще бъдете посрещнати с въвеждащ текст и зарядното устройство ще премине в режим CC или CV в зависимост от състоянието на батерията. Ако батерията е напълно разредена по време на зареждане, тя ще влезе в режим CC и вашият LCD ще покаже нещо подобно по-долу.
Тъй като батерията се зарежда, напрежението ще се увеличи, както е показано на видеото по-долу . Когато това напрежение достигне 8.2V, зарядното устройство ще влезе в режим CV от режим CC и сега ще показва както напрежение, така и ток, както е показано по-долу.
Оттук бавно текущата консумация на батерията ще намалее, докато се зарежда. Когато токът достигне 50 mA или по-малко, зарядното устройство приема, че батерията е напълно заредена и след това изключва батерията от зарядното устройство с помощта на релето и показва следния екран. След което можете да изключите батерията от зарядното устройство и да я използвате във вашите приложения.
Надявам се, че сте разбрали проекта и ви е било приятно да го изградите. Цялата работа може да бъде намерена във видеото по-долу. Ако имате въпроси, публикувайте ги в раздела за коментари по-долу, използвайте форумите за други технически въпроси. Отново веригата е само с образователна цел, така че я използвайте с отговорност, тъй като литиевите батерии не са стабилни при тежки условия.