lipo зарядка с балансиром
- Войдите на сайт для отправки комментариев
Пт, 11/04/2014 - 18:24
// include the library code: #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x38); int sensorPin = 0; int sensor1Pin = 1; int sensor2Pin = 2; int sensorCurrent = 3; int PinON = 12; int ledPinON = 13; //int ledPin = 4; int startPin = 2; //int led2Pin = 3; int SPKPin = 6; int sensorValue = 0; int sensor1Value = 0; int sensor2Value = 0; int sensorCurrentVal = 0; //float LiMinThreshold = 2700; float LiMaxThreshold = 4230; int i; int BatVoltage = 5000; int Bat1Voltage = 5000; int Bat2Voltage = 5000; int val = 0; int FetVoltage = 5000; int TotalCurrent = 0; unsigned int TC = 0; boolean done = false; void CL1(){ lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); } void CL2(){ lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); } void setup() { pinMode(PinON, OUTPUT); pinMode(ledPinON, OUTPUT); pinMode(startPin, INPUT); digitalWrite(startPin, HIGH); pinMode(SPKPin, OUTPUT); lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print(" LiPo Charger"); lcd.setCursor(0, 1); lcd.print(" Press to Start"); /* sensorValue = analogRead(sensorPin); // read the value from the sensor: sensor1Value = analogRead(sensor1Pin); sensor2Value = analogRead(sensor2Pin); sensorCurrentVal = analogRead(sensorCurrent);*/ while (digitalRead (startPin)) {} } void loop() { sensorValue = analogRead(sensorPin); // read the value from the sensor: BatVoltage = (sensorValue*4.894); sensor1Value = analogRead(sensor1Pin); // read the value from the sensor: Bat1Voltage = (sensor1Value*4.894); sensor2Value = analogRead(sensor2Pin); // read the value from the sensor: Bat2Voltage = (sensor2Value*4.894); sensorCurrentVal = analogRead(sensorCurrent); // read the value from the sensor: FetVoltage = (sensorCurrentVal*4.894); CL2(); CL1(); lcd.setCursor(0, 0); lcd.print("1="); //lcd.print(BatVoltage/10); TC=BatVoltage/10; lcd.print(TC/100); // print voltage value lcd.print("."); lcd.print (TC-(TC/100)*100); // print voltage value lcd.print("V"); lcd.setCursor(8, 0); lcd.print("2="); //lcd.print(Bat1Voltage); TC=Bat1Voltage/10; lcd.print(TC/100); // print voltage value lcd.print("."); lcd.print(TC-(TC/100)*100); // print voltage value lcd.print("V"); lcd.setCursor(0, 1); lcd.print("3="); //lcd.print(Bat2Voltage); TC=Bat2Voltage/10; lcd.print(TC/100); // print voltage value lcd.print("."); lcd.print(TC-(TC/100)*100); // print voltage value lcd.print("V"); TotalCurrent=((FetVoltage*3)-(BatVoltage+Bat1Voltage+Bat2Voltage))/20; lcd.setCursor(8, 1); lcd.print("I="); if (TotalCurrent<0) { lcd.print("0"); } else if (TotalCurrent<10) { lcd.print("0.0"); lcd.print(TotalCurrent); // print Current value } else { lcd.print(TotalCurrent/100);// print Current value lcd.print("."); lcd.print(TotalCurrent-(TotalCurrent/100)*100);// print Current value } lcd.print("A"); if ((BatVoltage+Bat1Voltage+Bat2Voltage) > (LiMaxThreshold*3)) { digitalWrite(ledPinON, HIGH); // set the LED on digitalWrite(PinON, LOW); // set the Relay,led charger on } else { done=true; digitalWrite(ledPinON, LOW); // set the LED off - stop loading digitalWrite(PinON, HIGH); // set the Relay,led charger on /*for (int i=0; i<100 ; i++) //speaker digitalWrite(SPKPin, HIGH); delay(1); digitalWrite(SPKPin, LOW); delay(1);*/ } delay(1000); }
sensorCurrent
(измерение тока заряда при наличии LCD)на вывод 12 PinON подключить релюшку и светодиод индикации зарядки
на вывод 13 светодиод окончания зарядки
ну и стабилизатор на 5 вольт поставить на питане ардуины
Lcd можно не использовать (но с ним удобно настраивать сенсоры но можно и по вольтметру)
ну и две кнопки хардовый ресет(на случай остановки заряда вручную) и старт зарядки
питание зарядки 15 вольт
окончание заряда автоматическое
правильная схема
ну и дуину можно любую на 8 меге 168 или 328
Спасибо! Как раз думал про lipo зарядку.
начал тут разрабатывать самодельную зарядку, но вспомнил что валяется балансир. заряжать он не умеет, но это поправимо
диф усилители выдают точное напряжение на каждой банке относительно земли, чтобы можно было подавать на ацп ардуины
LM324 можно заменить на LM358. 324 просто заложил чтобы еще сделать измерение тока зарядки и была возможность его регулировать
понимаю что это только начало, но мало ли кому пригодится
начал тут разрабатывать самодельную зарядку, но вспомнил что валяется балансир. заряжать он не умеет, но это поправимо. диф усилители выдают точное напряжение на каждой банке относительно земли, чтобы можно было подавать на ацп ардуины
Подстроечных элементов на схеме не видно (или там 1% ?), да и ток балансировки через операционники - небольшой...
зачем подстроечные? это лишнее, даже если проверить тестером 5% резисторы то там все достаточно неплохо. ну может немного подобрать придется. хотя 1% были бы лучше
это схема просто диф усилителей чтобы не городить делители, а потом напряжение одной банки вычитать из напряжения двух банок, чтобы узнать напряжение второй банки. при этом погрешнотсь измерения с одной банки и 2 банок сложится (ориентировочно, если не перемножится. не помню как там правильно считатется) для второй банки. если 3 банки тоже самое
к тому же если делать делители например для 3 банок, напряжение нужно уменьшить делителем как минимум в 2.5раза, и соотвтетственно точность станет хуже в 2.5 раза
так как платы делать могу и не пугает пайка, да и LM324 куча валяется, решил сделать как лучше
балансировка не через операционники
блин задолбался разводить зарядник. для лута делаю минимум переходных в том и сложность
но еще надо импульсный регулятор напряжения, жк дисплей, кнопки
показаны обе стороны сразу
может кто нибудь конкретно разбирался с литиевыми аккумуляторами? просто пытаюсь узнать как правильно считать процент заряда у аккумулятора
почитал кучу статей, но хочется понять правильно ли я все понял. в основном приводятся зарядные/разрядные характеристики без кривой уровня заряда
и тут вопрос. этот график соответствует действительности?
нашел интересный проект
http://vrtp.ru/index.php?showtopic=23867&hl=
смысл в следующем. импульсный понижающий стабилизатор LM2596, выставляется нужно напряжение, управляющий на управляющий пин также подать через фильтр шим для регулировки напряжения/тока
просто оказалось что у меня нет проских дросселей, но есть такой модуль, который проще использовать
я почти сделал трассировку))) что то сложновато получается. многовато деталей
Для измерительных цепей заказал себе MCP6002-I/P и MCP6242-E/P - это относительно недорогие rail-2-rail ОУ, питание у них 5 вольт, размах выхода от 0 до питания, но я специально искал в дипе, в мелких корпусах выбор больше.
неплохо. но неоправдано для измерения напряжения. да и для тока не особо нужен. так как ток при зарядке не нулевой
пожалуй предпрочтительнее по цене-выполняемым функциям LM324 или LM358
MCP6002-I/P - 10шт за 185 руб, я думаю стоит.
50шт за 353
http://ru.aliexpress.com/item/MCP6002-I-SN-MCP6002T-I-SN-MICROCHIP-SOP8-...
но не суть. просто у меня много 324 валяется, поэтому на них и делал, в данных условиях хватает
50шт за 353
В дипе бы такое удовольствие... 324 и у меня валом, как и 328, и иже с ними... но 0 у них - не ноль, питать надо отдельно, точность с ними не ахти, не я не агитирую, так просто к слову.
а у меня 358 нету, вот думаю уже давненько. 324 валом, но хочется 358. стоят копейки, но нафига еще 358 если есть 324 и так и не купил до сих пор
а насчет точности я бы поспорил. делал на нем иснтрументальный и сравниванили с ad625. очень неплохо себя показала 324 совсем немного проигрывая, но 324 не поставишь конечно в нормальное устройство
Кстати была задумка вот такой ПН собрать, и управлять попробовть поуправлять им с мк.
но зачем особо развязка при таком напряжении?
или это повышающий? лень в переводчик копировать?
The input voltage can be about 9 - 18 V and output voltage can be selected as needed in the range of about 3 - 50V.
Что тут переводить?
неплохо. только обратную связь добавить
блин я затупил . делаю плату, и забыл сделать зеркально когда печатал, значит завтра или на выходных сделаю плату))
ну вот наконец сделал плату и впял детали
выглядит конечно не так прикольно как в реальности, но не суть
А что будет если на ОУ по входу подать напряжение обратной полярности? Уйдёт в мир иной с пиротехническими эффектами?
а вот что
есть одна интересная микросхема MP1584. анало LM2596 только на полевиках и частота выше, что конечно плюс, из минусов макс. входное напряжение 28В. но мне лично не приходится снижать напряжением вольт с 35 например. да и цена порадовала))
http://ru.aliexpress.com/item/MP1584-MP1584EN-LF-Z-SOP8-Switching-regula...
вопрос в том на чем сделать аналог регулируемого резистора. оптопара с транзистором наверно не подойдет. больно крутая характеристика
интересно есть оптопара с резистором
Не понял зачем тебе регулируемый резистор?
что моя, что твоя зарядка управляется микроконтроллером
причем микроконтроллер управляет полевиком, регулируя ток и напряжение
и тут есть недостаток. зависание мк или ошибка в коде преведет к неизвестным последствим. одно из них взрыв и возгорания литийполимерного аккумулятора от перенапряжения
вот я и подумал. ограничение напряжения должно быть сделано в железе например данным стабилизатором, но он не ограничивает ток
на мк сделать управление, но только в сторону понижения напряжения, снижаем напряжение-снижается ток
и тут 3 пути:
1. резистор R1 с R2 задают выходное напряжение. если уменьшать R1 выходное напряжение будет падать. но так как он стоит в цепи просто так нельзя его изменять. нужно что то гальваноразвязанное, например резистивный оптрон. и соответственно можно будет уменьшать напряжение
2. сумматор на операционном усилителе. напряжение обратной связи подается на сумматор. на сумматор также подается напряжение пропорциональное шиму (через фильтр). если увеличивать скважность будет увеличиваться напряжение на выходе сумматора и соответственно падать напряжение на выходе стабилизатора
3. также сумматор, но и ток регулируется без участия МК. напряжение с шунта усиливается и подается на сумматор. с помощью МК можно регулировать усиление, и соответственно задавать ток (где то встречал как сделать усилитель с цифровым управлением, готовый брать не путь джедая)) )
че то много букв получилось
У всех мелкосхем smps есть 1-2 усилителя ошибок, на них заводится обратная связь, либо по напряжению либо по току, регулировка с МК должна быть напряжением, те ШИМ=>>фильтр=>>... вход усилителя ошибки. тыц или тут например.
Фильтр после ШИМ может и на ОУ.
ы. тк я в мк новичок, то пока до практической реализации все руки не дойдут, вчера вот на 3843 плату нарисовал, сегодня если время будет попробую.
ыы. Вот выдрано где-то на коте:
ОУ не обязателен, можно просто фильтр, делитель.
тут только 1. как и в LM2596. TL выделилась 2 входами управления
хотя чтение статей по ссылкам навело на другую мысль. тут не сумматор нужен, а компаратор с фильтром на выходе
мк задает напряжение, а не оперативно его регулирует. это задача стабилизатора
да у меня тоже до практики не дошло. плату спаял и снова времени нет
Ну и одного хватит, инфу МК может хоть с десяти собирать, и программно анализировать, вроде так. Только меня как-всегда эти-ваши мелкие корпуса раздражают... :)
мелкие это же круто))
Кстати можно потренироваться с управлением на 34063, их как грязи..
ага. и их модели есть в протеусе
нашел интересную статью. как есть пример как сделать источник напряжения с ограничением по току
http://www.microsmart.eu/index.php?topic=44.msg917#msg917
Если интересно, я повторил схему из #16 поста (danyk) на 3843, ключ irlz24n поставил, нормально работает, для аккумуляторного питания, когда при входном 10.8-14 надо получить стабильные, скажем 12 - самое то.
Попробую позже выход сделать как у обычного чоппера с p-каналом и порулить с мк.
Процесс:
Давно в голове крутилась идея покопаться со схемами мощных степ-апов, а тут получилось, прямо под нос поднесли. :) Идея заключается в запитке паяльника (24в) прямо от компа. Чем отдельно переделывать компьютерный БП на 24 вольта, проще прямо к рабочему компу зацепиться. Все равно всегда на столе стоит. Единственое, что смущает, в момент включения паяло довольно мощный ток от источника берет.
a5021, паяльник потянет - это ~50-60 ватт (китай-хакко), но бп компа должен запас иметь, а момент включения можно облегчить у 3843 есть soft-start - в даташите примеры есть как его организовать. Обсуждение преобразователя тут, там же и плату выложил.
побаловался с настройкой частоты хардварного шима на 9-10 пинах Atmega8 на внутреннем генераторе 8МГц. вот что получилось
а то для atmega328 есть, а для меги8 нет инфы быстрой настройки
оставил самые полезные частоты. 60 гц для меня неинтересно
какое мое было удивление когда analogWrite вместо 490 выдал 245. а я столько времени не проверял и думал что там 490)))
ДА
ДА
это к чему?
Други! Ваяю зарядку, почему у меня такая схема не работает, как в посте №21 , всякую белиберду выдает. Как картинку вставить? На lm358-2 штуки, собрал 3 измерителя напряжения аккумуляторов и на 1-ом ОУ измеритель тока проходящий через них, КУ подобрал резисторами, для измерения напр-ия равным 0.8, а для тока 14.5 (шунт 0.1 ом). Каждый ОУ отдельно работает замечательно, показывает все верно, но стоит соединить акк. последовательно получаются показания которых и быть не должно на одном из акк. 6.33в, хотя в реале 3.4 и питание всего 5в.
а ты сначала в протеусе тоже попробуй
картинку вставить третий значок слева сверху когда пишешь комментарий
приложи свою схему. мало ли чего забыл
кстати коэффициент усиления оу меньше 1 нехорошо
для некоторых оу минимальный коэффициент усиления например 6-7. у К140УД1 если не ошибаюсь
лучше сначала делитель, а потом усилитель с ку 1 или выше
спасибо, никогда не думал что КУ должен быть больше 1, могут ли быть из-за этого такие ошибки в показаниях? Как мне делитель реализовать паралельно акк. поставить делитель из двух резисторов, а с какого плеча снимать, по плюсу или по минусу? Картинку вставить так и не могу, третий значек слева "полужирный шрифт" есть значек "изображение" но там только с сервера можно залить, странно конечно, раньше я с такими проблеммами не сталкивался)))
делитель из 2 или 3 резисторов. какой хочешь. без разници по плюсу или минусу (для 2 резисторов)
справа))) да с сервера. жмешь а там можно закачать на сервер и ее вставить. чтобы не пропала картинка как если вставить с хостинга
Ура, разобрался! схема в принципе классическая, не считая неверного КУ, подумал может диоды на вход поставить, чтоб окончательно устранить влияние одного ОУ на другой.
ага. классическая. так что изменил? делитель и КУ?
ничего еще не менял, сейчас есть как на картинке, вот сижу думаю ставить диоды на вход ОУ или нет. Воще что-то замысловатая какая-то схема уже получается, резисторов целая гора, теперь ещё на каждый акк. минимум по два, итого целая гора рассыпухи, ни и других вариантов я не вижу, кроме того как мультиплексор подключить и переключать ОУ между акк., но это уже две микросхемы, крутовато вроде для такого несложного дела. Может есть какие-то другие варианты напругу померять?
диод параллельно? тогда только через резистор
ага есть. оптоизолированный усилитель)) прикольная штука. попробуй для интереса
вот так думаю, чтоб исключить влияние одного акк. на другой.
Оптоизолированый усилитель... гдеж их набраться..., делаем в основном чего по дукой есть