Ви не увійшли.
Nefreemen пише:. Мне нечего сказать.
Есть такой мультик .
https://www.youtube.com/watch?v=tMpkcpTSN_sВостанавливающий заряд ... В допотопном автомобиле она зарядится и так, без колдовства. А как в новых я не знаю.
Вячеслав, не понимаю .
Неактивний
renoshnik, не могли бы Вы объяснить назначение диодов в цепях затворов мосфитов, а также что делает ключ после индуктивности (какая его функция)? Мне как бы идея понятна но вот реализация... Не совсем.
Неактивний
не могли бы Вы объяснить назначение диодов в цепях затворов мосфитов, а также что делает ключ после индуктивности (какая его функция)? Мне как бы идея понятна но вот реализация... Не совсем.
Диоды в цепях затворов мосфитов нужны для ускорения их переключения, в частности закрытия: нужно разрядить емкость затвора.
Ключ после индуктивности нужен для генерации высокого напряжения: зарядка короткими импульсами высокого напряжения.
Неактивний
Что вы все заладили мосфитов, мосфитов... Противно читать, ей богу. Ладно бы пионеры какие то...
Green, если я написал не мосфет (а может Вам больше по душе МОП?) а мосфит и Вам стало противно, то приношу свои извинения . Другой бы Вам написал - противно не читай, но я буду вежливым .
Неактивний
Nefreemen пише:не могли бы Вы объяснить назначение диодов в цепях затворов мосфитов, а также что делает ключ после индуктивности (какая его функция)? Мне как бы идея понятна но вот реализация... Не совсем.
Диоды в цепях затворов мосфитов нужны для ускорения их переключения, в частности закрытия: нужно разрядить емкость затвора.
Ключ после индуктивности нужен для генерации высокого напряжения: зарядка короткими импульсами высокого напряжения.
Зачем применяют диоды в цепи затвора я знаю, мне просто не понятно неужели у Вас такая частота переключения что емкость затвора уже влияет на фронт? Я писал что идею понял (высоковольтные импульсы, я тоже применяю в своем устройстве, "списал" с генератора Бедини ). Но вот не пойму что ключ делает после индуктивности, формирует фронт?
Остання редакція Nefreemen (2017-12-07 01:12:24)
Неактивний
Все, понял. В связи с большим вн. сопротивлением АКБ, индуктивность накачиваем (почти лазер ) большим током (для увеличения ЭДС ) через этот ключ. Выключив его получаем импульс.
Неактивний
Green, если я написал не мосфет (а может Вам больше по душе МОП?) а мосфит и Вам стало противно, то приношу свои извинения . Другой бы Вам написал - противно не читай, но я буду вежливым .
С вежливыми людьми и общаться приятно (сказал он))).
А мосфит ни в какие правила не лезет. Но звучит красиво, типа по французски))).
Неактивний
Nefreemen пише:Green, если я написал не мосфет (а может Вам больше по душе МОП?) а мосфит и Вам стало противно, то приношу свои извинения . Другой бы Вам написал - противно не читай, но я буду вежливым .
С вежливыми людьми и общаться приятно (сказал он))).
А мосфит ни в какие правила не лезет. Но звучит красиво, типа по французски))).
Green, это Вы и другие сейчас спикаете а я то в свое время с трудом шпрехал . Всегда иностранный мне давался ну с очень большим трудом, это как с музыкой, фальшь слышишь но петь сам не умеешь.
Неактивний
Nefreemen пише:Все, понял. В связи с большим вн. сопротивлением АКБ, индуктивность накачиваем (почти лазер ) большим током (для увеличения ЭДС ) через этот ключ. Выключив его получаем импульс.
I = C*dU/dt, U = L*dI/dt. Это как закон Ома. Все довольно просто для понимания. Становится сложо когда нужно оптимизировать.
Это все я прекрасно знаю, весь вопрос был в том что я не учел в своих рассуждениях вн. сопротивление АКБ. С сопротивлениями в цепи затвора действительно тоже вопрос. Да ладно, работает и хорошо .
renoshniky +, я считаю что у него хорошее устройство и вполне эффективное. Правда я не знаю всех нюансов, частоты, длительности но это детали и в отличие от моего нет цепей разряда (может не увидел ). Я в связи с приобретением Eltek Smps-1000-Si-24V свое зарядное разбарахолил для кардинальной переделки , когда дойдут руки собрать не знаю .
Неактивний
Вот наконец закончил свой скажем так, универсальный БП . Перфекционистов прошу не смотреть .
Сверху имею два разъема 5В по 3А типа USB (здесь и далее амперы китайские ). И очень удачный измеритель ( 8 in 1 ), должен заметить что его точность измерения меня поразила (честно) сравнивал с UT70A. Отличием этого модуля от (7 in 1) есть наличие термодатчика.
https://1drv.ms/i/s!Avw2RdRvzMPOyg2sb2fFnGiiwpRD
В торце два регулятора U и A выведенные с DC -DC 9A ( ) . Выпаял два подстроечника 10К и запаял два гнезда к которым подключены два переменных многооборотных проволочных резистора 10К. Так же через разъем (удалив с платы двухцветный светодиод) вывел два светодиода ( индикаторы режимов CC и CV), они находятся ниже ручек и на фото плохо видны .
https://1drv.ms/i/s!Avw2RdRvzMPOygoNRc0Q8DBHv0BE
Сбоку сделаны отверстия для вентилятора 40х40 12В (надо будет поискать черные винты, те что есть оказались короткими ).
https://1drv.ms/i/s!Avw2RdRvzMPOygzc9RS1FKERni5N
Сзади гнездо 220В, кнопка включения питания и кнопка включения вентилятора.
https://1drv.ms/f/s!Avw2RdRvzMPOyg_cYb_jElQw_BtF
Внутри имею AC-DC 24V-6A, DC-DC 9A и маленький регулируемый DC - DC для питания вентилятора ( запитал 9В для меньшего шума ) он же служит для питания измерителя. Так как последний не работает без отдельного источника при входном напряжении ниже 5В. После измерения температур радиаторов пирометром при нагрузке 12В 6А установил что самый "горячий" это радиатор DC-DC тот на котором установлена микросхема. К нему и был прикреплен термодатчик (трубочка ). К верхней крышке прикреплены два DC DC 5В.
https://1drv.ms/i/s!Avw2RdRvzMPOyg61S4_e3QRnZMqS
https://1drv.ms/f/s!Avw2RdRvzMPOyhBmC5snIjnDLeI1
Итог. Получился очень удобный блок питания для питания всякого рода "поделок" и позволяющий заряжать аккумуляторы (в том числе автомобильные ). Вентилятор был установлен как раз для использования при зарядке автомобильных АКБ. Но как показала зарядка 60Ah АКБ что сейчас (зимой) температура не подымается в DC-DC выше 40С (без вентилятора). О всех недостатках данного типа DC DC я хорошо знаю, на ютубе полно видео . Поэтому еще раз, это не ЛБП!
Остання редакція Nefreemen (2017-12-22 18:13:45)
Неактивний
Доброго времени суток!
Решил собрать Ваш блок автоматики к зарядному устройству - понравилась простота и возможность изменять логику работы.
Появилась идея: добавить индикаторы выбранного режима и окончания цикла, а также выбор режима одной кнопкой - по кольцу "режим1, режим2, режим3, остановить работу". Также у меня в наличии есть двухцветные двухвыводные светодиоды (красный/зеленый), цвет меняется сменой полярности, их можно использовать таким образом - "выбор режима - красным свечением нужного светодиода, окончание цикла - сменой цвета на зеленый".
Так как я мягко говоря, не силен в программировании , прошу Вас помочь в реализации идеи.
Пока нашел как реализовать выбор по кольцу, но не могу сообразить, как ввести задержку на выбор другого режима, кроме первого, а также остановить цикл той же кнопкой.
Вот Ваш скетч, с моими попытками.:
#define ModePin 7 //Пин выбора режима зарядки
#define LedaPin 5 //Пин a led 1 режима зарядки
#define LedbPin 6 //Пин b led 1 режима зарядки
#define LedcPin 8 //Пин c led 2 режима зарядки
#define LeddPin 9 //Пин d led 2 режима зарядки
#define LedePin 10 //Пин e led 3 режима зарядки
#define LedfPin 11 //Пин f led 3 режима зарядки
#define LoadPin 12 //Пин включения нагрузки
#define ChargePin 13 //Пин включения зарядки
#define VoltagePin A0 //Пин замера напряжения аккумулятора
#define MaxVoltage 794 //Напряжение в конце зарядки, делитель 1/4, 20В = 1023, 15.5В = 794
//#define NormVoltage 736 //Напряжение поддержки, делитель 1/4, 20В = 1023, 14.4В = 736 это для убитых аккумов
#define NormVoltage 696 //Напряжение поддержки, делитель 1/4, 20В = 1023, 13.6В = 696 это для нормальных аккумов
#define MinVoltage 538 //Напряжение в конце разрядки делитель 1/4, 20В = 1023, 10.5В = 538
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
int Voltage; //Переменная для текущего измерения напряжения
uint32_t StartTime; //Переменная для хранения вермени начала цикла
uint32_t Time_P = 1500; //Переменная для хранения длительности цикла
uint8_t Loops = 3; //Переменная для хранения кол-ва циклов разряд/заряд
void setup() {
pinMode(ModePin, INPUT_PULLUP);
pinMode(LedaPin, OUTPUT);
pinMode(LedbPin, OUTPUT);
pinMode(LedcPin, OUTPUT);
pinMode(LeddPin, OUTPUT);
pinMode(LedePin, OUTPUT);
pinMode(LedfPin, OUTPUT);
digitalWrite(LedaPin, 0);
digitalWrite(LedbPin, 0);
digitalWrite(LedcPin, 0);
digitalWrite(LeddPin, 0);
digitalWrite(LedePin, 0);
digitalWrite(LedfPin, 0);
Serial.begin(9600);// initialize serial communication:
pinMode(LoadPin, OUTPUT);
pinMode(ChargePin, OUTPUT);
digitalWrite(ChargePin, 0); //Отключаем зарядку
digitalWrite(LoadPin, 0); //Отключаем разрядку
}
void loop() {
// программа - счетчик нажатий кнопки
buttonState = digitalRead(ModePin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == LOW) {
// if the current state is HIGH then the button went from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
// if the current state is LOW then the button went from on to off:
Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state, for next time through the loop
lastButtonState = buttonState;
// button push counter. the modulo function gives you the remainder of the
// division of two numbers:
if (buttonPushCounter == 1) {
digitalWrite(LedaPin, HIGH);
} else {
digitalWrite(LedaPin, LOW);//состояние выходов на led когда счетчик в любом другом состоянии
}
if (buttonPushCounter == 2) {
digitalWrite(LedcPin, HIGH);
} else {
digitalWrite(LedcPin, LOW);//состояние выходов на лед когда счетчик в любом другом состоянии
}
if (buttonPushCounter == 3) {
digitalWrite(LedePin, HIGH);
} else {
digitalWrite(LedePin, LOW);//состояние выходов на лед когда счетчик в любом другом состоянии
}
if (buttonPushCounter == 4) {
buttonPushCounter = 0;
}
if (buttonPushCounter == 1) Mode1(); //Десульфатация
if (buttonPushCounter == 2) Mode2(); //3 цикла разряд-заряд
if (buttonPushCounter == 3) Mode3(); //Зарядка с защитой от перезаряда
}
void Mode1() {
Loop:
//--- Заряд акуммулятора ---
digitalWrite(ChargePin, 1); //Включаем зарядку
StartTime = millis(); //Запоминаем время начала зарядки
do {
delay(100); //Ждем 0.1 сек
Voltage = analogRead(VoltagePin); //Измеряем напряжение
} while ((Voltage < MaxVoltage) && (StartTime + Time_P > millis()) );
digitalWrite(ChargePin, 0); //Выключаем зарядку
delay(100); //Ждем 0.1 сек
//--- Разряд акуммулятора ---
digitalWrite(LoadPin, 1); //Включаем нагрузку
StartTime = millis(); //Запоминаем время начала разрядки
do {
delay(100); //Ждем 0.1 сек
Voltage = analogRead(VoltagePin); //Измеряем напряжение
} while ((Voltage > MinVoltage) && (StartTime + Time_P > millis()) );
digitalWrite(LoadPin, 0); //Выключаем зарядку
delay(100); //Ждем 0.1 сек
goto Loop;
}
void Mode2() {
do {
//--- Разряд акуммулятора ---
digitalWrite(LoadPin, 1); //Включаем нагрузку
do {
delay(100); //Ждем 0.1 сек
Voltage = analogRead(VoltagePin); //Измеряем напряжение
} while (Voltage > MinVoltage);
digitalWrite(LoadPin, 0); //Выключаем зарядку
delay(100); //Ждем 0.1 сек
//--- Заряд акуммулятора ---
digitalWrite(ChargePin, 1); //Включаем зарядку
do {
delay(100); //Ждем 0.1 сек
Voltage = analogRead(VoltagePin); //Измеряем напряжение
} while (Voltage < MaxVoltage);
digitalWrite(ChargePin, 0); //Выключаем зарядку
delay(100); //Ждем 0.1 сек
} while (--Loops);
Loop:
goto Loop;
}
void Mode3() {
//--- Заряд акуммулятора ---
digitalWrite(ChargePin, 1); //Включаем зарядку
do {
delay(100); //Ждем 0.1 сек
Voltage = analogRead(VoltagePin); //Измеряем напряжение
} while (Voltage < MaxVoltage);
digitalWrite(ChargePin, 0); //Выключаем зарядку
delay(1000); //Ждем 1 сек
Loop:
//--- Поддержка заряда ---
Voltage = analogRead(VoltagePin); //Измеряем напряжение
if (Voltage < NormVoltage)
digitalWrite(ChargePin, 1); //Включаем зарядку
else {
digitalWrite(ChargePin, 0); //Выключаем зарядку
delay(10000); //Ждем 10 сек
}
delay(100); //Ждем 0.1 сек
goto Loop;
}
Неактивний
Приветствую!
Наткнулся на данную тему случайно в поисках информации о режимах восстановления АКБ, решил зарегистрироваться т.к. с Arduino недавно имел дело для автоматизации других задач, что собственно было моим первым опытом работы с микроконтроллерами.
И идея и программа отличные, но местами комментарии в коде (видимо, из-за копипаста) перепутаны, потому запросто собьют с толку человека, плохо разбирающегося в программировании.
Например, digitalWrite(LoadPin, 0) должно быть помечено как "Выключаем нагрузку" а не "Выключаем зарядку".
Еще в Mode3 я бы сначала замерял напряжение, а потом бы уже включал зарядку если оно ниже нормы, а так получается если напряжение на АКБ в норме включится на 0.1 сек и сразу выключиться. Не знаю в общем случае, но я бы не дергал лишний раз тумблера.
Подумываю, а не собрать ли на досуге, потому как в данный момент на подоконнике пытаюсь оживить 3 сушеных из UPS после долива, потому как UPS, сволочь, сушил всю последовательную батарею током 2А и не отключал, собственно причины такого деструктивного поведения мне не понятны, но в результате один скорее жив, один скорее мертв из-за переполюсовки или кз одной из банок, а третий фиг его знает...
Неактивний
Хотелось бы итоговую схему+скетч
Схему в протеусе собрал.Скотч откомпилировал.Пока кнопку держу она нажатая.Никаких никуда сообщений не выводиться. Есть ли у вас полная схема?
Уважаемый alex_dol! Ответьте на "нубовский" вопрос пожалуйста! Не смог осилить вашу фразу "установка подстроечного резистора на коэффициент деления 1:4." То есть, к примеру если сопротивление между + и землей 40 то между землей и А0 10, а между А0 и + 30 или наоборот, или как? Если можно ответьте на электронную почту. Собрал Вашу схему, ползунок резистора установил на авось.
Неактивний
Уважаемый alex_dol! Ответьте на "нубовский" вопрос пожалуйста! Не смог осилить вашу фразу "установка подстроечного резистора на коэффициент деления 1:4." То есть, к примеру если сопротивление между + и землей 40 то между землей и А0 10, а между А0 и + 30 или наоборот, или как? Если можно ответьте на электронную почту. Собрал Вашу схему, ползунок резистора установил на авось.
Да. так.
Неактивний
Проект получил продолжение?
Неактивний
Настройка заключается в установке подстроечного резистора на коэффициент деления 1:4. Можно подобрать и запаять 2 резистора. Я правильно понимаю, эта настройка делается один раз, или каждый раз подстраивается? Ведь ток заряда может в каждом конкретном случае меняться, а именно входное напряжение на данном проекте? Разъясните пожалуйста это момент!!! Заранее огромное спасибо!
Спасибо, уже сам разобрался!
Неактивний
Kolya12008 пише:Проект получил продолжение?
Я пока не развиваю. Нет надобности.
А как добавить регулировку по току тип после 13.6 что б он его срезал до 2 ампер?