RSS блога
Подписка
Аккумуляторы 18650 и самодельная электронная нагрузка для их теста
- Цена: 3.4$ за 1 шт. (брал за 2.69$)
- Перейти в магазин
Добрый день!
Долго думал писать данный обзор или нет, но в итоге решился, т.к. мне кажется данная тема будет интересна.
В обзоре хочу рассказать не столько об аккумуляторах, сколько об устройстве, которое я сделал для их тестирования — электронной нагрузке на базе Ардуино. Но обо всем по порядку.
Для различных поделок по ссылке выше была заказана пара АКБ формата 18650. Посылка пришла за 22 дня, и по её пришествии я понял, что не имею какой-либо возможности измерить реальную ёмкость батарей. Было решено собрать электронную нагрузку с поддержанием постоянного тока разряда на база Ардуино, используя схему на базе компаратора.
1. Схема
За основу была взята схема из данного видео от Дейва. В ролике подробно объясняется принцип её работы, поэтому не буду останавливаться на самой схеме подробно, а расскажу о её модификации:
Все, что слева от компаратора LM393 — это блок формирования опорного напряжения. Уровень 3,3 В с Ардуино коммутируется транзистором VT1 на резисторы R4, R5 и делится ими пополам. Далее через резистор R6 заряжается конденсатор C2, на котором и формируется уровень опорного напряжения. VT1 управляется ШИМ пином Ардуино D9, регулируя скважность на котором можно изменять напряжение на С2. Почему так сложно спросите вы, ведь можно обойтись всего двумя элементами — подключить цепочку R6-C2 напрямую к пину 9. Это так. Но проблема в том, что при питании от USB уровень 5 В на Ардуино немного «плавает». Особенно заметно если нагрузить соседний порт USB какой-нибудь нагрузкой (жестким диском, например). В итоге это приводит к погрешности поддержания тока около 10 мА.
Второй важный момент в схеме — резистор R1, использующийся в качестве шунта. Он показан в виде одного элемента на схема, в реальности я собрал его из 7-ми параллельно включенных резисторов 3,9 Ом, 2 Вт. Использовать нужно как можно меньший номинал резистора, чтобы исключить значительный нагрев. При нагреве сопротивление немного «плывет», а следовательно это также приводит к ошибке.
И последнее, что я хотел бы отметить — это конденсатор С1, включенный параллельно затвору полевого транзистора IRF3205. Он снижает быстродействие схемы (оно нам и не нужно, т.к. напряжение при разряде АКБ падает медленно), но значительно увеличивает точность поддержания тока.
2. Сборка
Все было собрано на макетной плате, которая устанавливается непосредственно на Ардуино.
Донором большинства элементов послужил старый компьютерный БП (бюджет устройства в этом случае приближается к стоимости самой Ардуино). Радиатор здесь с запасом. Легко тянет 10 Вт. Хотя у меня обычно не бывает больше 5 Вт. Прелесть схемы в том, что легко можно увеличить мощность разряда добавив несколько полевых транзисторов в параллель и используя больший радиатор.
3. Программа
Ардуино несет две задачи: формирует опорное напряжение (пропорциональное току) с помощью ШИМ, а также фиксирует время разряда и напряжение на АКБ. При достижении порогового значения напряжения разряда, тест завершается.
В скетче я использовал библиотеку PWM.h, которая значительно расширяет ШИМ возможности Ардуино. Например, можно изменять частоту ШИМ с точностью до 1 Гц и менять разрядность. В скетче я использовал частоту ШИМ для D9 8008 Гц, что дает количество шагов 1000, вместо стандартных 256.
В диалоговом окне последовательного порта Arduino IDE задается ток в мА и напряжения отключения в В, после чего предлагается начать тест.
Данные отправляются каждые 5 секунд и состоят из:
время [c], напряжение на АКБ [В], ток [мА], емкость [мАч], напряжение питание [В]
По достижении напряжением порогового уровня тест прекращается и выдается сообщение об этом.
4. Результаты
Далее данные легко импортируются в Excel, где можно построить график вида:
Кстати, данный график ни что иное, как график разряда упомянутых в начале АКБ формата 18650. Как можно видеть из рисунка, емкость соответствует заявленной, хотя, судя, по плюсовой клемме, это все же не оригинальные батареи (5 дырок вместо 6ти у оригинала).
Жду еще четыре шт. от того же продавца, результатами поделюсь.
5. Вывод
Итоговое устройство полностью отвечает изначальным требованиям. Точность поддержания тока на уровне 1 мА при изменении напряжения 5 — 2 В и разрядном токе 1 А, что составляет 0,1%. Разрядная мощность может быть легко увеличена увеличением размеров радиатора. Разряжать можно не только в режиме постоянного тока, но и постоянной мощности, постоянного сопротивления, импульсном режиме и т.д. Все, что для этого нужно, это произвести небольшую модификацию кода.
Также протестировал батарею своего смартфона Nexus 5 — оказалось она за 1,5 года потеряла 15 % емкости. Но с покупкой новой пока решил повременить.
Если будут вопросы, то с удовольствие отвечу в комментариях.
Долго думал писать данный обзор или нет, но в итоге решился, т.к. мне кажется данная тема будет интересна.
В обзоре хочу рассказать не столько об аккумуляторах, сколько об устройстве, которое я сделал для их тестирования — электронной нагрузке на базе Ардуино. Но обо всем по порядку.
Для различных поделок по ссылке выше была заказана пара АКБ формата 18650. Посылка пришла за 22 дня, и по её пришествии я понял, что не имею какой-либо возможности измерить реальную ёмкость батарей. Было решено собрать электронную нагрузку с поддержанием постоянного тока разряда на база Ардуино, используя схему на базе компаратора.
1. Схема
За основу была взята схема из данного видео от Дейва. В ролике подробно объясняется принцип её работы, поэтому не буду останавливаться на самой схеме подробно, а расскажу о её модификации:
Все, что слева от компаратора LM393 — это блок формирования опорного напряжения. Уровень 3,3 В с Ардуино коммутируется транзистором VT1 на резисторы R4, R5 и делится ими пополам. Далее через резистор R6 заряжается конденсатор C2, на котором и формируется уровень опорного напряжения. VT1 управляется ШИМ пином Ардуино D9, регулируя скважность на котором можно изменять напряжение на С2. Почему так сложно спросите вы, ведь можно обойтись всего двумя элементами — подключить цепочку R6-C2 напрямую к пину 9. Это так. Но проблема в том, что при питании от USB уровень 5 В на Ардуино немного «плавает». Особенно заметно если нагрузить соседний порт USB какой-нибудь нагрузкой (жестким диском, например). В итоге это приводит к погрешности поддержания тока около 10 мА.
Второй важный момент в схеме — резистор R1, использующийся в качестве шунта. Он показан в виде одного элемента на схема, в реальности я собрал его из 7-ми параллельно включенных резисторов 3,9 Ом, 2 Вт. Использовать нужно как можно меньший номинал резистора, чтобы исключить значительный нагрев. При нагреве сопротивление немного «плывет», а следовательно это также приводит к ошибке.
И последнее, что я хотел бы отметить — это конденсатор С1, включенный параллельно затвору полевого транзистора IRF3205. Он снижает быстродействие схемы (оно нам и не нужно, т.к. напряжение при разряде АКБ падает медленно), но значительно увеличивает точность поддержания тока.
2. Сборка
Все было собрано на макетной плате, которая устанавливается непосредственно на Ардуино.
Донором большинства элементов послужил старый компьютерный БП (бюджет устройства в этом случае приближается к стоимости самой Ардуино). Радиатор здесь с запасом. Легко тянет 10 Вт. Хотя у меня обычно не бывает больше 5 Вт. Прелесть схемы в том, что легко можно увеличить мощность разряда добавив несколько полевых транзисторов в параллель и используя больший радиатор.
3. Программа
Ардуино несет две задачи: формирует опорное напряжение (пропорциональное току) с помощью ШИМ, а также фиксирует время разряда и напряжение на АКБ. При достижении порогового значения напряжения разряда, тест завершается.
В скетче я использовал библиотеку PWM.h, которая значительно расширяет ШИМ возможности Ардуино. Например, можно изменять частоту ШИМ с точностью до 1 Гц и менять разрядность. В скетче я использовал частоту ШИМ для D9 8008 Гц, что дает количество шагов 1000, вместо стандартных 256.
Скетч
#include <PWM.h>
#define A_PIN 0
#define alpha 0.001
#define typVbg 1.072 // 1.072 adeep, 1.075 для Chip 1st
#define PWMpin 9
int32_t frequency = 8008;
float Voff = 0;
float tmp = 0;
int I = 0;
int mA = 0;
float Vcc[2];
float Vb[2];
long timer;
long testStart;
void setup() {
Serial.begin(9600);
InitTimersSafe(); //initialize all timers except for 0, to save time keeping functions
bool success = SetPinFrequencySafe(PWMpin, frequency); //sets the frequency for the specified pin
if (success) { //if the pin frequency was set successfully, turn pin 13 on
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
pwmWriteHR(PWMpin, 0);
analogReference(DEFAULT); // DEFAULT INTERNAL использовать Vcc как AREF
Serial.println(«Current =? [mA]»);
while (Serial.available() == 0) {
}
mA = Serial.parseInt();
Serial.println(«Voff =? [V]»);
Serial.println('\n');
while (Serial.available() == 0) {
}
Voff = Serial.parseFloat();
Serial.print(«Current = „);
Serial.println(mA);
Serial.print(“Voff = „);
Serial.println(Voff, 3);
Serial.println(“OK? Press any key to start the test...»);
Serial.println('\n');
while (Serial.available() == 0) {
}
tmp = 0.3476*mA + 1.2806; // New
I = tmp*65535.0/1000.0;
Serial.println(«s\tV\tmA\tmAh\tVcc»);
timer = millis();
testStart = millis();
Vcc[1] = readVcc();
Vb[1] = analogRead(A_PIN) * Vcc[1] / 1023.0;
tmp = mA;
mA = 0;
sendData();
mA = int(tmp);
pwmWriteHR(PWMpin, I);
delay(2000);
Vcc[0] = readVcc();
Vb[0] = analogRead(A_PIN) * Vcc[0] / 1023.0;
}
void loop() {
Vcc[1] = alpha * readVcc() + (1 — alpha) * Vcc[0];
Vcc[0] = Vcc[1];
Vb[1] = analogRead(A_PIN) * Vcc[0] * alpha / 1023.0 + (1 — alpha) * Vb[0];
Vb[0] = Vb[1];
if (millis() — timer > 5000) {
sendData();
timer = millis();
}
if (Vb[1] < Voff) { //выключение нагрузки при достижении порогового напряжения
sendData();
pwmWriteHR(PWMpin, 0);
Serial.println(«Test is done»);
while (2 > 1) {
}
}
}
void sendData() {
Serial.print((millis() — testStart) / 1000);
Serial.print("\t");
Serial.print(Vb[1], 3);
Serial.print("\t");
Serial.print(mA, DEC);
Serial.print("\t");
Serial.print(float(mA) * (millis() — testStart) / 3600000, 0); //расчет емкости АКБ в мАч
Serial.print("\t");
Serial.println(Vcc[1], 3);
}
float readVcc() {
float tmp = 0.0;
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(1);
ADCSRA |= _BV(ADSC); // Start conversion
while (bit_is_set(ADCSRA, ADSC)); // measuring
uint8_t low = ADCL; // must read ADCL first — it then locks ADCH
uint8_t high = ADCH; // unlocks both
tmp = (high << 8) | low;
tmp = (typVbg * 1023.0) / tmp;
return tmp;
}
#define A_PIN 0
#define alpha 0.001
#define typVbg 1.072 // 1.072 adeep, 1.075 для Chip 1st
#define PWMpin 9
int32_t frequency = 8008;
float Voff = 0;
float tmp = 0;
int I = 0;
int mA = 0;
float Vcc[2];
float Vb[2];
long timer;
long testStart;
void setup() {
Serial.begin(9600);
InitTimersSafe(); //initialize all timers except for 0, to save time keeping functions
bool success = SetPinFrequencySafe(PWMpin, frequency); //sets the frequency for the specified pin
if (success) { //if the pin frequency was set successfully, turn pin 13 on
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
pwmWriteHR(PWMpin, 0);
analogReference(DEFAULT); // DEFAULT INTERNAL использовать Vcc как AREF
Serial.println(«Current =? [mA]»);
while (Serial.available() == 0) {
}
mA = Serial.parseInt();
Serial.println(«Voff =? [V]»);
Serial.println('\n');
while (Serial.available() == 0) {
}
Voff = Serial.parseFloat();
Serial.print(«Current = „);
Serial.println(mA);
Serial.print(“Voff = „);
Serial.println(Voff, 3);
Serial.println(“OK? Press any key to start the test...»);
Serial.println('\n');
while (Serial.available() == 0) {
}
tmp = 0.3476*mA + 1.2806; // New
I = tmp*65535.0/1000.0;
Serial.println(«s\tV\tmA\tmAh\tVcc»);
timer = millis();
testStart = millis();
Vcc[1] = readVcc();
Vb[1] = analogRead(A_PIN) * Vcc[1] / 1023.0;
tmp = mA;
mA = 0;
sendData();
mA = int(tmp);
pwmWriteHR(PWMpin, I);
delay(2000);
Vcc[0] = readVcc();
Vb[0] = analogRead(A_PIN) * Vcc[0] / 1023.0;
}
void loop() {
Vcc[1] = alpha * readVcc() + (1 — alpha) * Vcc[0];
Vcc[0] = Vcc[1];
Vb[1] = analogRead(A_PIN) * Vcc[0] * alpha / 1023.0 + (1 — alpha) * Vb[0];
Vb[0] = Vb[1];
if (millis() — timer > 5000) {
sendData();
timer = millis();
}
if (Vb[1] < Voff) { //выключение нагрузки при достижении порогового напряжения
sendData();
pwmWriteHR(PWMpin, 0);
Serial.println(«Test is done»);
while (2 > 1) {
}
}
}
void sendData() {
Serial.print((millis() — testStart) / 1000);
Serial.print("\t");
Serial.print(Vb[1], 3);
Serial.print("\t");
Serial.print(mA, DEC);
Serial.print("\t");
Serial.print(float(mA) * (millis() — testStart) / 3600000, 0); //расчет емкости АКБ в мАч
Serial.print("\t");
Serial.println(Vcc[1], 3);
}
float readVcc() {
float tmp = 0.0;
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(1);
ADCSRA |= _BV(ADSC); // Start conversion
while (bit_is_set(ADCSRA, ADSC)); // measuring
uint8_t low = ADCL; // must read ADCL first — it then locks ADCH
uint8_t high = ADCH; // unlocks both
tmp = (high << 8) | low;
tmp = (typVbg * 1023.0) / tmp;
return tmp;
}
В диалоговом окне последовательного порта Arduino IDE задается ток в мА и напряжения отключения в В, после чего предлагается начать тест.
Данные отправляются каждые 5 секунд и состоят из:
время [c], напряжение на АКБ [В], ток [мА], емкость [мАч], напряжение питание [В]
По достижении напряжением порогового уровня тест прекращается и выдается сообщение об этом.
4. Результаты
Далее данные легко импортируются в Excel, где можно построить график вида:
Кстати, данный график ни что иное, как график разряда упомянутых в начале АКБ формата 18650. Как можно видеть из рисунка, емкость соответствует заявленной, хотя, судя, по плюсовой клемме, это все же не оригинальные батареи (5 дырок вместо 6ти у оригинала).
Жду еще четыре шт. от того же продавца, результатами поделюсь.
5. Вывод
Итоговое устройство полностью отвечает изначальным требованиям. Точность поддержания тока на уровне 1 мА при изменении напряжения 5 — 2 В и разрядном токе 1 А, что составляет 0,1%. Разрядная мощность может быть легко увеличена увеличением размеров радиатора. Разряжать можно не только в режиме постоянного тока, но и постоянной мощности, постоянного сопротивления, импульсном режиме и т.д. Все, что для этого нужно, это произвести небольшую модификацию кода.
Также протестировал батарею своего смартфона Nexus 5 — оказалось она за 1,5 года потеряла 15 % емкости. Но с покупкой новой пока решил повременить.
Если будут вопросы, то с удовольствие отвечу в комментариях.
Обновление от 10.04.2016
Как и обещал делюсь результатами тестов еще четырех аккумуляторов от этого продавца.
Итого все шесть кривых разряда я разместил на одном графике:
Разброс емкости составил от 2582 до 2688 мАч. Все шесть АКБ пошли на замену элементов батареи ноутбука и вот уже неделю нормально работают.
Итого все шесть кривых разряда я разместил на одном графике:
Разброс емкости составил от 2582 до 2688 мАч. Все шесть АКБ пошли на замену элементов батареи ноутбука и вот уже неделю нормально работают.
Самые обсуждаемые обзоры
+24 |
1170
44
|
+198 |
7632
270
|
+45 |
2407
83
|
+43 |
2666
59
|
+57 |
2912
50
|
Без конденсатора эта схема не просто "очень даже может начать самовозбуждаться", а она гарантировано будет самовозбуждаться. Конденсатор с резисторами добавляют полюс с постоянной времени (R2||R7)*(С1+Сgs) и позволяют добиться устойчивости схемы.
А если взять нормальный скомпенсированный операционник с достаточным запасом по фазе/усилению, чтобы напрямую работать на подзатворную емкость полевика, то ничего добавлять не надо будет. Получится классический источник постоянного тока на ОУ и MOSFET'е.
Плюс за обзор.
А не думали резисторы взять в SMD-исполнении и всю гирлянду тоже прижать к радиатору через прокладочку?
А если просто цифру получить, без графиков — так к этой ардуине и семисегментник или жк можно прикрутить — пинов свободных море. Ну или sd-карточку прикрутить.
А на есп начнётся геморрой с пяти вольтами, к тому же.
График показывает напряжение питания еспшки, насчет его реальности не уверен, в софте нет округления. Гуляет питание на 1117й или опорное ацп не знаю.
Плюсану и добавлю в закладку, может руки дойдут да заколхозится такая штука с моими хотелками ^_^
За руки однозначный +. А аккумы скорее всего SZN, они такие характеристики выдают. Так что требуйте с прода назад деньги за термоусадку с надписью самсунг.
А вот с этого место можно поподробнее?
Увы, в excele я не настолько силён
Поэтому у меня в одном файле стоит корявая формула:
Минуты три писал… :)
Просто есть гугл — он многое знает, есть куча форумов — в самом неожиданном месте можно найти самого неожиданного специалиста, мне как то потребовалась помощь, что бы разобраться в правилах верстки книг (я, наивный, хотел просто узнать стандартный размер печатного поля для формата А5) — нашел на форуме по ремонту принтеров/копиров, а заодно узнал, что я задал там совсем не тот вопрос, и кроме того столько полезного по этому вопросу и познакомился с отличным человеком…
Так что надо просто спрашивать.
Другой вопрос, что не всегда подозреваешь, что какая то программа может сделать нечто, отличное от того, для чего привык ее использовать…
startcopy.su который, правда, тогда он еще на старом движке работал и в другом домене — .ru
Но народ остался тот же…
Я там лет 12-13 примерно кручусь, все меняется, конечно, и многих из тех, кто когда то там был завсегдатаем, просто уже нет там, по очень разным причинам — но место для меня привычное…
P.S. народ,-объясните тёмному человеку, зачем покупать и причём совсем недешево аккумуляторы в Китае? У нас что перестройка началась?)) В магазинах полно аккумуляторов Varta, Ansmann Energy, Eneloop и др, чем они хуже? Брать в Китае, это играть в рулетку. Копеечная выгода, жажда экспериментов, что другое или я что-то недопонимаю? С ув. Спасибо.
Не по две штуки, конечно — но мне две штуки и не нужны как то…
В обзоре речь идет о Li-Ion (18650) аккумуляторах, попробуйте купите их тут по адекватной цене.
А насчет Ni-MH вы приводите в пример какой-то безродный CAMELION и к тому же жутко дорогой.
Бюджетный выбор тут, 4 акка реальной емкости 2000 за 299 руб.
Ну а если ИКЕИ рядом нет, то все сводится к тому с чего начали — китайцы.
Еще есть AAA, 750 mAh 199 руб. за 4 штуки, тоже неплохо.
Вот потому и покупаем.
Требуйте с продавца плюшек за рекламу.
PS: У кого есть ссылочка на али на недорогие и честные 18650 с защитой?
Можно и панасы найти. Только по моему лучше чуть-чуть переплатить и гарантированно нормальные купить (+пластиковый кейс) в проверенном месте, чем на али кота в мешке.
у меня все 18650 используются через данные контроллеры от siemens / nokia…
но в современных и бюджетных (не заводских) АКБ бывает что контроллеры вообще отсутствуют…
Больше всего времени ушло на оптимизацию схемы.
По окончании разряда выставляем единицу на D9.
Ну и R6 с C2 можно выкидывать.
Ничто не ново под луной…
Предложенная схема ближе к ЦАП с матрицей весовых резисторов
С весовыми резисторами — совсем другие требования к количеству номиналов и их точности.
Я бы не стал паяться к аккумулятору. Я бы электронную нагрузку совместил бы с этим:
Никак не соберусь обзор написать.
А зачем — компаратор? Интегрирующей цепочкой R6C2 вы избавляетесь от дискретности опорного сигнала, интегрирующей цепочкой R2R7C1 стремитесь линеаризовать выходной каскад — а потом бац, и ставите между ними компаратор?
По сути, у вас получился автогенератор: компаратор непрерывно переключается туда-сюда, ключ непрерывно открывается и закрывается, а чтобы частота этого автогенератора не улетала в небеса, вы «притормозили» выходной каскад конденсатором на затворе.
Но.
Во-первых, притормаживать имело смысл именно компаратор — ключ должен открываться максимально быстро, время переходных состояний — это время, когда ключ греется.
Во-вторых, раз уж вы стремились сделать схему максимально линейной, не логичнее ли было поставить вместо компаратора обычный ОУ?
Ну и в-третьих… Если все-таки делать схему импульсной, зачем вообще весь огород? В ардуино есть АЦП, есть компаратор, есть завязанные на компаратор блоки захвата-сравнения таймера ШИМ… То есть все, что вы реализовали (кроме выходного транзистора и резисторов шунта) — внутри Ардуино уже есть. :)
Схема получается проще, нет необходимости настраивать, подбирая коэффициенты.
Это классический метод поддержания тока большинства умных зарядок
2. Всё таки мне кажется построить и отладить аналоговую цепь поддержания тока значительно проще.
Наличие медленной ООС переводит его в генераторный режим работы
Чтобы вогнать компаратор в линейный режим, его надо охватить быстродействующей достаточно глубокой ООС. В данном случае ООС охвачен весь узел, и ни о каком быстродействии речь не идет: благодаря интегрирующим цепям в затворе транзистора, сигнал на отрицательном входе компаратора достигнет требуемой величины много позже, чем компаратор переключится.
Автор, рассудите нас!
Ткните осциллографом в шунт — прямая там или меандр?
Схема интересна тем, что происходит многократное преобразование. ШИМ контроллера — интегратор — ШИМ на компараторе — интегратор — усилитель
1. Я стремился минимизировать пульсации тока на стороне нагрузки — АКБ, в идеале добиться от графика тока прямой линии. То, что транзистор греется не имеет значения — это его прямая функция в данной схеме.
2. Возможно. Тут сыграл принцип «из того, что есть». Любому компоненту найдется лучший аналог. Это вопрос разумной достаточности.
3. Именно так я и думал, но все оказалось не так просто. Дискретность Ардуины не позволят добиться приемлемой для меня точности поддержания тока. Максимальную точность, которую мне удавалось получить составляла около 50 мА. Возможно, мне не хватило навыков программирования. Но я был очень рад, когда нашел решение в виде совмещения цифровой и аналоговой схемы.
Сигнал с токового датчика усиливаете ОУ до 2,5В и подаёте на АЦП.
ООС организуете программным методом. В итоге, получаете высокую линейность поддержания тока без подбора коэффициентов
Компаратор и ОУ — разные приборы. Внешне — похожие, но по сущности — разные. В результате, вместо линейного регулятора тока, вы получили автогенератор.
А чем это плохо? Ток в нагрузке абсолютно линейный, могу прислать осциллограмму.
Ваш вариант вполне нормально работает. Весь спор о том, что можно сделать по-другому.
Если честно я не понял зачем R2C1 на затворе.
Но я так полагаю это больше чистое везение чем точный расчёт.
По хорошему надо эту схему рассчитать на устойчивость как классический ПИ-регулятор.
Уважаемый автор, а откуда инфа что в оригинале должно быть 6 дырок?
6 дырок. :)
Только стабильного питания потребует. Включать от компьютерного выхода USB не получится, т.к. 5 В на PWM выходе будут плавать. Можно, конечно, опять же попытаться скомпенсировать программно, но не уверен что получится.
В Меге есть встроенный источник образцового напряжения AREF +2,56В (либо 1,1В), которое и является опорой для измерения
А в Вашем варианте точность измерения напряжения будет напрямую влиять на результирующую измеренную емкость АКБ.
В Уно он тоже есть, и я его использую в скетче. Но точность измерения все равно посредственная получается.
Очевидно Вы не использовали программную ООС по току
Но можно сделать такой хинт: включить внешнюю опору и соединить AREF и 3.3В. Только — обязательно через резистор в килоом-другой, а то можно получить фейерверк.
Спасибо! Интересная идея. Определенно пригодится для будущих проектов.
В принципе, встроенный опорный источник по качеству можно сравнить со стабилитроном Д818В.
Еще одна тонкость — если атмега подвисает, ШИМ сохраняется или залипает в одном из положений?
Впрочем его и в других бюджетных контроллерах нет
У современных полевиков крутизна весьма велика, и вогнать его в линейный режим, просто меняя потенциал на затворе, если и удастся — то очень ненадолго; рабочую точку он почти моментально потеряет: температура, динамическая проходная емкость и куча прочих факторов. Без ОУ в затворе, охваченного ООС вместе с полевиком, вряд ли узел будет линейным.
Выше я имел в виду чуть другое решение. У TC1 блок capture/compare допускает управление с выхода встроенного компаратора меги. То есть, вся схема ШИМа с обратной связью получается полностью аппаратной — «инициализировал, и работает». Да, ток в нагрузке не будет идеально постоянным — но он ни в каком решении таким не будет, кроме полностью аналогово-линейного. А тут — он будет колебаться в пределах гистерезиса компаратора.
Да, и почему 0.5Ом, когда в таком случае выгодней ставить 0.1Ом и даже меньше вплоть до стандартных шунтов с падением в 75мВ.
И аккумулятор надо подключать уже по 4-х проводной схеме, ибо падение напряжения на проводах под током будет вносить погрешность в измерение напряжения.
Не перестаю удивляться тупости людей. Грубо? Да, но, увы, это факт.
Просто вы покупая их в обёртке под самсов переплачиваете нечестным продавцам ни за что.
Ну и умощнить. Причем наиболее оптимальны способ мне видится такой: чтобы не ставить громоздкий вентилятор и т.д., можно в разрыв цепи АКБ-транзистор-шунт поставить еще один клеммник. При мощности, скажем, до 10Вт просто закорачивать его перемычкой. А если нужна мощность больше, то можно втыкать туда любое сопротивление, которое обеспечит нужный ток (контур регулирования тока будет работать). Идеально было бы нихромовую спираль. Только нужно все аккуратно подсчитать.
Вообще, у меня есть идея адаптировать схему под автомобильные АКБ.
Датчик тока остается тем же самым, дополнительное сопротивление можно просто прикинуть — поставил 1 Ом, при токе 10 А на нем упадет 10 В и 100 Вт соответственно, осталось прибавить к 10 В падение напряжения на датчике тока и отнять эту сумму от напряжения испытываемого аккумулятора.
Точность в расчете этого сопротивления не нужна, практически только примерная прикидка, что бы вся схема не вышла за реальные режимы.
К примеру, если испытательный ток 10 А, на датчике тока падает 1В, на дополнительном сопротивлении 10 В, напряжение аккумулятора 14 В — на транзистор остается 3 В, что при этом токе выделит на нем мощность 30 Вт.
Что на 100 Вт меньше, если бы не ставили дополнительное сопротивление.
Прикидывал я такие варианты, даже можно поставить поставить несколько резисторов и коммутировать их в зависимости от испытательного тока теми же полевиками — на полностью открытом полевике мощность выделяется совсем не такая, как на частично открытом, особенно если выбрать полевики с низким Rds…
Единственное преимущество такой схемы — резистор труднее сжечь, чем транзистор, то бишь если 15 В аккум испытывать током 10А — в любом слкчае будет выделяться тепловая мощность 150 Вт, но можно 10 оставить на относительно нежный транзистор, а остальные — на батарею мощных резисторов.
Габариты при этом как бы не увеличились, а вот надежность должна заметно возрасти.
Но спорить не буду…
Тут кстати в пример можно привести всем известный кусочек кремния, в котором миллионы полевиков и при типичном тепловыделении в 150Вт они вполне себе работают годами.
Хочешь надёжности — бери два полевика с TDP = 150Вт в параллель и вешай их на один радиатор, вроде типичного компьютерного кулера с активным охлаждением температура транзисторов будет находится в безопасной границе. А нихром… раскаляясь он будет выжигать кислород не говоря уже о пыли и другой гадости которая будет непременно липнуть к проволоке и со временем пригорать. К тому же, использование балластного резистора ухудшает характеристики схемы по необходимости их коммутировать вручную или сужая рабочий диапазон по напряжению.
И не надо приводить в пример всем известный кусочек кремния — там все другое.
И для эффективного отвода тепла от этого полевика придется и радиатор строить другой.
В конце концов, спросите у kirich-а, до какой температуры греются радиаторы на его электронной нагрузке — а там два немаленьких радиатора, продуваемых вдоль ребер двумя вентиляторами.
И, заметте — я не говорю, что делать нужно только и исключительно с дополнительными сопротивлениями, я просто говорю, что так делать можно и от этого есть некоторая польза.
Но и некоторый вред тоже.
Или, как минимум, геморой.
У любого решения есть как свои плюсы, так и свои минусы.
Взять даже самый дешёвый компьютерный кулер, он способен рассеять тепла 50-60Вт без особых проблем и достаточно тихим вентилятором.
Чего уж сказать о более продвинутых системах, изначально рассчитанных на TPD в 150Вт.
Стоят, правда, как крыло боинга, а некоторые и на фюзеляж потянут.
Какие радиаторы были — такие и поставил.
Заказывать фрезеровку/отливку под свой проект…
Оно можно, конечно.
В общем, берите штуки четыре кулера от процессора, среднего ценового диапазона, монтируйте такую хрень и пробуйте.
Я же не говорю, что нельзя сделать нагрузку на 10кВт — можно.
Даже схема почти та же останется.
И даже можно сделать охлаждение жидким азотом.
И можно забыть про соотношение цена/качество.
Я вроде не возражал, что можно делать без резисторов?
Вот теперь я возражаю, что можно делать с ними: нельзя!
Это неправильно, технически неграмотно, не кошерно, не универсально и вообще не!
Вы меня убедили!
Поздравляю!
Но скажу так, температура выходящего воздуха довольно большая, а это значит что теплосьем происходит довольно эффективно.
При экспериментах по проверке БП я нагружал его до 350-400 Ватт (400 кратковременно). Транзисторы при этом нагревались до отключения по перегреву, а у меня стоят терморазмыкатели на 90 градусов.
Попробуйте рассейте тихим компьютерным куллером 300-400 Ватт, в корпусе.
Да, на макс мощности я снимал верхнюю крышку, но все равно даже в таком варианте есть преграды воздушному потоку.
1. Верхний порог температуры у полевого транзистора в линейном режиме будет меньше чем в ключевом.
2. Так просто соединять я бы не стал, собственно потому у меня сделана токовая стабилизация на каждый из восьми полевых транзисторов. Т.е. ток через транзисторы всегда поддерживается примерно одинаковым.
3. 150 Ватт Вы также вряд ли снимете с корпуса ТО247 при температуре корпуса до 100 градусов, а выше лучше не греть.
Либо будет мощный обдув.
Пусть меняется в любую сторону, его трудности.
Позволяет тестировать как отдельные банки, так и сборки аккумуляторов, включая автомобильные аккумуляторы и аккумуляторы электроинструмента.
Осталось ещё написать управляющую программу :)
В программе наибольшей сложностью пожалуй будет ПИ-регулятор написать.
Осталось собрать и сравнить с аналоговой схемой на точность :)
Цифровой выход 5V/20V переключает предел измерения напряжения аккумулятора.
В высокоимпедансном состоянии предел измерения 5V, в состоянии логического ноля предел 20V.
Если аккумулятор имеет напряжение свыше 10В, необходимо последовательно с предохранителем подключить балластное сопротивление для разгрузки полевика по напряжению и мощности.
Схема позволяет программно определять подключение аккумулятора и сгорание предохранителя (наличие напряжения при отсутствии тока)
Это связано с конструкцией внутреннего мультиплексора AREF: у него низкоомные ключи, а сам вывод AREF — это ВЫХОД мультиплексора (и соответственно опорный вход АЦП).
Соответственно, режим «внешний AREF» — это режим мультиплексора «все ключи закрыты». Вот только этот режим еще надо включить. А до того — опорным является Vcc, которое и скоммутировано на AREF. Подключаем туда другой низкоомный источник напряжения — и получаем «коротыш» через кристалл контроллера.
У Вас процессор учавствет в цепи ОС, я бы не стал так делать.
Куда проще и лучше процессором формировать напряжение, которое просто сравнивать на ОУ.
Т.е. в цепи ОС стоит ОУ, а не МК.
Луче делать программно-аппаратную реализацию ООС, но схема усложняется.
Хотя по большому хватило бы и прошивки, но там ПО на комп на китайском :(
В последней схеме я вообще не понимаю как открывается ШИМ транзистор ибо коллектор висит в воздухе.
Транзистор подключён по схеме с ОБ и открывается током PWM (+5V) — резистор 10к — база транзистора — эмиттер транзистора — +3,3V
На коллекторе получаются импульсы стабильной амплитуды 3,3V. Базовый ток на выход не влияет.
Достоинство схемы — она позволяет контролировать реальный ток разряда и при необходимости корректировать его цепью медленной программной ООС. Быстрая ООС реализована аппаратно на базе ОУ.
Программно-аппаратный метод регулирования в данном случае является самым точным и эффективным
В моем представлении NPN транзистор открыт когда ток базы течет в эмиттер. Но чтобы зарядить конденсатор 10 мкФ ток в эмиттере должен течь в противоположном направлении — в коллектор. Как могут токи в одном проводнике течь в разные стороны? Прости, возможно это мое невежество, буду признателен если ткнете где почитать о таком использовании транзисторов.
Сигнал PWM естественно должен быть инвертированный.
Хотя согласен, что схема странная…
Поправил схему
И ещё одна реализация подобного принципа
И с бОльшим током(5-10А, например, отвод тепла это вторичный вопрос)?
Забыл совсем. Автору за скетч спасибо.
Тема однозначно интересная, и за труды жирный +!!!
Интересует вопрос увеличения мощности и нужны графики, покупных я так и не нашёл с подключением к компу и током разряда в 10А с мощностью 70-100Вт. Перелопатил комменты, вроде понятно как увеличить мощность, но как оказалось — не понятно (попробовал изменить схему, там и просидел больше часа как дурак с карандашом и чистым листом), тем более исходя из комментов схему можно нормально так доработать…
К автору огромная просьба, друже, если не сложно и есть время, можешь переделать схему на большую мощность и с учётом изменений?.. отвод тепла я естественно сделаю. Прочитать схему, сделать плату — это я запросто, а переделать — фик (((… ну не врубаюсь я почему без кондёра там будет самовозбуждение и т.д. и т.п. ((((((
Ужа давно повторил этот проект, хорошая схема для повторения: несложная, интересная.
За время эксплуатации выяснил такую особенность: чем больше выставляешь ток разряда, тем больше разница в показаниях того, какое напряжение показывает схема и тем, если просто измеряешь напряжение на аккуме прямо мультиметром во время разряда.
При токе разряда 50-100mA разница в показаниях минимальна, а вот около 500 mA показания уже отличаются значительно: схема в консоль выводит, например, 3.200V, берем мультиметор и делем измерение непосредственно на аккуме, а там 4.002V.
И соответственна, при увеличении тока разряда, эти показатели еще больше отличаются друг от друга.
Может кто-нибудь знает, в чем тут может быть дело? и как исправить это?
А так, схема очень точно держет ток разряда, что очень радует! Автору респект!
Прямо сейчас проверю ваш совет, не уходите, пожалуйста)))
Кажется появился еще один позитивный эффект: измерения напряжения стали более устойчивыми — по мере разряда аккума показатели плавно падают, а раньше они скакали в довольно больших пределах.
Прибор обрел новую жизнь, а я — хорошее настроение) Еще раз, Спасибо)
В этом случае надо разделить провод измерения напряжения и нагрузки, подключив и двумя проводами.
Я об этом рассказывал в обзоре держателя, принцип ниже на схеме