Сигнализатр разряда батарей 2S-3S с автовыбором

Enigm

Блин попытался сделать новый вариант, с подключением модуля с экраном и кнопками, для самостоятельного програмирования порогов срабатывания, но моих 2кб в PIC16f684 не хватило ))
Кто подскажет недорогой 14-18 ногий контроллер с 8кб флеши ?
А то у меня только атмега 8 есть , могу на ней написать если это будет интересно ,да и вроде они не дорогие, смущяет только 32 ноги __ хотя у меня с ними проблем нету

МаркАнтоний

Владимир, я за 8-ю мегу! Но я думаю надо сначала со схемой определиться. Но я за мегу всеми руками и ногами!!!

mikki
Enigm:

Блин попытался сделать новый вариант, с подключением модуля с экраном и кнопками

А не проще к компу подключать? программировать то все равно дома ИМХО придется… Сделать шнурок с преобразователем и наслаждаться…
Я все девайсы что делаю, с компа конфигурю… за исключением параметров, которые раельно только в поле снять… да и то стараюсь без индикации а методом запоминания состояния…

Enigm
МаркАнтоний:

Владимир, я за 8-ю мегу! Но я думаю надо сначала со схемой определиться. Но я за мегу всеми руками и ногами!!!

Да схема впринципе таже только разьем для подключения модуля добавится
ну а если хватит памяти то добавим побаночный контроль, с возможностью контроля напруг при подключенном модуле
Я тоже к 8 меге склоняюсь, мне с ней привычнее ка кто
, да и размеры у нее небольшие просто квадратная ))
Вобщем начну пока на ней писать, а там если что можно и под другой адаптировать

mikki:

А не проще к компу подключать?

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

mikki

а писать не обязательно))) можно через гипертерминал по ком-порту команды отсылать))) типа AT-команд…
у меня например так:
например во время работы девайс ждет с уарта волшебное слово, например “prg”
если обнаруживает - переходит в режим программирования…
ну а дальше диалог по ком порту…
запрос на параметр - ждем значение… если не дожидаемся - сообщение о таймауте и установка по умолчанию…

типа так…

recive_response (20,0, _OK);
GIE=0;

if (strstr(res, “prg”)) prg();
if (strstr(res, “test”)) test_km();

где res - буфер куда валится все из уарта…
ну а сама функция примерно так

bit prg(void){
char adress, temp,i,j,k;
clear_res(); //чистим приемный буфер
EEADR=ID0;
printf(“How much of KM (1-2) 0-exit? \r”); // запрос параметра
GIE=1;
recive_response (50,0, _OK); // ждем ответ
GIE=0;
j=res[0]-0x30; //Дождались. переводим строку в число
if (j==0) return 0; // оказывается не дождались)))
if (j>2) {printf(“Error of number KM (1-2) \r”); return 0;} else // неверное значение
{
GIE=0; // все норм… пишем в епром
RP1=1;
RP0=0;
EEADR=0;
EEDATA=j;
write_eprom();

}

это отрывок не относящийся к обсуждаемому девайсу… но принцип виден…)))

msv

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

MrHot
mikki:

А не проще к компу подключать? программировать то все равно дома ИМХО придется… Сделать шнурок с преобразователем и наслаждаться…

" -… В помещение вошел неизвестный. Все присутствующие на него внимательно смотрели, но не могли угадать в нём знакомые черты. Это продолжалось не долого, пока он не заговорил. …"

Для начала - картинки (их веть все любят): 😃


Увеличить.


Увеличить.


Увеличить.

Ссылка на проект LogView.

Список поддерживаемых устройств - довольно велик. Всё есть, всё наглядно, много настроек. Работает через COM-порт (и через виртуальный включительно). У меня, на iChardr 106B+ на COM_20 всё работает как часики. На iMAX B6 и его клоны надо просто самому распаять COM-шнурок.

Так стоит ли делать сделанное ? Тем более, более красивую и удобную оболочку как в LogView сделать с нуля будет не просто. Другое дело, чтобы например симулировать протокол того же iMax B6 и выдать своё устройство за него. И пользовать LogView. Просто, iMax и его клоны, как мне показалось - есть уже у очень многих.

mikki

Мы легких путей не ищем… только в гамаке и только стоя…

Судя по картинкам, сия оболочка показывает текущие значения, если я правильно понял? Если так, то на кой она в поле нужна? Модель к нотбуку привязать и пытаться запустить?
Если имеется на борту статистика, то конечно частично эта оболочка может быть полезна… не знаю только в чем… разве что картинки красивые)))

Я привел пример кода УСТРОЙСТВА, которое работает с UART… и не требует НИКАКОЙ оболочки на компе…

Но если кому то охота разбираться с чужими протоколами и подсовывать свой девайс под видом чужого… Велкам как говорится)))

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

если к моменту посадки петарды не сработали, подключаем индикатор и смотрим максимальную просадку на каждой банке.

Вот вам и вся диагностика
и 2К памяти здесь за глаза…

MrHot

2mikki
Если вы говорили только про конфигурирование устройства с ПК при помощи COM-порта, тогда всё понятно. Тут никакие LogView не надобны.

Только я что-то не пойму, а что именно так нужно конфигурить в данной задаче ? Ну, подогнать точность измерений например можно (поправить конфигурационную константу). Так это можно прямо с программатора сделать. Это веть один раз нужно. Сделал и забыл.

МаркАнтоний:

Роман, а почему тогда в зарядках с балансирами делают именно на операционниках? Поглядите, в вот этой теме в сообщении 4 есть ссылка на схему зарядки которая мерит побаночно.

Я пытался делать на ОУ уже не один раз. Там засада - это дифференциальный усилитель. Требования к точности резисторов там особенно жёские. Пытался я делать на обычных SMD резисторах - отсойно то как получается… Точности никакой, все каналы - разное выдают. Ну, не то чтобы совсем разное, но разбег неприятный выходит. Схема простая, действительно: один ОУ и четыре резистора в его обвязке. Но… у вы… Надо заказывать точные резисторы. У меня их вообще ноль. Ни одного нету, откуда выпаять - не знаю.
Смотрю на плату готового сигнализатора провалов с LCD, который вычисляет побаночные напряжения. Там стоят к примру резисторы с обозначением на них “30C”. Я замерил их несколько штук, они все показали значение 20Ком. Что это за резисторы - не понять. Но тут же рядом, стоят к примеру “473” 47Ком. Они обычные. Но они в объвязках ОУ не присутствуют.

Так что, схема дифференциального каскада на ОУ - одновремено проста и сложна. Если кто-то паял такие схемы - откликнитесь, напишите, хватит ли точности 1% или надо ещё точнее для таких каскадов ?.

Enigm

Не програмка на компе всеравно нужна, что бы когда в ней вбил нужные значения напруг, она их посчитала и выдала данные для записи в ЕЕПРОМ контроллера,так проше самому считать не надо ))

MrHot:

Там стоят к примру резисторы с обозначением на них “30C”. Я замерил их несколько штук, они все показали значение 20Ком. Что это за резисторы - не понять

Это резисторы 1процентной точности они по другому маркируются вот глянте табличку kazus.ru/guide/resistors/10.html или www.radiant.su/rus/articles/?action=show&id=334 и все встанет на свои места 30С=20ком

MrHot:

напишите, хватит ли точности 1%

Ну обычно вехде и стоят такие , кучу всяких аппаратов перемонтировал ,в особо важных местах именно они и стоят

mikki

Если непременно на ОУ делать, то нужно инструментальные использовать… при этом цена девайса будет негламурна…
ИМХО достаточно набора делителей… сами посчитайте ток разряда на тех же 20кОмах - копейки выйдут.
итого - 6 входов АЦП, 6 ног для индикатора 16Х2 (если надо), 2 ноги для УАРТА (ИМХО крайне желательно), светодиоды, ввод, петарды…
короче 16F786- за глаза…
Можно повыпендриваться и сделать устройство индикации на отдельном проце… и соединять их например по 1-wire))) но эт ужо для извращенцев)))

А программу связи с девайсом писать НЕ НАДО - гипертерминала достаточно и инструкции по программированию. А программировать например тип и количество банок жестко… ну или пределы на банку устанавливать вручную… вот это будет продвинутый девайс ИМХО… Но генератор опорного напряжения полюбому надо ставить - я уже нажрался от нестабильности… Вот в АВРах слышал есть встроенные… это тогда другое дело…

Кстати, только что мысль пришла… Веть на этих пиках можно не только выбирать + опорника… но и минус…
Тогда коммутируя минус от каждой банки на вход этого минуса опорника можно бут измерять напряжение четко на каждой банке без всяких математических изысканий))) но эт мысль… порисовать надо…

Enigm
mikki:

Тогда коммутируя минус от каждой банки на вход этого минуса опорника можно бут измерять напряжение четко на каждой банке без всяких математических изысканий))) но эт мысль… порисовать надо…

Так там вроде нет свободного выбора ноги куда этот минус вешать(либо на определенной ноге , либа внутри на корпус,освободив ногу), разве только ставить внешний комутатор типа КТ3
тут уж лутше математика чем доп корпус

mikki

Ну да… нету… но можно типа полевиков недорогих повесить… но это так… мысли вслух… мож пригодится)))
Хотя наверно лучше не надо… чтоб случайно банки не закоротить…

MrHot
Enigm:

Это резисторы 1процентной точности они по другому маркируются вот глянте табличку

Премного благодарен. Спасибо.

Enigm:

Ну обычно вехде и стоят такие , кучу всяких аппаратов перемонтировал ,в особо важных местах именно они и стоят

Это особенно обнадёживает, а то я тут дошел до ручки не зная что поточнее купить: “0,1% 0,05W, С5-44Т” 😮

mikki:

Если непременно на ОУ делать, то нужно инструментальные использовать… при этом цена девайса будет негламурна…

Ниже мы увидим, что это в нашем случае - излишне. Задача решается подручными средствами. Но для обучения, не мешало бы поработать и с такими услилителями.

И так. Я препарировал свой готовый индикатор провала питания. Он снабжен пищалкой, LCD-индикатором, умеет работать с 6S, умеет программироваться на любой порог срабатывания, умеет показывать напругу на любой банке, максимальное отклонение между банками, и показывает ещё и общее напряжени питания. Одна задница у него - слоновий вес.
Ну да ладно. Есть и есть. Так вот, на входах у него стоит пять дифф-каскадов на ОУ. Один корпус LM324 и один корпус LM358. Ах, да… ещё стоит ATMEGA48.
И так, вокруг ОУ навалом резисторов. Я немного пораспаял ОУ с платы и начал срисовывать идею. Выше, я писал, что повторить идею у меня не вышло из-за того, что нет резисторов. Но я попробовал подобрать одинаковые резисторы. И у меня получилось !! 😃

Вот, схема, она не точная, но рабочая.


Увеличить

Не точная, в том смысле что она уже мной переделана с LM324 на LM358. Её я сделать как раз и не смог. Но, не будем так категоричны. Видно, что дифф-каскады занимаются делением на два. Так вот, я решил что мне это не надо и начал просто делать каскады с соотношением 1:1. Я взял пулемётную ленту резисторов 0805, цифровой тестер Agilent и заделался Анкой-пулемётчицей. Я искал по 4-е одинаковых резистора на ленте. Как найду такие - в кучку их… Всего на мои нужды надо было нарыть две группы резисторов. И я их нарыл. Я брал резисторы 7.5Ком (почему-то они хорошо подбирались). Я подбирал с точность до сотых килоома. Т.е. тысячные килоома я не подбирал (это уже кажется нереально). Я всё распаял на макетке:

И вуа-ля ! Я получил 1:1 бработку напряжений с точностью до сотых долей вольта. Тысячные - не сходятся. И оно меня радует. Макетка создана ессно не для полётов а для разборок с капризными дифф-каскадами. Теперь надо делать всё по фэн-шую…

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

МаркАнтоний спасибо что ещё раз склонили в верном направлении свом вопросом про ОУ в зарядниках.

George164:

просто показалось, что вы предлагаете это сделать другим.

Это вам лишь казалось.

--------------

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

МаркАнтоний

Роман, а для чего микросхема MAX1615? И куда идёт ножка 4 этой микросхемы?

MrHot
МаркАнтоний:

Роман, а для чего микросхема MAX1615? И куда идёт ножка 4 этой микросхемы?

Хм… странно я думал, что достаточно нарисовать только филейные части схемы.
MAX1615 - питание проца (который по политическим причинам на схеме не нарисован). Ножка 4 - это #OUT. Т.е. это выход питающего напряжения.
Просто, питание самой MAX1615 развязано через диоды. И чтобы это показать - я показал и саму MAX1615.

MrHot
МаркАнтоний:

Ну это получается понижающий регулятор?

Так точно. А как ещё питать проц ? Не 12-ть же вольт подавать на него…
На самом деле, это не сильно принципиально. Можно питаться и от первой банки. Только вот у многих PIC-ов нет своего генератора опоры для АЦП. Вот и будет 5V для опоры. Можно поставть AVR. Там с этим проще.

MrHot

----------
Кстати, кто не желает ждать когда точные резисторы приедут через четыре недели из Москвы - может сделать как я. Я полез с паяльником и лупой на старые материнки. И нашел там немного с маркировкой “01С”, “48С” и несколько иных номиналов. Много таких резисторов и не надо (исключение - случаи 6S). Кстати, я проверил несколько таких “точных” резисторов, и понял, что не особо то они и точные. Есть некоторый разбег, но он значительно уже чем у простых резисторов. Так что, лучше всё равно купить ленту точных и подбирать их на каждый дифф-усилитель отдельно. И тогда - проблем вообще не будет. как я понял, с дифф-каскадом, лучше не шутить и ставить подобранные резисторы. И тогда - дифф-каскад будет как шёлковый. 😉

Makey

Вот сваял индикатор, конструкция на PIC12F675 позволяет без особого труда, при помощи простейшего пульта устанавливать пороги срабатывания индикации,на “коленке” даже в полевых условиях, не снимая индикатор с модели. Предложенный способ позволяет получить приемлемую точность без применения высокоточных резисторов, так как калибровка производится “по месту”. Проверял в “железе”. Плату не рисовал, займусь как время появится. Думаю нужно вместо 3-х светодиодов поставить один двухцветный с возможностью выноса за пределы платы.
Часть программного кода взята из индикатора спроектированного Enigm
,за что ему огромное спасибо.

Indikator.rar

7 days later
Makey

Вот доработал индикатор для работы с двухцветным светодиодом. Подправил обнаруженные ошибки. Нарисовал печатку.