Приветствую всех заинтересованных форумчан.
Настало время выложить обновленную прошивку, в которой я надеюсь (наивный наверное) выловил все ошибки и недочеты. Столь значительное время понадобилось в связи стем, что процесс заряда долог, выполняется не каждый день, да и указанные ниже недочеты не проявляются при каждой зарядке. Аккумулятор использовал рабочий с машины когда была нужна подзарядка. Также не мало важно то обстоятельство, что зима. Проявилась досадная ошибка, которая может проявится только в сырую погоду, зима у нас смуратень, ни тепло ни холодно, слякоть да и только.
И так исправленные ошибки и недочёты:
1. При написании программы для русифицированных LCD не было возможности проверить в железе. Нет у меня такого LCD. Поэтому допустил незначительную ошибку. Но нашлись добрые люди, подобрали,
обобрали обогрели
и указали на это. Вместо "а" выводилась "Д".
2. В процессе заряда, когда нудно окончить заряд не верно указано условие окончания заряда, слишком точное значение тока служило окончанием заряда, и мы его проскакивали. Заряд продолжал идти пока ток не становился равным 0, при этом окончания также не происходило.
3. Если в процессе заряда покрутить энкодер, но не нажимать кнопку, т.е. ток мы не задали, накрученное значение становилось как бы установленным. Поэтому если отключили свет, а потом включили, зарядка начиналась с накрученным током.
4. Ошибка которая возникала из за влажности. Как ни крути в гараже зимой сыроватый воздух. В помещении или если занести из гаража и подождать 15-20 мин. она не проявлялась. Суть в чем. Питание ОУ у меня двуполярное, поэтому если подключить батарею там ток должен быть железный 0. Но из за поверхностных токов из за сырости ОУ все таки что усиливал и ток показывал 0,1А при просто подключенной батарее. При выборе тока и нажатии кнопки неверно устанавливались флаги работы программы и режимов. Она выводила что ток изменен. Самое лучшее решение покрыть плату или часть платы где элементы замера тока лаком. Я просто изменил логику начала заряда или изменения тока.
5.Самая муторная, долго понимаемая и исправляемая ошибка. Возникала когда захочет, я так думал. Ни при каждой зарядке. Бывала в нескольких подряд, бывало не было в нескольких подряд. И если возникала, то только раз за зарядку. Суть в чем. При зарядке вдруг ошибка "Ошибка по напряжению", т.е. напряжение больше 15В. Перешерстил всю программу, расставил контрольные точки в критических местах, хранил несколько предшествующих значений важных переменных и параметров до ошибки и в момент ошибки. Ни чего не смог найти. В определённый момент в момент замера напряжения в текущей полу волне напряжение вдруг скакало выше 15В. Обнаружил проблему случайно. В гараже было тихо и при включении света (у меня LCD без подсветки и на нем без внешнего света ни видно ни зги) слышу сработало реле и на экране ошибка. В момент включения на контактах выключетя света возникает искра (хорошо знакомый дребезг контактов) и по сети гуляет помеха. У меня на входе стоит фильтр из дросселя и кондеров, но он не спасает на 100%. Добавил программную компенсацию резкого возмущения и подскока напряжения заряда. Если напряжение подскочило, держится 4 полупериода (~40мс) и не возвращается к норме, то выдаем ошибку, иначе считаем что что напряжение в норме.
Всем желающим настоятельно рекомендую обновить в ваших зарядных прошивку, которую прилагаю. Два архива для LCD 1602 и 0802. В них по три прошивки - en, ru и ru_эмулируемая.
Ух как много написал.
- Вложения
-
- 0802.7z
- (8.8 KiB) Скачиваний: 615
-
- 1602.7z
- (9.35 KiB) Скачиваний: 627