Исходя с такой позиции ток должен быть 0.5А, но график разряда - кривая. Еще один нюанс, какой конечный объем у вас занимает код? Мне просто интересно, вижу что пишете на С'ях, а сам использую ассемблер, любопытно как "С" по оптимизации, там библиотеки и прочие подключаемые модули, как это сказывается на весе?Andry_67 писал(а):Емкость считается из расчета 12 минут = 0.1 а/ч
Imax B1, или тестер максимальной емкости батареек 18650
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Реклама
не знаю, на сколько оптимально работают сегодняшние компиляторы, но около 25 лет назад у меня получилась разница примерно в 8 раз.
у меня тогда была еще советская "Искра-1030", часов у нее не было (ХТ-совместимая).
и тогда я только начинал изучать программирование.
я набрал простенькую программу из учебника по Паскалю для установки даты и времени. файл получился примерно 8 кБ.
вскоре начал осваивать ассемблер. и сделал на ассемблере практически полный аналог программы на Паскале. файл с ассемблера получился примерно 1 кБ.
возможно, сегодня компиляторы работают лучше, но полагаю, что не намного...
правда, и на ассемблере нужно уметь оптимально делать, а то можно такого насрать...
у меня тогда была еще советская "Искра-1030", часов у нее не было (ХТ-совместимая).
и тогда я только начинал изучать программирование.
я набрал простенькую программу из учебника по Паскалю для установки даты и времени. файл получился примерно 8 кБ.
вскоре начал осваивать ассемблер. и сделал на ассемблере практически полный аналог программы на Паскале. файл с ассемблера получился примерно 1 кБ.
возможно, сегодня компиляторы работают лучше, но полагаю, что не намного...
правда, и на ассемблере нужно уметь оптимально делать, а то можно такого насрать...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Каюсь, в проге три раза продублирован один и тот же код счетчика в 120 байт, и только потому что лень пилить разрядность в нескольких местахStarichok51 писал(а):нужно уметь оптимально делать, а то можно такого насрать...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Я тоже пишу на ассемблере, но бывают в жизни случаи когда приходится писать на си. Дисплей ili9341 имеет довольно сложный протокол общения, поэтому писать программу на ассемблере утомительно. А на си есть библиотека и там все просто. Кстати в библиотеке только инициализация дисплея занимает около 100 строк, так что ассемблер здесь не катит. Конечного кода получилось много, еле впихнул в Мегу 8. Пришлось еще порезать библиотеки. Графические индикаторы всегда съедают много кода, потому как даже буквы нужно рисовать.

У литий-ионников график разряда всегда кривой, а вот у свинцовых аккумуляторов более-менее прямой.но график разряда - кривая

Дисплей свободно подключал к ардуино и работает без проблем. Надеюсь вскоре увидеть ваш скетч.Andry_67 писал(а):Если дисплей ST7920 уже подключен к Arduino и на него удалось вывести что-то типа "Hello world" то больше половины дела уже сделано, адаптировать скетч под другой дисплей несложно.
Сделать своими руками всегда интересней чем просто купить и пользоваться
- Реклама
Вот мой проект для тестирования аккумуляторов с индикатором ili9341. В качестве компилятора использую Arduino IDE v1.5.7, эта версия Arduino IDE делает на 10% меньше кода. Поэтому появилась возможность добавить более тщательное измерение емкости аккумулятора. Также еще добавил функцию "подготовка аккумулятора к хранению". Суть ее в том, чтобы разрядить аккумулятор примерно до 3,8 вольт.
Внимание, в скетче обнаружил ошибку поэтому архив перезалил.
Внимание, в скетче обнаружил ошибку поэтому архив перезалил.
- Вложения
-
- Tester.zip
- (32.45 КБ) 271 скачивание
Andry_67, спасибо за пример! Подскажите, а как идет процесс разряда? Что в качестве нагрузки?
Сделать своими руками всегда интересней чем просто купить и пользоваться
forfrends в качестве нагрузки - резистор 7 Ом, прибор рассчитан на ток 0.5А и не имеет "датчика тока" на данном этапе.forfrends писал(а):...Что в качестве нагрузки?
Andry_67 а можно выложить скомпилированный файл?
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
То есть максимальная сила тока 500 мА? А как измеряется объем батареи? Сила тока ведь не статична. Ведь с разрядом падет напрядение и соответственно меняется сила тока. Может я просто неправильно понял код? Пример:Flash.#13 писал(а): в качестве нагрузки - резистор 7 Ом, прибор рассчитан на ток 0.5А и не имеет "датчика тока" на данном этапе.
Код: Выделить всё
// ================= измеряет и выводит напряжение
Read_A();
ahsum += var;
aht = ahsum / 3600 / rn; // Формула подсчёта ампер часов
...
int Read_A() {
var = analogRead(A5);
Serial.println(var);
var = var * 210;
var = var / (100 + 365 * tmp);
...
}var = var * 210; 210 - это опорное напряжение?
var = var / (100 + 365 * tmp); что за числа 100 и 365
и чему равен tmp если батарея 3.7 вольт?
Скомпилированный файл вряд ли получится выложить - проект на Ардуино, а там код компилируется и сразу записывается в Ардуину, "без участия человека" так сказать, и без хекс-файла. Хотя где-то читал что можно "достать" как-то...
Сделать своими руками всегда интересней чем просто купить и пользоваться
В качестве нагрузки у меня резистор 7.2 Ом, датчик тока не нужен так как ток можно вычислить зная напряжение и сопротивление. На переменную tmp не смотрите это переключатель, tmp=1 для литий-ионных аккумуляторов.
Схему измерения напряжения наверно придется подстраивать. Так чтобы при напряжении 3,7 вольта прибор тоже показывал 3,7 вольта. Это можно сделать двумя способами: подобрать сопротивления резисторов в делителе напряжения или "поиграться" числом 210 в формуле var = var * 210;. Если подключен аккумулятор с напряжением 3,7 вольта тогда на выходе из процедуры int Read_A() переменная var должна содержать число 370 (т.е. напряжение*100).
hex файл прилагаю, но лучше создавать его самим. Так у вас будет возможность что нибудь поменять для себя. Файл после компиляции лежит в папке Temp. Найдите папку темп и там ищите *.hex файлы.
Схему измерения напряжения наверно придется подстраивать. Так чтобы при напряжении 3,7 вольта прибор тоже показывал 3,7 вольта. Это можно сделать двумя способами: подобрать сопротивления резисторов в делителе напряжения или "поиграться" числом 210 в формуле var = var * 210;. Если подключен аккумулятор с напряжением 3,7 вольта тогда на выходе из процедуры int Read_A() переменная var должна содержать число 370 (т.е. напряжение*100).
hex файл прилагаю, но лучше создавать его самим. Так у вас будет возможность что нибудь поменять для себя. Файл после компиляции лежит в папке Temp. Найдите папку темп и там ищите *.hex файлы.
- Вложения
-
- tester_akkum.hex
- (19.1 КБ) 452 скачивания
Andry_67 извините, но у меня нубский вопрос, у меги8 8кб ПЗУ, как залить прошивку на 19кб?
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Andry_67 да, забыл, там же префиксы, суффиксы, вечно путаю эту архитектуру((
Ребята, пришло время подумать о "зарядке" батареек. Проведя некоторое время в раздумиях в голову пришло несколько идей, в целом требуется чтобы МК мог заряжать батарейку, и желательно показывать силу зарядного тока с его контролем, так же необходимо отключить батарейку по завершении заряда. Для зарядки литиевых батарей требуется источник довольно стабильного напряжения в 4.2-4.25В, первое что приходит в голову - ШИМ, но делать его с управлением МК топорно, да и пищать будет в выполнении "без кварца". Еще как альтернатива это создать отдельный стабилизированный источник зарядного напряжения с током, и коммутировать его на АКБ, но это опять лепить огород нужно. И вот тут, вспомнил, что проблема не нова, и существуют уже "готовые" решения, чипы специально разработанные для зарядки литиевых батарей, к примеру, они массово применяются в схемах зарядки повер банков, и многих мобил. Посмотрел что есть "не дорогого и доступного" остановился на TP4056, это дешевая (0.15$) микросхемка предназначенна именно для разядки таких батарей. На борту имеет гнотовую схему контроля за напряжением и током, и главное - вход разрешения работы, тоесть можно управлять с ТТЛ логики самой микрухой, даже ключ ставить не нужно. Так же подпайкой резистора можно управлять силой тока, что можно использовать для установки тока заряда, и если поставить транзисторную развязку то будет "цифровой контроль". В целом прелесть...

Ребята, пришло время подумать о "зарядке" батареек. Проведя некоторое время в раздумиях в голову пришло несколько идей, в целом требуется чтобы МК мог заряжать батарейку, и желательно показывать силу зарядного тока с его контролем, так же необходимо отключить батарейку по завершении заряда. Для зарядки литиевых батарей требуется источник довольно стабильного напряжения в 4.2-4.25В, первое что приходит в голову - ШИМ, но делать его с управлением МК топорно, да и пищать будет в выполнении "без кварца". Еще как альтернатива это создать отдельный стабилизированный источник зарядного напряжения с током, и коммутировать его на АКБ, но это опять лепить огород нужно. И вот тут, вспомнил, что проблема не нова, и существуют уже "готовые" решения, чипы специально разработанные для зарядки литиевых батарей, к примеру, они массово применяются в схемах зарядки повер банков, и многих мобил. Посмотрел что есть "не дорогого и доступного" остановился на TP4056, это дешевая (0.15$) микросхемка предназначенна именно для разядки таких батарей. На борту имеет гнотовую схему контроля за напряжением и током, и главное - вход разрешения работы, тоесть можно управлять с ТТЛ логики самой микрухой, даже ключ ставить не нужно. Так же подпайкой резистора можно управлять силой тока, что можно использовать для установки тока заряда, и если поставить транзисторную развязку то будет "цифровой контроль". В целом прелесть...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Сообщения: 82
- Зарегистрирован: Ср сен 12, 2012 19:05:02
Приветствую! Огромное спасибо за Проделанную работу, очень полезная схема.! Завтра поеду покупать Резистор 0.1 Ома - Единственное, что не нашёл дома.
Со своей стороны, хочу подсказать одну мелкую идею, вдруг поможет... На микросхеме 4056 - есть уже готовые платки типа такой - http://www.ebay.com/itm/5V-Mini-MICRO-U ... SwLqFV7kt5 Она сама контролирует ток заряда и отсекает заряд при достижении 4.2 В на аккумуляторе. По окончании заряда на плате загорается синий светодиод, с него можно брать сигнал для команды Атмеге8 на конец цикла подсчёта.
Но есть ещё более интересная плата, Я заказал 5 штук таких - http://www.ebay.com/itm/400665524431?_t ... EBIDX%3AIT Её отличие - в том, что на ней стоит и контроллер разряда. То есть, разряд идет через эту же плату, и при снижении напряжения аккумулятора до 2.5 В, плата сама отсекает цепь разряда. А по отсечке напряжения Атмега поймёт, что цикл закончился. Как Вам такая идея? И программа упростится, наверно.
Со своей стороны, хочу подсказать одну мелкую идею, вдруг поможет... На микросхеме 4056 - есть уже готовые платки типа такой - http://www.ebay.com/itm/5V-Mini-MICRO-U ... SwLqFV7kt5 Она сама контролирует ток заряда и отсекает заряд при достижении 4.2 В на аккумуляторе. По окончании заряда на плате загорается синий светодиод, с него можно брать сигнал для команды Атмеге8 на конец цикла подсчёта.
Но есть ещё более интересная плата, Я заказал 5 штук таких - http://www.ebay.com/itm/400665524431?_t ... EBIDX%3AIT Её отличие - в том, что на ней стоит и контроллер разряда. То есть, разряд идет через эту же плату, и при снижении напряжения аккумулятора до 2.5 В, плата сама отсекает цепь разряда. А по отсечке напряжения Атмега поймёт, что цикл закончился. Как Вам такая идея? И программа упростится, наверно.
Sergey3a23 готовые платы на ТР4056 выдел, только оно как бы одинаково, чип имеет 8 ног, две с которых на земле, одна задает ток, к батарейке, питание, ненужные моргалки и контроль. Оно одинаково что микруху садить, что плату с ней, а вот цены разные. По поводу плат с разрядом, это называется "защита", еще пишут "защищенная батарея". Эта защита от глубокого разряда, как бы последний шанс, она не представляет возможности регулировать напряжение отсечки, и не управляется МК, такой обвес не помешает, но и не поможет.
Есть другая проблема, как организовать контроль напряжения "заряда", с минимальными проблемами, и не дорого.
Есть другая проблема, как организовать контроль напряжения "заряда", с минимальными проблемами, и не дорого.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Сообщения: 82
- Зарегистрирован: Ср сен 12, 2012 19:05:02
Может, я неверно понял вопрос, но в Атмеге8 же - 4 канала 10-битных АЦП.. один занят, три свободно..Flash.#13 писал(а): Есть другая проблема, как организовать контроль напряжения "заряда", с минимальными проблемами, и не дорого.
Или вопрос в том, как управлять напряжением заряда?
P.S. ...купил сегодня среди прочего Резисторы керамические 5 ватт 0.1 Ом. Глупость сделал. Подсчитал - при токе в 1 Ампер - мощность на этом резисторе выделяется всего 0.1 Ватт. Хорошо, что на всякий случай одноваттные купил.))
Извините, опечатался, имел ввиду контроль тока. Ток разряда замеряется как падение напряжения на резисторе, при чем резистор между землей и минусом АКБ, это удобно, но как быть в случае зарядки АКБ? Есть вариант поставить еще один шунт между землей и ТР4056, замерять весь ток на микросхеме. Другого пока не придумал... 
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Сообщения: 82
- Зарегистрирован: Ср сен 12, 2012 19:05:02
Я тут подумал - может, этот прибор и АА ААА элементы сможет мерить? Вот только мин. напряжение на элементе 0,9 в. Наверно, в программе цифирку надо изменить какую-то? Вы же сами говорили - прибор меряет ток и время... Ему же всё равно. откуда ток берётся? Можно так изменить программу. чтобы кнопочками напряжение уменьшить можно было до 0,9?
И ещё... Вы собирались
И ещё... Вы собирались
. Я просто так, напоминаю..а если переставить циферку на 244(сделаю в следующей прошивке), то будет секунда на пол часа. Такой точности хватит для любых замеров
Правильно понимаете, "своя" программа удобна тем, что ее хорошо допиливать под любые идеи
. Поменял предел регулировки отсечки до 0.8-3.7В(при включении активно 2.7В), но осталась не удобность, шаг 0.05В в 1с
. Добавил отображение пределов амперметра, от 0.00А до 9.99А и с 10.0А до 49.9А, правда отсечка превышения предела не введена, есть недоучет при пересчете в мА*ч, там разрядность сейчас стоит максимум на 30 ампер, и при токах больше 30А начнутся проблемы, но это потом 
Еще никак не дойдут руки допилить обработчик кнопок, чтобы они были больше подобны китайским будильникам, ускорялись при долгом удержании, и более четко срабатывали. Сейчас там достаточно простой код, кратковременное нажатие обрабатывается верно, удержание идет как непрерывный счет, но "залипает" сброс, и медленно считать по 0.05В в 1с, нужно ускоряться..а
Еще никак не дойдут руки допилить обработчик кнопок, чтобы они были больше подобны китайским будильникам, ускорялись при долгом удержании, и более четко срабатывали. Сейчас там достаточно простой код, кратковременное нажатие обрабатывается верно, удержание идет как непрерывный счет, но "залипает" сброс, и медленно считать по 0.05В в 1с, нужно ускоряться..а
- Вложения
-
- Imax.rar
- Очередной файл прошивки с исходниками. Изменена регулировка отсечки, добавлен предел амперметра, немного уменьшен код, чуток улучшен таймер.
- (154.98 КБ) 218 скачиваний
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Сообщения: 82
- Зарегистрирован: Ср сен 12, 2012 19:05:02
Спасибо, очень оперативно! Я так понимаю, делать печатку ещё преждевременно )) . Впереди - много улучшений. Скоро будет зарядка, вероятно. А там - и до четырёх каналов недалеко.. )
Я так смотрю, код занимает 3300 байт. То есть, до предела в 8 Кб - ещё много вкусностей в Ваш замечательный прибор можно запихать.
Я так смотрю, код занимает 3300 байт. То есть, до предела в 8 Кб - ещё много вкусностей в Ваш замечательный прибор можно запихать.


