Открытый проект универсального зарядника

R2D2

То что я писал про мои попытки на асме написать ЖКИ, я немного сгустил и преумножил. У меня получилось кой чего, но когда я стал добавлять функции запахло жареным. На Си тоже пахнет жареным но значительно меньше. Так пахло бы на любом языке. Поэтому появилось объектное программирование, которое снаружи все типа упростило, упорядочив сложные навороты обычного языка во фразы из слов-объектов. Но если посмотреть как написаны описания объектов (классов) мало не покажется. В нашем случае есть 3 вида памяти и прерывания и отправка на ЖКИ 8 битных команд по 4 бита, да и протокол там извратный. Если делать влоб линейно: “Всем ждать я букву рисую”, то это просто запрограмить но неправильно, как мне кажется (см. статью). Но если программа все выполняет почутьчуть и “одновременно”, то это запрограмить классами трудно. Я еще не пробовал писать классы в IAR C++, но стоя у подножья горы мне не по себе и интуитивно ищешь отмазок.

Что касается языка Си как и любого другого. Все это дело привычки. Первый неудачный опыт особенно в сочитании с неприятностями в личной жизни может закрепится в сознании, а потом, вытесненный, и в подсознании. Далее всякий раз контактируя с Си, всплывает необъяснимая плохое настроение. Вот почему в постижении истины очень полезен Сифу, Сенсей и Гуру, которые не дают зарываться. Совсем без эмоций нельзя, но и руководствоваться ими в принятии решений тоже не очень-то. Здесь в форуме молодежь балует: рефлексирует, а потом свои эмоции и выпендреж обвешивает подогнанными фактами. Если постоянно себя не выслеживать, то и дело и сам замечаю, что балую.

К сожалению без опыта, предложить сразу хороший алгоритм трудновато. Как показала практика сделаем сначала простой алгоритм - стандартный, а потом будем обвешивать его. Не забывая про выделение повторяющихся моментов в подпрограммы.

Вероятно в список заряжаемых аккумов, надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”. И это будет осторожный медленный алгоритм.
И добавить “Какой то литий”, “Какой то гидрит”, “Какойто кадмий”…, что приводит к томуже алгоритму.

Если клиент выбрал нормальный аккум (да еще сам вводил параметры), то он сам несет ответственность за выбор, но защита против дурака все же будет (переполюсовка, превышение емкости, по начальному напряжению и т.д. что проверить легко и не займет времени).

Можно конечно вести статистику куда ходил юзер и в соответствии с этим сортировать меню аккумов для удобства. Не перегиб ли это? Может достаточно расставить их в правильном порядке?

Насчет дополнительного ключа (или тумблера (извиняюсь доходит долго)) замечание принимается. И насчет 4х строчного ЖКИ тоже (Количество выводимой информации маловато - подумываю сделать роллинг если озу останется). И датчики всеже лучше цифровые (в целом с учетом всего, гимора меньше).

AVK

То PSW:
Насчет полярного электролита, можно за ним диод поставить.
При 10А на 4905 будет рассеиваться 2-3 Вт, паралельно их соединяют для увеличения мощности, КПД мы повысить впринципе не можем. Прикинь, ставим паралельно ДВА редуктора, что КПД вырастет?
Чоппер (chopper-прерыватель) это совсем не мотоцикл, а как принято в электронике “step down” преобразователь. Вобщем советую Семенова “Силовая электроника” пролистать, ОЧЕНЬ хорошая книга.
To All
Я бы еще обязательно поностью ручной режим сделал, типа такой то ток, столько то времени, и до такого напряжения

R2D2

Щас пока сделано так (это тип акку и хар-ки его зарядки):

// Список аккумуляторов с их параметрами
// 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 дельтапик в мВ

Можно рассматривать это как точку к которой выведет зарядник, потом выбрать другую точку.
Может когданить заведу массив точек и при смене цикла будет меняться тип акку

R2D2

А у ключа в открытом состоянии его 0.022 Ома=const?

Если Да, то мона токаизмерительное сопротивление выкинуть и поставить ключ.

Или там опять нелинейность?

Psw
R2D2:

А у ключа в открытом состоянии его 0.022 Ома=const?

Ну Не Надо (ННН) выкидывать образцовый токоизмерительный шунт.
Потому как он гораздо менее зависит от экземпляра/температуры/отпирающего напряжения/прочей ерунды, чем открытый канал полевого транзистора. Ну и другие доводы есть, естественно.
Если очень хочется его выкинуть (за деньги, естественно) - можно пытаться интегральный датчик тока с Холлом поставить. Но это НЕ народное решение мне кажется. Да и смысл будет иметь при макс токе амперов эдак 100. Так что енто не про здесь тема.

Лучше уж думать про возможность использования инфракрасного датчика температуры - пользовать гораздо удобнее и реагирует быстрее, хотя и денег как обычно стоит. И где/что для него купить - не знаю.

У меня на асме в пробничке с дисплеем тоже усё по правильному содеяно - вместо любых ожиданий готовности - возврат управления в основной цикл.
Ну и не используется зеркало видеопамяти в ОЗУ мелко проца для экономии. Вместо ентого структурой описаны все необходимые сообщения строковыми литералами, в которых могут быть команды (неиспользуемые символы 44780). Например литерал: Координата Вывода+ " Напряжение:"+Команда знакового двоично-десятичного преобразования 16 бит ОЗУ+адрес ОЗУ, завершающий 0. А в основной проге в любом месте при простаивании/незанятости драйвера ЛСД модуля - просто вызываем процедуру с номером сообщения. Усё. Хотя енто наверное необычно. Зато просто потом использовать/текстовки менять/экран форматить. А сложно адреса ОЗУ в литералы руками писать. И ещё ента штука не умеет скроллинг текста делать - енто надо чего-то дописывать.

Минимальные Параметры батарейки могут быть:

  1. Тип химии - Свинец (заливной/загущённый - не важно), Кадмий, Гидрид, Литий (Ион/Полимер/Mh якобы не отличаются особо по зарядно/разрядным) - он же определяет макс/мин напряжение на банку и мин/макс зарядно/разрядные токи в долях от номинальной емкости - 3х бит достаточно;
  2. Количество банок в батарейке - более 5 бит будет вряд ли.
  3. Номинальная Емкость Банки мА*Час - 16 бит должно хватить для свинца авто АКБ.
  4. Допустимые Макс и мин температура батарейки, при которой зарядник будет с ней работать.
    Остальное - типа Имя и прочее - енто уже от наличия памяти хде хранить - лично мне/ГиперИону тоже без имени вполне нормально. У народа редко более 10 батареек. Так что вполне можно инвентарный номер присваивать - байт, а остальное место - это всякие календарные сроки/статистику лучше копить при наличии памяти. Имя для батарейки из 10 букв - это уже перебор на мой взгляд.
    И зачем хранить номер алгоритма к каждой батарейке ? Потому как способ заряда ( самый быстрый/быстрый/бережный) можно выбирать перед командой “Старт”. И для одной и той же батарейки он в зависимости от спешки будет различным.
R2D2:

в список <> надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”.

Строку в меню добавить не сложно, однако Настолько высоким интеллектом прога зарядника вряд ли будет обладать. В любом случае - такой интеллект будет далеко не сразу.

R2D2:

“Какой то литий”, “Какой то гидрит”, “Какойто кадмий”

“Какой-то свинец”
Ну вот после минимальной подсказки (тип химии) со стороны юзера уже можно пытаться что-то определять/заряжать.
P.S.
Кстати, в реальном мире присутствует почти идеальная (по моим критериям) зарядка от шуруповёрта Бош - где цепь действий юзера вообще из одного пункта - “Вставил батарейку”. Правда, там Бош себе много подсказок наделал типа уникального разъёма.

AlexAndr=

Вероятно в список заряжаемых аккумов, надо добавить строку “Я в этом не разбираюсь, сами заряжайте как хотите”. И это будет осторожный медленный алгоритм.
И добавить “Какой то литий”, “Какой то гидрит”, “Какойто кадмий”…, что приводит к томуже алгоритму.

Недумаю что будет правильным ориентироватся на то, что пользователь зарядки будет настолько плохо разбиратся в аккумуляторах. Если он сможет собрать и настроить такое З/У то и с аккумами разберётся.

R2D2

ПЛАТЫ ГОТОВЫ ДЛЯ ТЕХ КТО ЗАКАЗЫВАЛ.

Облазил Митино на предмет мощного блока питания на 12в. Нашел в подвале ТК Митино 2-3 места, где продавали профессиональные 30А 5000-6000 руб и полусамопальные 10-15А за 3000 руб.

Пришел к выводу, что переделка компьютерного АТ БП это удобно и дешево 25 р за диод и 18 за конденсатор.

Есть еще вариант мощный БП АТХ 400-450 Ва в них иногда 12В написано что дает 25А. (ничего переделывать не надо)

25А это конечно китайские 25А, но если 5в вы пользовать не будете, то возможно вытянет.

БУ в Митино можно купить за 500 р. Только желательно заглянуть в дырочку (Там боольшой вентилятор) и убедиться в качестве пайки и в боольших трансах и выпрямительные сборки диодов желательно чтоб были больше чем ТО220 и чтоб по весу БП был не легкий и чтоб фирма изготовитель была приличная и чтоб табличка на боку была 12в-25а.

И главное проверьте его сразу хотябы лампочкой. Подцепить лампочку от машины на черный красный и/или на черный желтый, включить в сеть 220, и закоротить зеленый и черный.

Psw
AVK:

только что заряжать, аккумуляторы от КАМАЗа что ли?

Вот небольшой примерчик, данные конечно пока что паспортные/технология новая, но тем не менее:

Deem:

батарейки а123 (ли-фосфат) хорошо себя показывают <> по времени заряда (15мин) <> два блока - и в поле на весь день.

Вот и я о том, какой ток/мощность потребны, что-бы батарейку 4S-6S лития 5 А*Ч за 15 минут в поле забить ? Правильно, 20 Амперчиков, и 300-500 Вт мощи.
И назвать енто НЕ народным язык не поворачивается - потому как на большом верте новичку летать проще. А чем быстрее заряжается пак - тем меньше их надо. И денех на их покупку соответственно.

Iocanaan
R2D2:

БУ в Митино можно купить за 500 р. Только желательно заглянуть в дырочку (Там боольшой вентилятор) и убедиться в качестве пайки и в боольших трансах и выпрямительные сборки диодов желательно чтоб были больше чем ТО220 и чтоб по весу БП был не легкий и чтоб фирма изготовитель была приличная и чтоб табличка на боку была 12в-25а.

Есть интересный вариант на эту тему: 12 В, 12.5 А за 1400 рублей.

R2D2

Или китайская тошибра втрое меньшего размера в 5 раз меньшая цена.

Iocanaan
R2D2:

Или китайская тошибра втрое меньшего размера в 5 раз меньшая цена.

Где?

R2D2
Iocanaan:

Где?

на 3 странице этой темы:

Да так и называется, Tashibra, у нас на любом строительном рынке продаётся, есть 50,100,150 и 200 ватт по цене от 170 до 250 руб соответственно. Может иметь и другие названия. Пароль: китайский трансформатор получше. Они все одинаковые, вполне надёжные, запускаются и на ХХ и при полной нагрузке…

Vasily_A
R2D2:

на 3 странице этой темы:

попробывал сделать на базе “китайского трансформатора” себе питатель на бормашинку.
результат мне непонятен: на галогенку нормально работает, а с диодами - крайне плохо. диоды брал от писишного питальника (от 12в части). пробывал и мостовую схему, и двуполупериодный вариант (намотал новую вторичку в два провода). внешне выглядит как срабатывание защиты по току, но я ее пробывал отключать. схема “трансформатора” совпадает с ST-шным аппнотом. с емкостью после диодов (нормальный 25в ло-есрный чемикон) не запускается совсем…

AlexAndr=
Vasily_A:

попробывал сделать на базе “китайского трансформатора” себе питатель на бормашинку.
результат мне непонятен: на галогенку нормально работает, а с диодами - крайне плохо. диоды брал от писишного питальника (от 12в части). пробывал и мостовую схему, и двуполупериодный вариант (намотал новую вторичку в два провода). внешне выглядит как срабатывание защиты по току, но я ее пробывал отключать. схема “трансформатора” совпадает с ST-шным аппнотом. с емкостью после диодов (нормальный 25в ло-есрный чемикон) не запускается совсем…

Попробуйте подключить на выход(до выпрямления) туже лампочку, возможно тогда будет запускатся и с диодами.

Shavelsky

R2D2, большое спасибо за платы, извиняюсь, что не смог сам забрать, а подослал человека. Качество - супер. Появились вопросы, точнее появились они давно, но актуальными стали сейчас, перед монтажом и тд. Итак, самый меня терзающий - касается разрядки. Ведь получается, что в не зависимости от установленного разрядного тока, акк будет разряжаться через открытый ключ и резистор 5 ом. Меняя скважность импульсов управления ключём, в широких пределах меняем СРЕДНИЙ разрядный ток. Сомнения вот в чём: поставив акки на разрядку малым током, к ним всё равно подключается малое сопротивление и импульсный ток получается оч большим. Не опасно ли это для акков или на высокой частоте это не принципиально? Второй вопрос практический, а именно насчёт дросселей. Как, что, скока и из чего. Знаю, вопрос не простой, как кажется на первый взгляд. Качество работы подобных силовых схем чрезвычайно сильно зависит от конструктива этих штук, кстати, как и от разводки платы, не раз сталкивался. Если Вас не затруднит, поделитесь, пожалста, вышими данными. Пока всё, заранее спасибо за ответы. Думаю, интересно и полезно будет не только мне. Удачи!

R2D2

Касательно разряда: По теории это плохо и исследования с использованием гидридов показали, что импульсный ток уменьшает скок службы акков на 20%. НО НО НО регулятор колекторников и безколекторников делает тоже самое. И по идее конденсатор, который стоит параллельно батарее должен сглаживать эти неприятности.

О индуктивности: На испытательный случай рекомендую поставить покупные в чипе и дипе индуктивности по 200 мкГ (2 штуки в канал), намотанные миллиметровым проводом, кажись по 3.50 руб за штуку. Это ограничит токи и напряжения.

На полную мощность я еще не выводил и тут требуется испытательская помощь. Может у кого есть какие мысли.
В статье Кузнецова сказано, что все расчеты дают результат ±30%. Я щас дописываю последние штрихи программы и следующий этап это эксперименты.

Материал М2000

  1. Кольцевой сердечник 28х16х8 пилить пополам
  2. Броневой 30х20
  3. Буржуйской формы как броневой только с окнами d=12(сечения центральной части).

Количество витков: НЕ ПРОВЕРЕНО L1=8 и L2=15 скруткой из провода 0.3, чтобы сечение соответствовало вашему току и охлаждению. ТОЛЬКО ЭКСПЕРИМЕНТ/

Далее делать щель ~0.1 - 0.4 мм и мерить LC-метром, до указанной в статье индуктивности.

Позже я сделаю это сам, щас могу только указать путь.

Внимательно посмотрите статью.

Shavelsky
R2D2:

Касательно разряда: По теории это плохо и исследования с использованием гидридов показали, что импульсный ток уменьшает скок службы акков на 20%. НО НО НО регулятор колекторников и безколекторников делает тоже самое. И по идее конденсатор, который стоит параллельно батарее должен сглаживать эти неприятности.

О индуктивности: На испытательный случай рекомендую поставить покупные в чипе и дипе индуктивности по 200 мкГ (2 штуки в канал), намотанные миллиметровым проводом, кажись по 3.50 руб за штуку. Это ограничит токи и напряжения.

На полную мощность я еще не выводил и тут требуется испытательская помощь. Может у кого есть какие мысли.
В статье Кузнецова сказано, что все расчеты дают результат ±30%. Я щас дописываю последние штрихи программы и следующий этап это эксперименты.

Материал М2000

  1. Кольцевой сердечник 28х16х8 пилить пополам
  2. Броневой 30х20
  3. Буржуйской формы как броневой только с окнами d=12(сечения центральной части).

Количество витков: НЕ ПРОВЕРЕНО L1=8 и L2=15 скруткой из провода 0.3, чтобы сечение соответствовало вашему току и охлаждению. ТОЛЬКО ЭКСПЕРИМЕНТ/

Далее делать щель ~0.1 - 0.4 мм и мерить LC-метром, до указанной в статье индуктивности.

Позже я сделаю это сам, щас могу только указать путь.

Внимательно посмотрите статью.

Спасибо, придётся экспериментировать. Об удачных отпишусь.

Shavelsky

Ещё один вопрос, забыл спросить раньше, но не менее важно. Резистор в стоковой цепи силового ключа в SEPIC. Назначение - ограничение тока. А зачем? Ведь это сопротивление сводит на нет все преимущества современных ключей (извиняюсь за название, но классическими транзисторами, биполярными или полевыми они не являются, а как назвать правильно - не знаю). Может Вы их ввели на всякий случай, на время наладки или это объективная необходимость? Если вторе, то не есть гуд, хотя мне и моим близким коллегам по хобби заряжать ёмкие ходовые батареи вряд ли придётся - 4-5 банок металл-гидрида на борт и зажигание, 8 банок - в передатчик. Но всегда хочется совершенства.
Спасибо и удачи!

R2D2

Его можно закоротить.
На всяк пожарный для отладки Спец посоветовал оставить.

Вместо 5 Ом можно поставить лампочку.

Из жадности во всей схеме подстроичники не окружены ограничивающими сопротивлениями это тоже плохо. Перед настройкой их желательно выставлять в среднее или расчетное положение.

Для резистора меню R62 нужно взять 47к и срезать у него ограничитель.
Его бегунок не должен коротить в ограничительной зоне оба конца.
Лучше чтоб в ограничительной зоне была мертвая зона.

Чтобы победить мертвую зону, бегунок через 200 к на +5в

Тогда я не знал про энкодеры ничего.

А можно сделать так тоже криво, но используется тока одна нога проца

R2D2

Паяйте SMD0805 все замечательно умещается.

Psw
Vasily_A:

с емкостью после диодов (нормальный 25в ло-есрный чемикон) не запускается совсем…

Быть могет емкость после диодов слишком хороша - вот и срабатывает защита от КЗ при попытке зарядить емкость.

Паяйте SMD0805 все замечательно умещается.

Хде их взять только в Кгд - вот в чём вопрос, блин. Неужели на народной плате есть SMD ? Вот же блин проглядел … Надо было с SMD детальками комплектик брать …

Касательно разряда <> импульсный ток уменьшает скок службы акков на 20%. НО НО НО регулятор колекторников и безколекторников делает тоже самое.

С той лишь разницей, что моторчик=индуктивность. Со всеми втекающими и вытекающими последствиями.

конденсатор, который стоит параллельно батарее должен сглаживать эти неприятности.

Ну попытка заменить индуктивную нагрузку на емкостную изменит картину с точностью до наоборот - вместо плавного сглаженного индуктивностью мотора тока будем иметь мощные всплески тока в ключе, что в конечном итоге приведёт к логическому концу - практически вся разрядная мощность при хорошем конденсаторе будет рассеиваться в разрядном ключе. Так что давайте уж делать как у всех - ну типа интегрирующая RC или ещё лучше LC цепь перед затвором разрядного ключа, который работает просто как управляемый напряжением источник тока. Ну и охлаждается соответственно - потому как вся разрядная моща на нём будет рассеиваться. Однако вот в чём и плюс объединённого с входным 220 в преобразователем конструктива - радиатор всех тепло выделяющих элементов могет быть общий/большой/обдуваемый. При заряде одни части греются, при разряде - другие. А радиатор БАЛЬШОЙ и жирный и частью корпуса является. Что сразу увеличит вес ентой затеи.
А все енти потуги закоротить батарейку супер кратко временно - ну быть могет не надо ? Зачем пытаться всю разряжаемую энергию рассеивать в самой батарейке ? Лучше уж лампочки зажигать/ключи/резисторы/радиаторы греть.