Mastakkos
Jul 2 2011, 14:33
Ситуация такая.
Есть устройство, которое питается от батареи последовательно соединенных аккумуляторов, 12 В каждый. Аккумуляторов, например 5 (вообще, может быть разное количество). Необходимо с помощью atmega определять напряжение на каждом из аккумуляторов.
Проблем осложняется тем, что МК питается от одного из тех же аккумуляторов, через КРЕНку. Даже если мы применим дифференциальный режим АЦП, абсолютные значения на измерительных пинах плюса и минуса не могут превышать абсолютного значения VCC МК относительно GND МК, согласно даташиту. А это максимум 5 В. Если был был один аккуулятор - проблем бы не было. сделали делитель на резисторах, и всего делов. Но аккумуляторов-то несколько. Т.е. уже на втором аккумуляторе мы получаем превышение над VCC МК на 12 c лишним вольт.
Подскажите, как выкрутиться из этой ситуации?
Цитата(Mastakkos @ Jul 2 2011, 18:33)

Подскажите, как выкрутиться из этой ситуации?
Если хотите точно, то можно...
1. конденсатор коммутировать (несколько реле) - подсоединяем его к нужной коробочке, а потом - на вход АЦП.
2. несколько точных делителей...
3. несколько схем на ОУ - дифференциальных усилителей (есть готовые... с допустимым синфазным в сотни вольт)
4 - 100 - эти пункты оставляю другим фантазерам..
prottoss
Jul 2 2011, 14:56
Цитата(Mastakkos @ Jul 2 2011, 20:33)

Ситуация такая.
Есть устройство, которое питается от батареи последовательно соединенных аккумуляторов, 12 В каждый. Аккумуляторов, например 5 (вообще, может быть разное количество). Необходимо с помощью atmega определять напряжение на каждом из аккумуляторов.
Обычно, у меги 8 входов АЦП. К каждому входу АЦП, через рассчитаный делитель цепляете линейку батарей.
Далее рассчитываете алгоритм измерения.
1. Измеряете напряжение первой батареи (Б1).
2. Запоминаете значение Б1.
3. Измеряете напряжение Б1+Б2.
4. Запоминаете Б1+Б2.
5. Вычисляете Б2=(Б1+Б2)-Б1...
6. ИТД...
domowoj
Jul 2 2011, 15:01
Поставьте на каждый акк. по своему измерителю на, допустим,
на какой-либо Тиньке, имеющей на борту АЦП и УАРТ.
И МК собирающий эту информацию через опторазвязку.
Microwatt
Jul 2 2011, 18:46
Цитата(Mastakkos @ Jul 2 2011, 17:33)

Проблем осложняется тем, что МК питается от одного из тех же аккумуляторов, через КРЕНку.
Это очень плохое решение. Питайте все от ВСЕХ аккумуляторов. Иначе батарея скоропостижно помрет.
Mastakkos
Jul 2 2011, 19:02
Tanya, за споосбы спасибо, только они мне не показались такими уж точными. На каскаде делителей будет огромная потеря точности просто из-за того, что шкалу АЦП с 12 вольт растягиваем до 50 вольт. Конденсатор имеет свойство разряжаться, схемы с реле и ОУ весьма громоздки.
prottoss, ну это в принципе то же, что у Tanya, пункт 2. Алгоримт вполне рабочий, но проблема та же - шкала АЦП должна соответствовать 50-ти вольтам вместо 12-ти, что дает нам слишком большую "цену деления".
domowoj, наиболее сложный и интересный вариант, но с учетом того, что на батареях ещё какое-какие утилитарные действия производит бы неплохо, скорее всего я так и сделаю. Благодарю!
Microwatt, в общем случае я с вами согласен, в этом частном - не очень. Что плохого сделает аккуму на 33 А*ч и 12 вольт маленький микроконтроллер без особой обвязки? Перекос конечно будет, но какой-нибудь совсем микроскопический.
domowoj
Jul 3 2011, 01:46
Цитата(Mastakkos @ Jul 3 2011, 02:02)

domowoj, наиболее сложный и интересный вариант, но с учетом того, что на батареях ещё какое-какие утилитарные действия производит бы неплохо, скорее всего я так и сделаю. Благодарю!
Как раз не совсем сложный.
Поставить на каждой плате измерителя 3х разрядный микропереключатель, которым устанавливать № аккумулятора
(3 разряда - 8 штук), и программа МК в каждом измерителе будет одна и та же, и схема и печатка тоже.
Для связи с "центральным" МК, который должен опросить каждый из акк. по его номеру, организуйте интерфейс "токовая петля".
Недостатком наверное является бОльшая погрешность измерения,
чем, скажем, в варианте с переключаемым конденсатором.
prottoss
Jul 3 2011, 06:23
Цитата(Mastakkos @ Jul 3 2011, 01:02)

...но проблема та же - шкала АЦП должна соответствовать 50-ти вольтам вместо 12-ти, что дает нам слишком большую "цену деления".
А Вам какая точность нужна? для 8 акк. 12 вольт точность будет (примерно) 8*12 / 1024 = 0,09 вольт на деление.
Вариант от
domowoj, безусловно, хороший, но относительно дорогой.
Цитата
Вариант от domowoj, безусловно, хороший, но относительно дорогой.
По сравнению со стоимостью одного
Цитата
аккуму на 33 А*ч и 12 вольт
то - не сильно.
Но при использовании многоканального, 16-и битного АЦП и резитивного делителя на каждый узел, между аккууляторами - получается в районе 13 бит (это в идеале) на каждый аккум. Т.е. где-то 1мВ дискретность. А если показания должным образом отфильтровать (в цифре), то эти 13 бит можно растянуть еще на пару-тройку бит.
Схематически, такой вариант мне кажется по проще. (имхо)
Mastakkos
Jul 3 2011, 20:28
НЕХ, интересные ссылки, спасибо! Не знал, что это целая отдельная отрасль.
Цитата
Для связи с "центральным" МК, который должен опросить каждый из акк. по его номеру, организуйте интерфейс "токовая петля".
Ну мне UARЕ по-привычнее.
Цитата
Недостатком наверное является бОльшая погрешность измерения,
чем, скажем, в варианте с переключаемым конденсатором.
Вот этого не понял совершенно. В чем источник БОльшей погрешности, на ваш взгляд?
Цитата
А Вам какая точность нужна? для 8 акк. 12 вольт точность будет (примерно) 8*12 / 1024 = 0,09 вольт на деление.
На этом форуме многократно встречал утверждение, что последние два бита измерения АЦП стоит отбрасывать, т.к. точность у них обычно невысокая, и им можно доверять горазло меньше, чем остальным. Указанная вами точность вполне достаточна, если бы она была стабильной.
prottoss
Jul 3 2011, 20:39
Цитата(Mastakkos @ Jul 4 2011, 02:28)

На этом форуме многократно встречал утверждение, что последние два бита измерения АЦП стоит отбрасывать, т.к. точность у них обычно невысокая, и им можно доверять горазло меньше, чем остальным. Указанная вами точность вполне достаточна, если бы она была стабильной.
Почитайте аппноуты, касающиеся использования АЦП
вот здесь
http://www.atmel.com/dyn/products/document...ubfamily_id=760и еще обратите внимание вот на это семейство AVR
http://www.atmel.com/dyn/products/param_ta...bfamily_id=1603 - здесь расширенный АЦП.
Mastakkos
Jul 3 2011, 20:43
Да, вот ещё вопрос. Если мы ставим на каждую батарею по своей attiny, то от чего она должна питаться? Отчевидно, от своей же батареи через КРЕНку? Не повлияет ли это на точность измерений при колебании степени заряженности батареи?
prottoss
Jul 3 2011, 21:02
Цитата(Mastakkos @ Jul 4 2011, 02:43)

Да, вот ещё вопрос. Если мы ставим на каждую батарею по своей attiny, то от чего она должна питаться? Отчевидно, от своей же батареи через КРЕНку? Не повлияет ли это на точность измерений при колебании степени заряженности батареи?
Если аккумуляторы не планируется разряжать ниже 5 вольт а в качестве опорного напряжения для АЦП будет использоваться напряжение питания МК то погрешность будет складываться как нестабильность источника питания плюс погрешность самого АЦП.
Кстати, при питании от линейного стабилизатора - аля КРЕНка - нужно еще подсчитать, какой потребляемый ток от одного канала будет, все таки КРЕНке гасить как-никак 7 вольт. А там еще и оптроны потребляют...
domowoj
Jul 4 2011, 01:35
Цитата(Mastakkos @ Jul 4 2011, 03:28)

Ну мне UART по-привычнее.
Токовая петля это тот же RS232, но сигнал токовый,
если не изменяет память, "0" - течет ток 20мА,
"1" -течет ток менее 3 мА(или наоборот).
Преимущество - опторазвязка, бОльшая помехоустойчивость,
OlegPowerC
Jul 4 2011, 09:19
Посмотрите здесь
http://www.edn.com/contents/images/6648791.pdfЯ бы отказался от AVR и поставил бы дискретный сигма-дельта АЦП
Mastakkos
Jul 4 2011, 19:01
Цитата(domowoj @ Jul 4 2011, 05:35)

Токовая петля это тот же RS232, но сигнал токовый,
если не изменяет память, "0" - течет ток 20мА,
"1" -течет ток менее 3 мА(или наоборот).
Преимущество - опторазвязка, бОльшая помехоустойчивость,
Ну я UART не голым пускать собрался, а через MAX485, а потом через отпроны. Вопрос по поводу токовой петли: как организовать коммуникацию нескольких МК батарей с одним головным МК? С UART вроде все просто - головной МК - мастер, остальные слейвы, всех сажаем на одни и те же провода, только для мастера RX и TX поменяются местами. В итоге возможна двусторонняя коммуникация между мастером и каждым слейвом в отдельности. Коммуникация между слейвами невозможна, но она собственно и не нужна.
А как то же самое с токовой петлей реализовать?
Цитата
А как то же самое с токовой петлей реализовать?
последовательным соединением оптопар
domowoj
Jul 5 2011, 01:11
Цитата(ukpyr @ Jul 5 2011, 02:21)

последовательным соединением оптопар
!
Mastakkos
Jul 5 2011, 09:39
domowoj, прошу прощения, насчет токовой петли я несколько не в теме. Вот нашел в инете сейчас картинку одну - вы про такую схему говорите?
Нажмите для просмотра прикрепленного файлаЕсли да, означает ли, что при такой схеме RS485 уже можно и не использовать? Расстояние между устройствами около метра, но так же в пределах метра есть источник ЭМИ (двигатель 5 кВт).
domowoj
Jul 5 2011, 15:38
Да это она.
Только у мастера нужно соорудить полноценный управляемый генератор тока и (без ограничевающего резистора)
подать на, последовательно соединенные светодиоды "слейвов".
Транзисторы оптронов "слейвов" объединить в "монтажное ИЛИ" и подать на светодиод RX мастера.
Цитата(domowoj @ Jul 5 2011, 19:38)

Да это она.
Сомнительно... Оптронов какой-то избыток...
domowoj
Jul 5 2011, 16:17
Цитата(Tanya @ Jul 5 2011, 23:11)

Сомнительно... Оптронов какой-то избыток...
Да, оптронов избыток,
в 2 раза можно сократить.
Цитата(domowoj @ Jul 5 2011, 20:17)

Да, оптронов избыток,
в 2 раза можно сократить.
Также бы и нарисовали свое ИЛИ... А то вопрощающий, которому эта схема показалась нормальной, не так поймет.
Я тоже... не очень... только догадываюсь. И номиналы подозрительные. Типа - невидимый входной фильтр...
domowoj
Jul 5 2011, 16:51
Можно конечно за ТС всё сделать, но нужно же напрягать извилины.
К сожалению на большом компе посыпался недавно купленный Террабайтник,
а на ноуте нет ни одной рисовалки,
только набросок от руки, намек для ТС.
Забыл нарисовать токоограничивающий резистор впослед светодиоду
Цитата(domowoj @ Jul 5 2011, 20:51)

Можно конечно за ТС всё сделать, но нужно же напрягать извилины.
К сожалению на большом компе посыпался недавно купленный Террабайтник,
а на ноуте нет ни одной рисовалки,
только набросок от руки, намек для ТС.
Забыл нарисовать токоограничивающий резистор впослед светодиоду
Я бы так не делала...
Попробую без рисунков. Все слейвы зажигают свои светодиоды на стороне мастера. А фотоприемники этих рабских светодиодов объединены пресловутым ИЛИ (это еще как посмотреть... ИЛИ или И....) на хозяйской стороне.
domowoj
Jul 5 2011, 17:17
Не возражаю, так даже лучше, и оптронов меньше.
Mastakkos
Jul 5 2011, 21:18
Всем спасибо большое, вроде разобрались! )
Отправляю итоговую схему напоследок. Покритикуйте, если что не так.
Нажмите для просмотра прикрепленного файла
domowoj
Jul 6 2011, 01:25
В Б-Э ранзисторных ключей обязательно резистор,
R1 , и ему подобные, можно и увеличить.
Ток через светодиоды оптронов(5 мА) - "маловато будет".
И я бы все-таки объединил коллекторы, проинвертировав потом сигнал еще раз.
Цитата
Покритикуйте, если что не так
Не вижу смысла применять ключи на стороне слэйвов.
И вообще, извините, что повторяюсь, но целесообразнее использовать один хороший АЦП, вместо этого всего огорода.
В чем выигрыш Вашего подхода?
Как по мне, проще сделать так.
Нажмите для просмотра прикрепленного файлаДоводы я приводил
Здесь.
Забыл сказать, - по поводу:
Цитата
Я бы так не делала...
в этом есть смысл.
Если каждый, индивидуальный АЦП находится вблизи своей батареи, т.е. удаленно от основного контроллера, то опто-развязку желательно делать индивидуально на каждом из слэйвов и на мастере. Это повысит помехоустойчивость и повысит ремонтопригодность устройства в случае "криворукого" обслуживания аккумуляторов.
Microwatt
Jul 8 2011, 21:24
Вполне работоспособно. А математика сложений-вычитаний- калибровок - на то и программеры, чтоб им служба медом не казалась.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.