Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.
Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.
Проверяй всю цепь измерения тока. При подключенной батарее без начала заряда ток всегда 0.0А, и как не крути подстроечник ничего не измениться, через шунт ток не течёт. А АЦП у тебя меряет какое-то падение на шунте, по сути это заряд не идет, а падение напряжения есть, т.е. вся цепь измерения неисправна. Если плату разводил сам, то может выводы контроллера перепутал. Может тиристор приоткрывается, КЗ (т.е. сопля) где-то между проводниками. Может не работаем преобразование -5В (что скорее всего). Гадать можно долго, проверяй железо.
Добавлено after 50 minutes 23 seconds: Всем привет. Пошел маленький дождишко, лодырям отдышка. Вот и у меня появилось время выложить свой вклад в общее дело. Выкладываю исходник на С. Функционал полностью исходный + небольшие доработки (для себя, а там может кому и понравится). Аппаратная часть идентична авторской, за одним исключением. У автора LCD 0802 (судя по фото и по исходнику), т.е. на 8 символов в строке, а у меня классический 1602, т.е. 16 символов в строке. Соответственно под него и сделано. У него 2 недостатка: 1-й - нет подсветки, что не сильно критично (поэтому на плате поставил 78l05, вместо 7805, такой мощный не нужен), 2-й - в нет кирилицы, поэтому все сообщения на аглицком. В некоторых словах сознательно сделаны ошибки и выброшены некоторые вспомогательные глаголы. Всё для того, что бы вместить в длину строки LCD. Если все же кому нужно будет моё творение на LCD 0802 могу допилить. Теперь о том, что дополнено: 1. У нас частенько выключают свет. Поэтому если такое случилось, после включения ЗУ перейдет в тот же режим в котором оно выключилось. Если был заряд, то с тем током, который был выставлен энкодером. Если режим хранения, то он продолжится. Если был в режиме какой-либо ошибки, то сообщит что до выключения была ошибка, и будет ждать когда снимут клеммы с батареи. 2. Если подключаемая батарея убита и у неё напряжение меньше 9В, то заряжать не даст, сообщив об этом. Но если все же хочется заряжать такую батарею, то перед включением 220в удерживайте нажатым энкодер до первого сообщения на экране, блокировка будет отключена. 3. Если при какой-либо внештатной ситуации сработает WDT, что при нормальной работе не должно происходить в принципе, высветится сообщение об этом (типа BSOD в windows) и будет ждать когда снимут клеммы с батареи. Я долго думал сообщать или продолжить прерванный режим, не мог решить как поступить, выбрал сообщение. Если у кого есть кирилица в LCD можете загрузить прошивку для неё. Для настройки можно временно скомпилить и зашить пока настаивается с разкомментированным определением #define _TUNE_ADC_, это даёт следующее. Значение напряжения и тока выводятся не преобразованными в В и А, а в значениях измеренными АЦП. Так можно точнее настроить. Например: измеряем напряжение мультиметром, допустим 12.26В () и переводим в значение АЦП = ЦЕЛОЕ(12.26 * 100 / 6) = 204. Для тока формула та же. После настройки зашиваем рабочую прошивку. Если измерение тестером до десятых, все это не имеет смысла делать. Язык сообщений выбираем закомментировано или нет определение #define _RU_ Если разводке платы перепутали ноги энкодера (как я например), можно разрезать дорожки и запаять проводами, а можно скомрилить с разкомментированным определением #define _SWAP_ENCODER_BITS_.
Написано для кварца 8МГц, если ставите другой, то в определении зайте свою частоту кварца #define F_CPU 8000000UL. Все задержки будут пересчитаны под неё.
Ну и для понтов (как же без них), в процессе зарядки выводится прогресс-бар напряжения. Шкала растянутая от 9В до 14.4В.
Исходник на С, и прошивки для EN и RU прилагаю. Компилил в AtmelStudio 7.0, но думаю и в 6 и в 5 скомпилится без ошибок. Фьюзы те же, как у автора. Если что не так пишите поправлю или подскажу.
Уважаемый alex_iag у Вас актуальные доработки, у нас в гаражах отключают свет с 23:00 до 5:00, и делаю на индикаторе 0802 и хотелось что-бы вы допилили для него. И вы делали на плате от автора или на своей.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Спасибо за оценку. Плату разводил сам для себя. У меня контакты индикатора в один ряд снизу (типа такого https://ru.aliexpress.com/item/1PCS-LCD ... autifyAB=0), контроллер в корпусе DIP28, поэтому разъём программирования не ставил, мс 7660 тоже в корпусе DIP (такую привезли под заказ). Реле вынес на плату с маломощным трансом, не люблю, когда на плате, которую берешь свободно руками присутствует 220В (брр от ударов шерсть дыбом). Если есть желание, могу выложить. Хорошо, допилю на 0802, но необходимо немного времени. По готовности выложу.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
alex_iag исходя из вашей ссылки на индикатор расположение выводов сверху. Присоединяюсь к просьбе vvoleg выложите пожалуйста свои платы. Ну а индикатор можно и поменять, если будут какие нибудь доработки можно попробовать перевести в I2C, освободятся контакты МК (возможно для дополнительных кнопок) хотя мне зарядное понравилось из-за своей простоты. Есть собранное зарядное и БП от ока275, но иногда надо попроще.
Я честно не особо присматривался к картинке которую привел. Он похож. У меня контакты расположены подобным образом, только вдоль нижнего края с левой стороны если смотреть на лицевую сторону. Вернусь домой плату выложу.
Добавлено after 6 hours 16 minutes 5 seconds: Прилагаю свою плату, вернее набор плат. Все платы заточены под элементы, которые у меня нашлись (на платах UPSов, принтеров, мониторов и прочего) или привез магазин по заказу, то и поставил. Шунт сделал из 10 резисторов 1Вт, увы других не было, и smd тоже. Т.к. подсветки в LCD нет, то установлен 78l05. Плата с микроконтроллером нарисована исходя из того, что верхним принят слой где smd элементы, а слой с микроконтроллером, энкодером, LCD и прочим назначен нижним. Это 2-й вариант платы с учетом ошибок, которые я сделал делаю своё зарядное. В ней исправлены все допущенные ошибки.
По мимо этого дополнены следующие элементы: 1. Параллельно С8 установлен конденсатор на 0,1мкф 2. на ноги энкодера А,В,2 также добавлены конденсаторы на 0,06 - 0,1мкф для уменьшения дребезга контактов. Выполнено в SprintLayout 6.0, 5-й его на прочтет, а 6-й в 5-й не сохраняет. Для этого прилагаю viwer для SL6, он свободный. Сам SL6 здесь выкладывать не буду, сочтут как распространителя пиратского ПО. Поэтому либо скачайте на просторах интернета либо выложу куда скажите.
Вложения:
Комментарий к файлу: Фотки платы фоточки.7z [529.92 KiB]
Скачиваний: 995
Вот и закончены доработки для 0802. Прилагаю к этому посту следующие прошивки: 1 - Zaryadnoe_m8_44780_en1602.hex и Zaryadnoe_m8_44780_en0802.hex для сообщений на аглицком 2 - Zaryadnoe_m8_44780_ru1602.hex и Zaryadnoe_m8_44780_ru0802.hex для сообщений на русском. Соответственно выбирайте 1602 или 0802. Сообщения на русском выводятся согласно следующей кодировке (вреде бы она основная для русифицированных LCD):
Теперь немного ещё о плате. На ней есть такое место
это если D10 не получится найти в smd корпусе, то можно впаять в стеклянном, для этого и предусмотрены отверстия с контактами. Перемычка на индуктивности создана только для тестирования связей в SprintLayout, в железе она не нужна.
С русской кодировкой не проверял в железе, только в отладчике, по причине отсутствия такого LCD у меня.
Сотоварищи. При доработке на 0802 я допустил ошибку в логику вывода сообщений и при тестировании не заметил. При выключении зарядки (задав ток =0) зарядка оканчивалась, но не выводилось сообщение. Ошибку исправил. Исправленные прошивки прилагаю. В качестве бонуса также прилагаю прошивки для эмуляции русских букв на LCD в котором русского шрифта нет. У меня такой и сообщения на аглицком меня малость не удовлетворяли. Вот и запилил. Из минусов такой эмуляции: 1 - на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится * 2 - только заглавные буквы 3 - от прогресс-бара в 1602 пришлось отказаться (он также эмулируется, а места в LCD нет) Прошивки в архивах по группам на 1602 и 0802
Да так-то и делается. После очистки буфер эмуляции очищается. При выводе, если не совпадает по начертанию с латиницей, то заносим в буфер эмуляции. Но беда в том, что в общем эмулировать нужно 19 букв, а буфер максимум 8. Вот поэтому, если на экране нужно отобразить одновременно белее 8 эмулированных букв, то они выводятся *. Благо среди них много не часто используемых, типа ПЮЪЬ.
я же сказал: перед выводом заново записывать буквы в графическую память. а по очереди можно записать хоть 100500 букв, а не только 19... записал нужные - вывел. записал следующие нужные - опять вывел. и так сколько угодно букв выведешь.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Неправда Ваша. Провел эксперимент, ещё раз скурил datasheet. Мои утверждения подтвердились. И в протеусе и в железе. Код символа выводимого на экран хранится в DDRAM, а то как он выглядит хранится в CGROM и это эти данные нельзя изменить. Для нас доступны только 8 ячеек CGRAM. Содержимое экрана динамически обновляется. Как только мы заменим данные о виде символа в CGRAM он сразу изменит своё начертание на экране. Поэтому нельзя отобразить ОДНОВРЕМЕННО более 8 своих символов. Очистил экран, отображай другие, которые актуальны для нового сообщения.
твоя неправда. твои 8 символов хранятся в CGRAM. и к CGROM они никакого отношения не имеют. и в CGRAM ты эти 8 символов можешь записывать сколько угодно раз. более того, даже не обязательно использовать все 8 записываемых символов в CGRAM. вполне достаточно ОДНОГО программируемого символа. и никто не мешает при динамическом обновлении экрана сначала записать ОДИН символ в CGRAM, потом его вывести, потом записать следующий, опять его вывести, и так до бесконечности...
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Возможно мы друг друга не понимаем, ходим вокруг одного дома, но каждый со своей стороны. Давай так. 1 - Для кода символа 0 заполняем CGRAM (как он будет выглядеть, допустим' Б'). Выводим в позицию 0,0 код символ с кодом 0. 2 - Символ 'Б' на экране видим. ОК 3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим? По твоему в позиции 0,0 будет отображена 'Б', а по моему 'Г'. Отображаемый символ поменялся, а мы ничего на экран не выводили. Запись в ячейку для символа 8, заменяет данные для символа 0 и т.д. Все это проверено в железе. Можешь проверить или поверь на слово.
3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
если ничего не выводим, то на экране остается "Б". операция вывода перемещает коды символа из CGRAM в DDRAM. а без вывода символа "Г" в DDRAM остался символ "Б". сам поверь или проверь...
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Только я прежде чем написать предыдущий пост набросал код и проверил его в железе. Результат проверки я там изложил. А там хочешь верь, а хочешь считай по своему. Но мне кажется, что Вы неверно понимаете как отображаются символы на экране. В DDRAM только коды символов, а в CGRAM и CGROM то, как они выглядят на экране. Из CGRAM в DDRAM НИЧЕГО НЕ ПЕРЕНОСИТСЯ. CGRAM это просто знакогенератор, описание внешнего облика символа для соответствующего кода символа находящегося в DDRAM. Если бы было так просто, то зачем выпускать с разными кодировками. Загнал свою и пользуйся. Ан нет, только то, что производитель залил, то и есть. Ну для утешения маленькая лазейка для своих нужд.
согласен, я был не прав. давно с этим экраном не работал. забыл, что в DDRAM хранятся только номера символов, а не их полные коды. прошу извинения. но все равно все 19 русских букв одновременно не нужны. поэтому в другом состоянии экрана (устройства) можно сначала запрограммировать другие 8 букв, а потом их вывести. я не знаю всех состояний экрана в твоем устройстве, поэтому я не знаю, сколько таких русских букв нужно тебе одновременно...
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения