Открытый проект универсального зарядника
Уважаемые!
Пришла в голову, возможно бредовая, мысль. Но, может в ней что-то есть.
Собрать зарядное устройство по принципу балансира:
много (кому скока вешать?) гальванически развязанных по питанию ОДИНАКОВЫХ модулей с макс. выходным напряжением/током под 1 элемент лития.
Гальваническая развязка - даёт возможность соединять их хоть последовательно, хоть как…, по нужде.
Если кому 25S NiCd - делай 25 модулей 😁
А кому 3S Li-Po - обойдётся 3-мя штуками (масштабируемость, однако).
Модуль законченный с CPU и силовой (низковольтной) частью. Несколько расточительно, но зато полная универсальность. Малое напряжение выхода/ток - проще рализовать, разработать, контролировать …
Остаётся “материнка” - CPU только для интерфейса/памяти и питание 220V->12.
Да и балансирная функция - полезно.
P.S. - Вам виднее, это просто мысли “вслух”, сильно не бить! 😊
Демократия, блин …
Могу сказать, что я пишу исключительно для собственного удовольствия и если мои высказывания относятся к теме, с которой кому-либо уже всё ясно/решение уже принято - то на него можно просто не реагировать, личное время экономить, на более полезные дела его тратить.
Из-за много цитатности я позволю себе нумеровать оригиналы.
1. TL-ка же работает в режиме стабилизации тока, который мы ей уставили и мы совершенно точно знаем что ток там ЕСТЬ и именно тот который мы задали, соответственно запихнутый ток есть произведение уставленного тока на время и все.
Прикольное решение, ничего не скажешь. Согласен .
2. без нагрузки ТЛ-ка уйдет в максимальное напряжение
Тоже естественно согласен. Туда же она САМОСТОЯТЕЛЬНО будет пытаться уйти при отказе цепей измерения напряжения и/или управления током. При чём САМА 494 конечно же будет вполне исправна. “Электроника - это наука о контактах. А неисправности в ней двух видов - это когда есть контакт где его не должно быть или нет контакта там, где он был.” - кто-то из моих знакомцев любит так своего препода цитировать.
3. (на второй компаратор TL-ки ставим делитель, чтоб напряжение не повышалось больше 25В например,
Ну если округлить до 6S лития, то будет 26 вольт, согласен.
4. Для зарядки ЛИполей <> отдельный тумблер <> вообще исключал <> более 12,6 (для трех банок)
Ну согласен, что затея с тумблерами ущербна в умном заряднике с цифровым управлением. Кроме отказов, ещё и случайное перещёлкивание (рукавом рубашки) в процессе заряда.
5. реальная возможность взрыва/пожара при каких либо глюках в заряднике
Это возможно не только при зарядке лития, а вообще с любыми электро приборами. А та фотка сгорелого от лития ланд крузера - так а сколько прошло мимо нашего внимания обычных тачек, сгоревших от коротнувшей проводки ? Зато в них лития не было и ентого обсуждения они не коснулись.
6. Аппаратный ШИМ камня можно использовать ТОЛЬКО как ЦАП (применительно к заряднику для уставки тока), <> (у камня других дел нет, как ток регулировать)
Ну у обсуждаемого проца вроде как 12 МИПСов почти простаивают при грамотном программировании задачи подобного зарядника. А в свидетели вполне можно Вад64 призвать, он обычно оценивает загрузку проца в своих проектиках - быть может и ответит.
А чего-либо регулировать (хоть ток, хоть уставку тока, хоть напряжение контролировать) процу всё-равно придётся - потому как ИМЕННО для ентого он там и поставлен. Ну и ещё для контроля/подмены интеллекта юзера ( Например контроля типа/полярности присоединённой батарейки). А не для менюшек/кнопочек/экранчика - это всё ВТОРИЧНОЕ, из-за нежелания/невозможности Максимально Упростить для юзера процедуру общения с зарядником до шаблона: Воткнул батарейку - Нажал Единственную Кнопку - Получил результат. Именно к ентому идеалу и надо стремится на мой взгляд.
А тумблерами выбирать тип/количество банок/режим конечно можно, вот только проц тогда и не нужен вообще. Даже без могучей 494 вполне можно обойтись.
7. и кстати любой глюк в программе/камне может запросто все выжечь, прикинь если ШИМ в чоппере прерветься и на выходе единица встанет? кирдык батарейке.
Наконец-то дошли и до мысленной симуляции отказов.
Как представлю, что Та Же Самая Единица по тем же самым Программным Причинам встанет на выходе ШИМа уставки тока при соблюдении условия (1), то сразу вижу вот что: Аналоговый стабилизатор зарядного тока на 494 будет ограничен только АНАЛОГОВЫМИ цепями защиты от перегруза ( а стабилизатор тока и есть ограничитель - он же настраивается/калибруется на какой-то диапазон токов) при их наличии и (3) 26 вольт на выходе. В итоге ток (в 10А к примеру) будет течь в батарейку, пока не зарядит её до 26 вольт.
Тогда как в случае ПРЯМОГО управления силовыми ключами в нарисованных мной схемках произойдёт следующее - Если откроется левый ключ, а батарейка низко вольтная ( к примеру 1-2 S литий) то просто расплавится выходной 10А предохранитель - потому как ток ограничен ТОЛЬКО достаточно малым внутренним батарейки и источника, других ограничителей нету. Если откроется правый ключ - просто сгорит входной 25А предохранитель. А при наличии в схеме обязательного 3го управляемого процом ключа (это который защиту от переполюсовки на выходе делает), то укус бешенной сторожевой псины приведёт схему в исходное состояние - все ключи разомкнуты, ожидаем команд. Ну и ещё одна мера - это когда прога в проце ещё жива, но ШИМом левого ключа по каким-либо причинам не управляет - Открыть Правый Ключ. В итоге сгорает 25А входной предохранитель.
Иными словами, МНОГО ступенчатая под страховка.
В которой аналоговый генератор 494 выглядит лишь не нужным звеном с моей точки зрения. А иногда и вредным - как я показал на условном примере, когда он могет САМОСТОЯТЕЛЬНО поддерживать что-либо в батарейке - будь то ток или напряжение - не особо то и важно.
Кстати, с точки зрения симуляции отказов очень хорошо выглядят двух тактные трансформаторные преобразователи. Чего бы там Случайно не открылось - а будет только КРАТКО временный импульс тока. Вполне Без опасно считается. Ну и вроде как сила многих фирменных зарядок именно так и сделана.
Не хотел ни кого обижать. Про демократию сказал в смысле, что все пожелания удовлетворить не удастся. В том числе и по причине моей непонятливости и другом взгляде на надежность.
Сейчас в программе написанной на Си настолько все завернуто, что я уже даже забываю где я чего учел а где не учел.
Если я при этом навороте еще буду отслеживать не наедет ли измерение АЦП на счетчик секунд и при этом не помешает ли это все в наихудьшем случае управлению ключами, голова лопнет. Процессор действительно не загружен, но вероятность критичного стечения задач резко повышается при прямом управлении ключами.
Начальник может контролировать все за подчиненными, но это плохо. TL494 дал задачу - следи и она справляется. Всеже хочется понятный и предсказуемый девайс сделать. А также хотелось бы избавиться от контроллера экрана, звука, клавиатуры, com-порта, задержек при записи в еепром, АЦП в режиме сна и заняться творчеством (переключением ключей).
У Вас хорошая идея ее надо опробовать нет ли подводных камней. Возможно только таким способом и будет работать и работает уже процессорное управление ЗУ.
И всеже я хочу завершить выбранный путь с некординальными изменениями.
Что касается ограничения по напряжению (экспериментально без нагрузки еще не пробовал).
Пробовал зажигать лампочку 12в. Одна из защит должна сработать програмно на частоте 1000 Гц приблизительно (я надеюсь и все вырубит и потребует перезапуска).
Что касается зарядки всех липо отдельно независимыми источниками - это частный случай от универсального зарядника, это хорошая идея если вы заряжаете только липо и от 220в или у вас есть 10 автомобильных аккумуляторов. Здесь выгоднее сделать не процессорный, а импульсный стабилизатор на MAXах и размножить в нужном количестве. Если Вам нужно заряжать только липо, то не нужен вам ни какой универсальный зарядник.
Чесно признаюсь:
Все вру и сгущаю краски. Все мона сделать только время надо и силы.
Как рыба об лед, как это ток не будет достигать? каким образом? такой зарядник сразу в ведро. И даже если это случится, отследить элементарно, т.к. чоппер переходит в режим стабилизации напряжения.
По разным причинам(например при питании от севшего авто аккума). Замечал такое на фирменных зарядках.
При зарядке лития, САМО СОБОЙ окончательный заряд ведется малым током, только опять какие проблемы? уставили ток, учли в расчетах.
Про необходимость в измерении тока: ну как можно будет щитать вкачиваемую ёмкость незная реально протекающего тока? Я имею ввиду в процессе заряда лития уже при стаб. напряжении - ток то меньше установленного(до режима стаб. по напряжению согласен - можно щитать без замера). И ещё, заряд лития щитается оконченным если зарядный ток упал до значения 0,1-0,2С как узнать окончание заряда лития без измерения тока???
Не хотел ни кого обижать. Про демократию сказал
Прикольно. Обижаться не имел и в мыслях. С моей стороны в данном случае всё сугубо конструктивно.
А если кто меня и задел на ентом форуме, так это Миха Юнин. Однако правила запрещают обсуждать здесь политику модерирования. А делать это на альтернативных ресурсах - это примерно как фигу в кармане держать - тоже не по мне. Отсюда, кстати, намёк Пузрину - раз уж в моду вошло делить форумы, быть может сделать раздел специально для обсуждения поведения модераторов ? В том числе С разрешением ненормативной лексики после предупреждения в заголовке темы ? Потому как некоторые другие ресурсы заводят аналогичные разделы для слива жёсткого негатива про модуляторофф (примерно как резиновая кукла начальника в релакс-руме у японцев по слухам). Потому как игнорирование критики - это ведь тоже ответ. Успокаивающий, кстати.
в смысле, что все пожелания удовлетворить не удастся.
Согласен, Это само собой. Я же говорил: Лучшее - враг Хорошего. Ну то есть полировать Глюкало до Идеального Блеска можно бесконечно долго. Так что я высказываю не пожелания, а всего лишь мысли. Потому как я сам не профи и в схемотехнике и в программировании и во многих других вещах - зарабатываю на хлеб другими методами.
Однако енти обсуждения помогают и мне самому думать/учится/не скучать.
Сейчас в программе написанной на Си настолько все завернуто, что я уже даже забываю где я чего учел а где не учел.
Если я при этом навороте еще буду отслеживать не наедет ли измерение АЦП на счетчик секунд и при этом не помешает ли это все в наихудьшем случае управлению ключами, голова лопнет. Процессор действительно не загружен, но вероятность критичного стечения задач резко повышается при прямом управлении ключами.
Во прикольно.
Никогда бы не подумал, что на Сях писать проги для мелко процов сложнее чем на асме. И после ентого заявления как верить Тохе в его высказывании про то, что на асме пишут жуткие мазохисты ? (это мой вольный пересказ моего понимания смысла высказывания Тохи у CNCшников)
Так а в 18 ПИКах раздельные высоко и низко приоритетные прерывания. С отдельными битами запрещения. Ну и высоко приоритетные за счёт использования аппаратного зеркала пары/тройки регистров не могут быть повторно прерваны. А низко приоритетные при использовании сохранения на стек - вполне можно повторно прерывать после минимального заголовка. Ну и высоко приоритетные по умолчанию прерывают низкий приоритет, естественно.
Хотя про борьбу за одно прерывание - ну так и пускай борются, будет иногда (при пропуске прерывания от ШИМ) повторный импульс в ту же самую половину обмотки давать.
Ключ конечно может сгореть, если вся схема уже на пределе (макс коэфф заполнения, макс допустимая температура ключа ну и трансформатор уже насыщен)
Однако в моей схемке нету двух тактных преобразователей - из-за ентого меньше мощность/больше габариты, за то и нет необходимости быстро менять плечи.
А следить за успеванием критичных процессов в прерываниях - ну енто тот самый альфа-тест. На дым, так сказать.
хотелось бы избавиться от контроллера экрана, звука, клавиатуры, com-порта, задержек при записи в еепром, АЦП в режиме сна и заняться творчеством (переключением ключей).
Творчество - это какие задания давать ШИМу и откуда брать эти задания ( из какой косвенной/вспомогательной/юзерной инфы, сам процесс добывания и интерпретации ентой не всегда однозначно толкуемой инфы). А переключением ключей пусть драйвер (двойственное толкование возможно - имеется в виду усилитель/формирователь сигнала на затворе) ключа занимается - где тут место творчеству ?
Ну а переключение фаз ШИМа в двух тактной схеме - просто ещё одно маленькое прерывание, тоже творчества маловато.
У Вас хорошая идея ее надо опробовать нет ли подводных камней. Возможно только таким способом и будет работать и работает уже процессорное управление ЗУ.
Моя рисованная схемка была приложена лишь для примера/иллюстрации. До реала ей весьма далеко.
Ни расчётов параметров, ни оценки КПД, ни удельной к массе/габаритам мощности, ни прочих важных моментов нету. Подводных камней там наверняка хватит за глаза. Но я же должен был “включить умного” по фразе кого-то из древних: “Есть три степени понимания. 1) ПОНИМАТЬ. 2) Понимать, и мочь повторить. 3) Понимать, и мочь опровергнуть.” От себя добавлю: Дополнить - это как маленькое Опровергнуть. Так что я всего лишь пытался отработать понимание в 3-й степени.
И всеже я хочу завершить выбранный путь с некординальными изменениями.
Это правильно. Потому как Лучшее - ВРАГ хорошего. И вместо бесконечных споров о том, какие решения лучше, реальные люди получат реальный недорогой работающий универсальный зарядник.
А я тут потихоньку повысказываю свои бредовые идеи - вдруг пригодятся кому в работе над ошибками, мне не жалко. Бредогенератор у меня высоко производительный.
зарядки всех липо отдельно независимыми
Ну мне гораздо больше нравится затея экономичного балансира, типа как “Религиозного …”. Ну это когда на каждую банку лития вешается нормально запертый каскад из опто транзистора, усилителя и ключа, нагруженного на трансформатор. Светодиодами оптопар управляет общий с зарядником мелкопроц, открытый фото транзистор порождает генерацию, энергия из пере заряженной банки выкачивается не только в тепло, но и на зарядку всей батарейки. Много намоточных узлов, зато меньше греецца. Однако для народа, лично для меня точно, проще уж общий радиатор поболее отыскать и дырок под транзисторы в нём насверлить, чем трансформеры челноком на колечках мотать, муторно енто.
Чрез Мерная Забота о КПД - это на любителя повозиться. Ну или когда альтернатив вообще нету. Типа - 100 грамм и 100 ватт - и ни грамулькой больше.
Так что в лубом случае - удачи в продвижении проектика.
Я ведь здесь бескорыстен, зарядками не торгую, идеями тоже.
Сугубо обще развивающий разговор по предложенной теме.
Что касается зарядки всех липо отдельно независимыми источниками - это частный случай от универсального зарядника, это хорошая идея если вы заряжаете только липо и от 220в или у вас есть 10 автомобильных аккумуляторов…
Не хочу настаивать на своей идее, но всё же.
Мне кажется Вы не совсем поняли, что я предложил.
1 - не только Li-Po. Любые - соединив выходы модулей и задав соотв. программу заряда каждому модулю с “материнки”.
2 - балансировка/контроль заряда NiCd и NiMh , в том числе побаночно, независимо, точно.
3 - “балансировка” - это просто независимая зарядка элемента, каждого, независимо от другого 😁
4 - Отсутствует необходимость в мощном повышающем девайсе (12 ->) все модули питаются от одного, входного напряжения (хоть от 5 вольт). Малая мощность на модуле, проще комплектуха, проще настройка (типовая).
5 - соответственно селектирование - побаночно, тренировка- побаночно …
…
просто прекинте блок-схему, это интересно. 😃
О языках программирования:
На ассемблере написать ЗУ я не решился. Попробовал написать обмен с ЖКИ, сильно запутался и на этом забил. Хотя если это ктото сделает, то код будет минимален по размеру и максимален по скорости.
На Си программа займет в 5 раз меньше места и комментариев и в 10 раз меньше умственного напряжения и все равно будет очень сложной и страшной для понимания, так что судя по всему, при имеющемся открытом коде, в нее даже никто не заглядывал и ни одного комментария не дал.
На Си++ с использованием “классов” можно написать еще понятнее и прозрачнее и удобнее. НО компилятор отожрет очень много места на стек по вложенным вызовам. А оперативной памяти у меня в притык, хотя программной памяти еще 50% осталось. Например код будет выглядеть так:
void Zu::OnKeyDown(BYTE Key)
{
Chanal1->SelectMenu(Accum);
Chanal1->SelectMenu(Algoritm);
if(Chanal1->Test())Chanal1->Start();
}
Что касается борьбы приоритетов прерываний: В АВРе борьба прерываний идет только если 2 прерывания сработали одновременно. Если происходит обработка очередного прерывания все остальные запрещаются до reti. Потом идет выполнение одной инструкции основного кода, потом вызывается следующее самое приоритетное прерывание. Короче это отдельный гимор. И тут есть много вариаций, которые в Си по разному компилятор балует.
Насчет идеи зарядки всех элементов по отдельности. Кроме всех описанных вами плюсов здесь я вижу 2 сложности:
- Что делать с запаянными 8s1p батареями аккумов особенно ААА. Сложности с припайкой разъема. Народ будет недоволен, аккумы будут очень довольны, если не паять а варить и лучше к перемычкам.
- Если делать цифровой блок управления, то либо надо много ног на проце, либо чтото придумывать с коммутацией и регистрами для аналогового опорного напряжения.
Идея вообще хорошая. Может быть какнибудь попробую.
Никогда бы не подумал, что на Сях писать проги для мелко процов сложнее чем на асме. И после ентого заявления как верить Тохе в его высказывании про то, что на асме пишут жуткие мазохисты ? (это мой вольный пересказ моего понимания смысла высказывания Тохи у CNCшников)
Ну, смысл, если честно, был несколько иной. На си проще, а главное - надежнее писать сложные программы. Сложные - это все что хоть немного сложнее rc-switch. Что же касается программирования на ассемблере для risc-ов - то я считаю, что это надо очень сильно себя не любить.
На Си программа займет в 5 раз меньше места и комментариев и в 10 раз меньше умственного напряжения и все равно будет очень сложной и страшной для понимания, так что судя по всему, при имеющемся открытом коде, в нее даже никто не заглядывал и ни одного комментария не дал.
Это не так. Все дело в самой программе. Впрочем, от стиля программирования и оформления программы тоже многое зависит.
На Си++ с использованием “классов” можно написать еще понятнее и прозрачнее и удобнее. НО компилятор отожрет очень много места на стек по вложенным вызовам.
Это тоже не совсем так. В общем случае, что объектно-ориентированное программирование, что просто структурное программирование - разницы по уровням вложенности нет. Если вы напишете аналогичный структурный код, то увидите, что разницы нет. Пямять жрется, в основном, под библиотеку и набор стандартных классов. Данных тоже получается больше.
Зато программа на c++ надежнее.
Про “Очень Сильно себя не любить” - мне больше нравится вариант - “надо люто ненавидеть Си”.
Ну потому как лично мне ента сильно развитая Си мантика не превычна, хотя - капля долбит камень.
Сейчас в программе написанной на Си настолько все завернуто
То ли ещё будет.
Массовые (конструктивные?) Пожелания в сторону проги зарядника начнутся при его массовом бета тестировании.
хорошая идея ее надо опробовать нет ли подводных камней.
А недостатков/подводных камней супротив СЕПИКа с управлением 494 как минимум:
- Деньги.
Что-бы через мою схемку прошло 300 Вт ( 30 Вольт 10А на выходе, примерно 30А 10 вольт на входе) и при ентом 10 Вт потерялось на ключах/диодах, надо 5-8 параллельно Р ключиков 4905 поставить - это 150 руб, и три/четыре параллельно N ключика 2805 - это 120 рублей, и ещё 3-4 параллельно N ключика 2805 на доп защиту от переполюсовки на выходе. Итого только за ключики 390-560 рублей.
Про стоимость хороших конденсаторов/диодов молчу, но она тоже далеко не нулевая.
А тут кто-то разговор затевал про 200 рублей экономии за пару строк на индикаторе.
Сэкономить на индикаторе 200 рублей получится один раз. А раздражать своим морганием он потом будет вечно. Другое дело, если 4х строк просто не было под рукой на момент изготовления прототипа. - Употребление 2х каналов ШИМа. Ну то есть внешней логикой можно и один канал переключать, но уж больно хороши в повторении девайсы, когда кроме мелко проца особо ничего и нету. Хотя здесь ещё усилитель токо измерительного резистора будет по любому, так что только корпусом МП не обойтись.
- Вес/габариты индуктивности.
Шестикратно более низкая частота 10 бит ШИМа ( 39 КГц для 18 ПИКа ) - вот и ответ, габариты будут соответственно примерно в 6 раз более. А в остальном индуктивность вполне подобна L1 от SEPIC.
- Деньги.
Что-бы через мою схемку прошло 300 Вт ( 30 Вольт 10А на выходе, примерно 30А 10 вольт на входе) и при ентом 10 Вт потерялось на ключах/диодах, надо 5-8 параллельно Р ключиков 4905 поставить - это 150 руб, и три/четыре параллельно N ключика 2805 - это 120 рублей, и ещё 3-4 параллельно N ключика 2805 на доп защиту от переполюсовки на выходе. Итого только за ключики 390-560 рублей.
Чтоб через чоппер пропустить 10А-30В вполне достаточно одного 4905 (ну если эстетствовать то два) только что заряжать, аккумуляторы от КАМАЗа что ли? и почему Вы решили что КПД от паралельного соединения транзисторов вырастет?. Переполюсовку можно банально отслеживать програмно, Вы ведь не предпологаете наличие напряжения в чоппере все время? Подключили аккум, проц посмотрел, какое там напряжение, сделал некие выводы, сообразно заданной програме заряда (например было задано заряжать три липоля а на клеммах 6В, все критическая ситуация).
Схема разрядки будет на том же чоппере работать, ну прийдется один ключ добавить, ну и еще может чего, в качестве нагрузочного резистора будет использоваться измерительный шунт, и ток разряда та же тлка и будет держать БЕЗ ПРОБЛЕМ и очень просто
Облазил Митино ларьки (где обычно) с импортом LM35 не нашел. Правдо это было в будни.
Платы, которые заказал народ в личке, в количестве 10 шт., забираю в субботу в митино часов в 12
прямо там мона и встретиться и пообщаться.
Думаю что с амперами будем эскрементировать позже.
Программа пишется.
В настоящий момент пишется алгоритм выставления опорного напряжения для установки тока. Т.к. хочется сделать его универсальным, он будет несколько сложнее. В обобщенном виде:
- Проверка напряжения на силовом выходе (на заряжаемом акке). Если в 2 раза ниже минимального, то переспрашиваем: А ты уверен???
- Выставляем опору 5в*1/65536. Ждем секунду. Смотрим какой получился ток. Узнаем время реакции и величину. Стандартное время реакции будет двойным от полученного.
- Выставляем 1/2 от требуемого для заряда тока. Выжидаем время. Контролируем результат.
- Вычисляем сколько еще надо добавить(убавить). И добавляем(отнимаем) половину от этого. И так многократно на все время заряда.
- Дополнительный критерий заряда, и при этом более главный, напряжение на выходе. Имея ток и напряжение мы можем вычислить внутреннее сопротивление батареи (оценочное, псевдо). Если требуется понизить напряжение до известного уровня, используя оценочное сопротивление вычисляем требуемый ток. Далее пункт 4.
Цифровой датчик уже фунциклит. С термосопротивлением еще поэкспериментируем, добавлю в меню Юстировку термосопроитивления. Входим в пункт меню, который предлагает подключить и засунуть датчик в стакан с водой и льдом и нажать ок. Потом в 25 градусов и например в 70(по термометру кипятком в стакане). Прога расчитает сплайн вторые производные и показания этих трех точек и запишет их в еепром
алгоритм выставления опорного напряжения для установки тока.
Придумывание алгоритмов. Как раз и место для мозга/творчества.
- Проверка напряжения на силовом выходе (на заряжаемом акке).
Ну здесь бы побольше интеллекта хотелось бы наверное. Хотя с другой стороны - чем сложнее интеллект - тем потенциально больше не обнаруженных ошибок.
( Мой зарядничек который только для лития 1-4S с автоматическим определением кол-ва банок после нажатия кнопки “Старт” некоторое время ( около минуты-пяти минут) заряжает батарейку небольшим током и глядит, как растёт напряжение. Из ентого каким-то макаром и определяет кол-во присоединённых банок. ) А вообще у меня возникла мысль - отношение напряжения нормально разряженного и полностью заряженного элемента достаточно похоже для различных типов : 1.45/1.0 =1.45 для кадмия/гидрида, 4.2/3.0=1.4 для лития, 2.2/1.8=1.2 для свинца. Иными словами, если при зарядке батарейки напряжение на ней выросло более 1.5 раза - вполне можно пытаться тормознуть и спросить - “А Ты уверен” ? Ну или какие-либо другие действия делать типа - снижения зарядного тока.
Если в 2 раза ниже минимального, то переспрашиваем: А ты уверен???
Вот и я говорю, что два раза - многовато/грубовато будет.
Примерно так же можно пытаться отслеживать и изменение внутреннеего батарейки - у сильно разряженной должно быть внутреннее высокое, в средней части заряда оно падает, а у перезаряженной батарейки мне кажется должно снова расти. Насколько я понимаю - это явление в работе химических источников тока обусловлено изменением концентрации реагентов в банке. А при перезаряде - сменой вида хим реакции. Так что должно в той или иной мере наблюдаться на никеле/литии/свинце.
А ещё прикольная мысль - что-бы юзер после сборки зарядника сообщал ему, какие вообще батарейки он имеет. Ну Что-бы сузить количество вариантов ручного/автоматического выбора батарейки по косвенным признакам - типа напряжения присоединённой батарейки и её внутреннего сопротивления. Разумеется можно и ручную коррекцию автоматического выбора делать. Опять же с вычёркиванием заведомо непригодных вариантов - типа когда напряжение присоединённой батарейки выше чем максимально возможное для какого-либо типа.
- Выставляем опору 5в*1/65536.
По мне так был бы проще стандартный пропорционально-интегральный алгоритм:
0. Спешить с током никуда не надо, его вполне можно очень плавно регулировать ( в Гиперионе ток от нуля до установленного набирается секунд за 10 примерно)
- Процедура изменения задатчика тока вызывается периодически ( ну к примеру 100 раз в секунду). В ней сравнивается текущее измеренное значение тока и желаемое. Разница умножается на подбираемый ( по отсутствию автоколебаний) коэффициент, часть младших разрядов отбрасывается и результат прибавляется к текущему значению задатчика тока. Туда же прибавляется и знак сравнения. Усё.
- Имея ток и напряжение мы можем вычислить внутреннее сопротивление батареи
Я бы для периодического измерения внутреннего батарейки ( раз в секунду к примеру) уменьшал уставку тока вдвое. А далее делил дэльту напряжения на дэльту тока. А полностью выключать зарядный ток для замера внутреннего мне почему-то не нравится - но не могу внятно сказать почему.
На ассемблере написать <> обмен с ЖКИ <> запутался и забил.
А мне вот пришлось в образовательных целях - Си мантика показалась сложнее. Хотя мне кажется его надо синхронным делать - ну то есть без опроса готовности контроллера, а просто с какой-то частотой, к примеру тысячу или две символов в секунду. И времени на опрос готовности не будет тратится, и отсоединение/неисправность дисплея прога никак не заметит.
Чтоб через чоппер пропустить 10А-30В вполне достаточно одного 4905 (ну если эстетствовать то два)
Паспортный максимум 4905 - это 74 ампера. Однако при ентом он на своих 22 милли Омах сколько Вт рассеет ?
только что заряжать, аккумуляторы от КАМАЗа что ли?
Вот и я думаю, зачем заранее ограничивать народный (широко универсальный) зарядник детскими батарейками ? Ну откуда следует, что человек, решивший слегка сэкономить на зарядке, никогда не купит 600 рекса с его 6S 5000 литием и не захочет его в поле заряжать током 2С ?
и почему Вы
Вполне можно на Ты, я без претензий.
решили что КПД от паралельного соединения транзисторов вырастет?.
Ну потому что енто полевые транзисторы.
А ещё это не я решил - это все так делают. К примеру изготовители 3Ф контроллеров для БК моторчиков.
Переполюсовку <> отслеживать програмно, <> Подключили аккум,
Аха, и выходной полярный электролит что сделал ? И как его командой проца успокоить ?
Кроме того, ощущения от BASE прыгов не забываемые ещё и от того, что присутствует один парашютик. Я не пробовал, мне запаска спину греет. Так и здесь - если по каким-либо причинам прога видит, что зарядка явно перестаралась - у неё есть ещё один нормально разомкнутый ключик. Который она вполне может разомкнуть в критической ситуёвине. А личности, желающие сэкономить очередные 100 рублей за ключик, вместо него в печатку смогуть впаять перемычку.
Схема разрядки будет на том же чоппере работать
Я с детства люблю мотоциклы, для меня чоппер - енто нечто двух колёсное, по ентому тут путаюсь в терминах. Лучше уж схемки наглядно на бумаге, тогда лично мне проще думается.
То что я писал про мои попытки на асме написать ЖКИ, я немного сгустил и преумножил. У меня получилось кой чего, но когда я стал добавлять функции запахло жареным. На Си тоже пахнет жареным но значительно меньше. Так пахло бы на любом языке. Поэтому появилось объектное программирование, которое снаружи все типа упростило, упорядочив сложные навороты обычного языка во фразы из слов-объектов. Но если посмотреть как написаны описания объектов (классов) мало не покажется. В нашем случае есть 3 вида памяти и прерывания и отправка на ЖКИ 8 битных команд по 4 бита, да и протокол там извратный. Если делать влоб линейно: “Всем ждать я букву рисую”, то это просто запрограмить но неправильно, как мне кажется (см. статью). Но если программа все выполняет почутьчуть и “одновременно”, то это запрограмить классами трудно. Я еще не пробовал писать классы в IAR C++, но стоя у подножья горы мне не по себе и интуитивно ищешь отмазок.
Что касается языка Си как и любого другого. Все это дело привычки. Первый неудачный опыт особенно в сочитании с неприятностями в личной жизни может закрепится в сознании, а потом, вытесненный, и в подсознании. Далее всякий раз контактируя с Си, всплывает необъяснимая плохое настроение. Вот почему в постижении истины очень полезен Сифу, Сенсей и Гуру, которые не дают зарываться. Совсем без эмоций нельзя, но и руководствоваться ими в принятии решений тоже не очень-то. Здесь в форуме молодежь балует: рефлексирует, а потом свои эмоции и выпендреж обвешивает подогнанными фактами. Если постоянно себя не выслеживать, то и дело и сам замечаю, что балую.
К сожалению без опыта, предложить сразу хороший алгоритм трудновато. Как показала практика сделаем сначала простой алгоритм - стандартный, а потом будем обвешивать его. Не забывая про выделение повторяющихся моментов в подпрограммы.
Вероятно в список заряжаемых аккумов, надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”. И это будет осторожный медленный алгоритм.
И добавить “Какой то литий”, “Какой то гидрит”, “Какойто кадмий”…, что приводит к томуже алгоритму.
Если клиент выбрал нормальный аккум (да еще сам вводил параметры), то он сам несет ответственность за выбор, но защита против дурака все же будет (переполюсовка, превышение емкости, по начальному напряжению и т.д. что проверить легко и не займет времени).
Можно конечно вести статистику куда ходил юзер и в соответствии с этим сортировать меню аккумов для удобства. Не перегиб ли это? Может достаточно расставить их в правильном порядке?
Насчет дополнительного ключа (или тумблера (извиняюсь доходит долго)) замечание принимается. И насчет 4х строчного ЖКИ тоже (Количество выводимой информации маловато - подумываю сделать роллинг если озу останется). И датчики всеже лучше цифровые (в целом с учетом всего, гимора меньше).
То PSW:
Насчет полярного электролита, можно за ним диод поставить.
При 10А на 4905 будет рассеиваться 2-3 Вт, паралельно их соединяют для увеличения мощности, КПД мы повысить впринципе не можем. Прикинь, ставим паралельно ДВА редуктора, что КПД вырастет?
Чоппер (chopper-прерыватель) это совсем не мотоцикл, а как принято в электронике “step down” преобразователь. Вобщем советую Семенова “Силовая электроника” пролистать, ОЧЕНЬ хорошая книга.
To All
Я бы еще обязательно поностью ручной режим сделал, типа такой то ток, столько то времени, и до такого напряжения
Щас пока сделано так (это тип акку и хар-ки его зарядки):
// Список аккумуляторов с их параметрами
// 0-9 BYTE Название
// 10. BYTE Тип
// 7-5 бит тип акк
// 001 - SLA
// 010 - NiCa
// 011 - NiMh
// 100 - LiIon
// 101 - LiPo
// 4-0 бит номер алгоритма
// 4 бит = 0 - алгоритм из EEPROM
// 4 бит = 1 - алгоритм из FLASH
// 3-0 бит номер алгоритма
// 11. BYTE Номинал емкость Ач *10
// 12. BYTE Ток зарядки slow *100
// 13. BYTE Ток зарядки norm *100
// 14. BYTE Ток зарядки max *100
// 15. BYTE Ток разрядки *100
// 16. BYTE Напряжение max*10
// 17. BYTE Напряжение min*10
// 18. BYTE для SLA Vmaxmax*10 напряжение отключения зарядки динамическое
// 19. BYTE для Ca и Mh дельтапик в мВ
Можно рассматривать это как точку к которой выведет зарядник, потом выбрать другую точку.
Может когданить заведу массив точек и при смене цикла будет меняться тип акку
А у ключа в открытом состоянии его 0.022 Ома=const?
Если Да, то мона токаизмерительное сопротивление выкинуть и поставить ключ.
Или там опять нелинейность?
А у ключа в открытом состоянии его 0.022 Ома=const?
Ну Не Надо (ННН) выкидывать образцовый токоизмерительный шунт.
Потому как он гораздо менее зависит от экземпляра/температуры/отпирающего напряжения/прочей ерунды, чем открытый канал полевого транзистора. Ну и другие доводы есть, естественно.
Если очень хочется его выкинуть (за деньги, естественно) - можно пытаться интегральный датчик тока с Холлом поставить. Но это НЕ народное решение мне кажется. Да и смысл будет иметь при макс токе амперов эдак 100. Так что енто не про здесь тема.
Лучше уж думать про возможность использования инфракрасного датчика температуры - пользовать гораздо удобнее и реагирует быстрее, хотя и денег как обычно стоит. И где/что для него купить - не знаю.
У меня на асме в пробничке с дисплеем тоже усё по правильному содеяно - вместо любых ожиданий готовности - возврат управления в основной цикл.
Ну и не используется зеркало видеопамяти в ОЗУ мелко проца для экономии. Вместо ентого структурой описаны все необходимые сообщения строковыми литералами, в которых могут быть команды (неиспользуемые символы 44780). Например литерал: Координата Вывода+ " Напряжение:"+Команда знакового двоично-десятичного преобразования 16 бит ОЗУ+адрес ОЗУ, завершающий 0. А в основной проге в любом месте при простаивании/незанятости драйвера ЛСД модуля - просто вызываем процедуру с номером сообщения. Усё. Хотя енто наверное необычно. Зато просто потом использовать/текстовки менять/экран форматить. А сложно адреса ОЗУ в литералы руками писать. И ещё ента штука не умеет скроллинг текста делать - енто надо чего-то дописывать.
Минимальные Параметры батарейки могут быть:
- Тип химии - Свинец (заливной/загущённый - не важно), Кадмий, Гидрид, Литий (Ион/Полимер/Mh якобы не отличаются особо по зарядно/разрядным) - он же определяет макс/мин напряжение на банку и мин/макс зарядно/разрядные токи в долях от номинальной емкости - 3х бит достаточно;
- Количество банок в батарейке - более 5 бит будет вряд ли.
- Номинальная Емкость Банки мА*Час - 16 бит должно хватить для свинца авто АКБ.
- Допустимые Макс и мин температура батарейки, при которой зарядник будет с ней работать.
Остальное - типа Имя и прочее - енто уже от наличия памяти хде хранить - лично мне/ГиперИону тоже без имени вполне нормально. У народа редко более 10 батареек. Так что вполне можно инвентарный номер присваивать - байт, а остальное место - это всякие календарные сроки/статистику лучше копить при наличии памяти. Имя для батарейки из 10 букв - это уже перебор на мой взгляд.
И зачем хранить номер алгоритма к каждой батарейке ? Потому как способ заряда ( самый быстрый/быстрый/бережный) можно выбирать перед командой “Старт”. И для одной и той же батарейки он в зависимости от спешки будет различным.
в список <> надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”.
Строку в меню добавить не сложно, однако Настолько высоким интеллектом прога зарядника вряд ли будет обладать. В любом случае - такой интеллект будет далеко не сразу.
“Какой то литий”, “Какой то гидрит”, “Какойто кадмий”
“Какой-то свинец”
Ну вот после минимальной подсказки (тип химии) со стороны юзера уже можно пытаться что-то определять/заряжать.
P.S.
Кстати, в реальном мире присутствует почти идеальная (по моим критериям) зарядка от шуруповёрта Бош - где цепь действий юзера вообще из одного пункта - “Вставил батарейку”. Правда, там Бош себе много подсказок наделал типа уникального разъёма.
Вероятно в список заряжаемых аккумов, надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”. И это будет осторожный медленный алгоритм.
И добавить “Какой то литий”, “Какой то гидрит”, “Какойто кадмий”…, что приводит к томуже алгоритму.
Недумаю что будет правильным ориентироватся на то, что пользователь зарядки будет настолько плохо разбиратся в аккумуляторах. Если он сможет собрать и настроить такое З/У то и с аккумами разберётся.
ПЛАТЫ ГОТОВЫ ДЛЯ ТЕХ КТО ЗАКАЗЫВАЛ.
Облазил Митино на предмет мощного блока питания на 12в. Нашел в подвале ТК Митино 2-3 места, где продавали профессиональные 30А 5000-6000 руб и полусамопальные 10-15А за 3000 руб.
Пришел к выводу, что переделка компьютерного АТ БП это удобно и дешево 25 р за диод и 18 за конденсатор.
Есть еще вариант мощный БП АТХ 400-450 Ва в них иногда 12В написано что дает 25А. (ничего переделывать не надо)
25А это конечно китайские 25А, но если 5в вы пользовать не будете, то возможно вытянет.
БУ в Митино можно купить за 500 р. Только желательно заглянуть в дырочку (Там боольшой вентилятор) и убедиться в качестве пайки и в боольших трансах и выпрямительные сборки диодов желательно чтоб были больше чем ТО220 и чтоб по весу БП был не легкий и чтоб фирма изготовитель была приличная и чтоб табличка на боку была 12в-25а.
И главное проверьте его сразу хотябы лампочкой. Подцепить лампочку от машины на черный красный и/или на черный желтый, включить в сеть 220, и закоротить зеленый и черный.
только что заряжать, аккумуляторы от КАМАЗа что ли?
Вот небольшой примерчик, данные конечно пока что паспортные/технология новая, но тем не менее:
батарейки а123 (ли-фосфат) хорошо себя показывают <> по времени заряда (15мин) <> два блока - и в поле на весь день.
Вот и я о том, какой ток/мощность потребны, что-бы батарейку 4S-6S лития 5 А*Ч за 15 минут в поле забить ? Правильно, 20 Амперчиков, и 300-500 Вт мощи.
И назвать енто НЕ народным язык не поворачивается - потому как на большом верте новичку летать проще. А чем быстрее заряжается пак - тем меньше их надо. И денех на их покупку соответственно.