Найти в Дзене
Мастерю понемногу.

Новый скетч для зарядного устройства на Ардуино - ViktoRi

Привет всем! На Яндекс диске доступна новая версия скетча для моего зарядного устройства на Ардуино - ViktoRi. С момента последней публикации скетча версии 0.9.8 вышло 4 версии: 0.9.8.1 - исправил ошибку в функции разряда из-за которой КТЦ прерывал работу; - исправил ошибку в функции заряда из-за которой Предзаряд полностью отключался по завершении своей работы; 0.9.8.2 Обязательно использовать библиотеки из архива! Обновил Библиотеку GyverINAint версии 1.2.2 - изменил тип значения возвращаемой мощности на int32, теперь Ватт/часы рассчитываются корректно; - исправление ошибок типов данных которые приводили к ошибкам расчетов при заряде и разряде; - внес изменение в проверку силового транзистора на неисправность, теперь проверяется дважды за 2 секунды; - внес исправления в функцию управления вентилятором ШИМ. И заодно упростил, а то что-то я намудрил слишком :). Теперь ШИМ вентилятора работает более корректно; - изменил логику работы функции Alert INA226 - если Alert сработает то ток за

Привет всем!

На Яндекс диске доступна новая версия скетча для моего зарядного устройства на Ардуино - ViktoRi.

С момента последней публикации скетча версии 0.9.8 вышло 4 версии:

0.9.8.1

- исправил ошибку в функции разряда из-за которой КТЦ прерывал работу;

- исправил ошибку в функции заряда из-за которой Предзаряд полностью отключался по завершении своей работы;

0.9.8.2

Обязательно использовать библиотеки из архива!

Обновил Библиотеку GyverINAint версии 1.2.2 - изменил тип значения возвращаемой мощности на int32, теперь Ватт/часы рассчитываются корректно;

- исправление ошибок типов данных которые приводили к ошибкам расчетов при заряде и разряде;

- внес изменение в проверку силового транзистора на неисправность, теперь проверяется дважды за 2 секунды;

- внес исправления в функцию управления вентилятором ШИМ. И заодно упростил, а то что-то я намудрил слишком :). Теперь ШИМ вентилятора работает более корректно;

- изменил логику работы функции Alert INA226 - если Alert сработает то ток заряда/разряда начнет уменьшаться при этом функция Alert суммирует количество срабатываний и если превысит 60 (за 1200мс) то отключит зарядный/разрядный ток, отключит защитный транзистор, отключит питание сети и выведет запрос на продолжение или завершение работы;

- в функцию заряда добавил обработчик отсутствия питающего напряжения от БП (и года не прошло). Если напряжение от БП пропадет то заряд остановится, на дисплей выведет предупреждение, запомнит время простоя. Когда напряжение появится то заряд продолжится, из общего времени заряда вычтет время простоя;

0.9.8.3

Обязательно использовать библиотеки из архива!

- внес поправки в функцию измерения сопротивления Акб. Теперь значение максимального пускового тока рассчитывается более адекватно (но иногда не очень - работаю над этим). Лучше работает с лампой 55Вт или резистором 3 Ом;

- в функции Заряда исправил значения срабатывания защиты по току и напряжению;

- в функции Дозаряда добавил задержку 10 секунд между переключениями тока;

- снова добавил в Заряд режим Осциляция(Качели). Ранее в 0.9.8 они были удалены (думал что с ним делать и вот надумал :). Если в Настройках включена Осциляция(Качели) то в режиме Заряд при снижении тока менее "минимальный" * 3 (0,18А*3=0,54А) включится режим Осциляция(Качели) - ток будет периодически отключаться и включаться до стабилизации по напряжению;

- добавил еще один экран в При заряде, теперь их 4:

1) напряжение акб | Ампер/часы

ток акб | Время заряда | время до завершения заряда (минут)

2) название основного режима заряда

текущий режим заряда (предзаряд, заряд, дозаряд, осцилляция)

3) ватт/часы | температура | кол. циклов

напряжение бп. | номер режима

4) время до первой проверки | номер до второй проверки | время до завершения заряда (секунд)

максим. напряжение | минимальный ток

0.9.8.4

Обязательно использовать библиотеки из архива!

Так как программа сильно разрослась то большинство функций вынесены в отдельные файлы для удобства дальнейшей разработки.

Имя основного файла так и остается ViktoRi_ver-***.ino

Все #define настройки вывел в отдельный файл 1_defines.h.

- оптимизация кода;

- добавил функцию для вычисления процента заряда аккумулятора. Процент заряда состоит из двух частей 1 - 50% это заряд до напряжения заряда, 2 - 50% это заряд до снижения тока до минимального. Для свинцово-кислотных акб максимум 80% при обычном заряде (до 14,7В). На дисплее 16*2 выводится при заряде на втором экране, на дисплее 20*4 на первом и на втором;

- в функции заряда исправил ошибку расчета тока экстренного отключения заряда;

- добавил #define ENCBUTT 2 // 0 - только энкодер, 1 - только кнопки, 2 - энкодер + OK + Stop, 3 - энкодер + все кнопки;

- подкорректировал работу вентилятора;

- пункт меню "Время заряда" переместил ближе к пунктам заряда;

- подкорректировал расчет напряжения от БП;

Ардуино
Ардуино