Измерение напряжения между пинами

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Здравствуйте, возможно ли средствами ардуино измерять напряжение между пинами аналоговых входов?

На примере батареи, собранной из 12 элементов Ni-Mh по 1,2В каждый, требуется отслеживать напряжения каждого элемента в процессе разряда и записывать полученные значения с привязкой по времени.

Возможно ли измерять непосредственно V1, V2 ... V12, или придется высчитывать напряжения относительно 0:

V1=VpinA1

V2=VpinA2-VpinA1

V3=VpinA3-VpinA2-VpinA1

и т.д.

Измерять можно каждое напряжение отдельно, либо все одновременно, разницы нет. Главное потом по полученным значениям выстроить график разряда (но это уже будет решаться в excel).

Как лучше решить такую задачу?

 

nik182
Онлайн
Зарегистрирован: 04.05.2015

Поставить операционные усилители на каждую банку и на выходе будете иметь напряжение относительно земли. Это если нужна точность. В некоторых процессорах есть встроенные операционники и на них можно попробовать такой фокус устроить но входов мало. На пару банок. А получить делителем напряжения со всех банок, а потом методом вычитания расчитать конкретное значение - точность очень быстро падает для верхних банок. Но если устраивает два знака то вполне. 

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

Чтение аналоговых входов выполняеися последовательно, когда читается один канал, остальные находятся в hi-z состоянии, то есть между выводами мерить не получится (можно точнее но вам намного придется усложнить программу). Поэтому лучше мерить относительно нуля, ну и соответственно вешать резисторы на все входы, так как у вас относительно нуля и последней ячейки на вход мк пойдет 14.4 вольта, ну и остальные по убывающей, что не есть хорошо.

GarryC
Offline
Зарегистрирован: 08.08.2016

На STM, скорее всего, можно (там есть мультиплексор и дифференциальный режим). на Ардуино вряд ли.

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

Так что вариант с внешним операционником не так и плох, хотя делители все равно придется калибровать.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Такая мысля, мож понравится...

Отдельное питание для Ардуино. Точки А1-А12 к аналоговым входам А0-А11 через резисторы 10-100 кОм. Точки А0, А4, А8 поочередно соединяем с землей дуни (реле или оптронами) и читаем поочередно ADC соответственно  в точках  А1-А4,  А5-А8, А9-А12.

Если на аккумах более 1.25, то коммутируем на землю дуни точки А0, А3, А6, А9 и читаем поочередно ADC соответственно  в точках  А1-А3,  А4-А6, А7-А9, А10-А12.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

fm24nsk, дополню совет от  nick182 -именно так измеряется напряжение на популярном заряднике  imax B6 . Я бы сделал аналогично +  не стал бы использовать встренный АЦП , лучше взять внешний сигма-дельта и получить в разы лучшую точность.

 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Спасибо, начал продумавать схему с операционниками и застрял.

Поясните, пожалуйста, принцип работы транзисторов MMBTA64 и DTC114YKA в данной схеме. Сборки из 6 параллельных резисторов, как я понимаю, - это разрядная цепь, тогда транзистор MMBTA64 должен закрыться при появлении напряжения на базе, чтобы избежать разряда в 0? А DTC114YKA по некоему управляющему сигналу открывается и разрядная цепь отключается из-за закрытия MMBTA64. Или напряжение на базе MMBTA64 будет ниже, чем на коллекторе (при открытом DTC114YKA), и тогда разрядная цепь включится с ограничением по току (исходя из номиналов сопротивлений)?

Еще непонятно, почему перед ОУ делители напряжения с одним и тем же номиналом резисторов, хотя напряжение будет постоянно возрастать, к примеру:

на BAL3 напряжение 3,6 В, на ОУ после делителя приходит 1,284, затем ОУ поднимает его до 1,996.

на BAL4 напряжение 4,8 В, на ОУ после делителя приходит 1,712, затем ОУ поднимает его до 2,661. и т.д.

Как быть, у меня не так много знаний, нужно найти выход.

Моя схема в разработке:

R59-R70 в купе с диодами - разрядная цепь. Вся схема будет подключаться к батарее разъемным соединением

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

Или левая часть схемы как раз решает данную проблему? Прошу пояснить.

 

Дополню: Я понял свою ошибку рассматривая работу ОУ как неинвертирующего усилителя. На самом деле здесь другая логика, типа компаратора. И собственно он вычитает напряжение одного элемента от напряжения предыдущего.

Но просьба описать принцип работы схемы в силе. Возможно я заблуждаюсь где-то, зашел в тупик.

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Pyotr пишет:

Такая мысля, мож понравится...

Отдельное питание для Ардуино. Точки А1-А12 к аналоговым входам А0-А11 через резисторы 10-100 кОм. Точки А0, А4, А8 поочередно соединяем с землей дуни (реле или оптронами) и читаем поочередно ADC соответственно  в точках  А1-А4,  А5-А8, А9-А12.

Если на аккумах более 1.25, то коммутируем на землю дуни точки А0, А3, А6, А9 и читаем поочередно ADC соответственно  в точках  А1-А3,  А4-А6, А7-А9, А10-А12.

Занятная мысль:Но не повлияет ли напряжение включенных банок, к примеру в 10,8 В на ардуину? Ведь между пинами А0 и А12 уже будет 14,4 В?

 

Может пойти дальше и включать одну цепь для измерения?

Pyotr
Offline
Зарегистрирован: 12.03.2014

fm24nsk пишет:

Занятная мысль:Но не повлияет ли напряжение включенных банок, к примеру в 10,8 В на ардуину? Ведь между пинами А0 и А12 уже будет 14,4 В?

Может пойти дальше и включать одну цепь для измерения?

 

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

Точку А12 (в первом Вашем сообщении) не нужно коммутировать с землёй дуины. Для коммутации выбирать элементы, которые могут выдерживать + и - 10 В с сопротивлением в открытом состоянии близким к нулю. Проще всего реле. Транзисторы не подойдут.

И полярность аккумов измените на схеме.

SLKH
Offline
Зарегистрирован: 17.08.2015

13 штук малогабаритных реле + 2 ULN2003. 

Изменено: 12 реле.

 

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

аналоговый мультиплексор с управление по I2C или SPI

SLKH
Offline
Зарегистрирован: 17.08.2015

roman2712@mail.ru пишет:

аналоговый мультиплексор с управление по I2C или SPI

самый простой вариант.

сомневаюсь, что точность устроит.  

fm24nsk
Offline
Зарегистрирован: 07.01.2018

SLKH пишет:

roman2712@mail.ru пишет:

аналоговый мультиплексор с управление по I2C или SPI

самый простой вариант.

сомневаюсь, что точность устроит.  

А про какую точность идёт речь? 2 знаков после запятой более, чем достаточно

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

SLKH пишет:

roman2712@mail.ru пишет:

аналоговый мультиплексор с управление по I2C или SPI

самый простой вариант.

сомневаюсь, что точность устроит.  

А про какую точность идёт речь? 2 знаков после запятой более, чем достаточно

 

Нужно оценить реально достижимую погрешность измерения на пределе 15 вольт, а затем сравнить её с измеряемой величиной 1,2в. 

Важное вопрос: бюджет проекта? 

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

2 мультиплексора на операционный усилитель (почитайте http://easyelectronics.ru/izmeritelnye-cepi.html). Коэфицент усиление около 3. а с него уже мериете АЦП. 

на 328 вроде как дифернциального входа нет, так что реализуйте его на ОУ.

тогда "погрешность измерения на пределе 15 вольт" не актуальна. бедете мерить именно напряжение на элементе.

SLKH
Offline
Зарегистрирован: 17.08.2015

roman2712@mail.ru пишет:

2 мультиплексора на операционный усилитель (почитайте http://easyelectronics.ru/izmeritelnye-cepi.html). Коэфицент усиление около 3. а с него уже мериете АЦП. 

на 328 вроде как дифернциального входа нет, так что реализуйте его на ОУ.

тогда "погрешность измерения на пределе 15 вольт" не актуальна. бедете мерить именно напряжение на элементе.

Номиналы резисторов на схеме в #5 ни на какие размышления не наводят? 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

SLKH пишет:

Нужно оценить реально достижимую погрешность измерения на пределе 15 вольт, а затем сравнить её с измеряемой величиной 1,2в. 

Важное вопрос: бюджет проекта? 

Понравилась идея с аналоговым мультиплексором, нашел сдвоенный восьмиканальный, накидал схемку:Есть ли какие-нибудь подводные камни у такой реализации? Вроде получается то, что нужно: в определенный момент + и - элемента замыкаются соответствующе на аналоговый вход ардуино и на GND.

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

С мультиплексором вроде получается хорошо, потому что на самом деле вся батарея состоит из 11 таких сборок включенных последовательно, т.е. всего 132 элемента по 1,2В. Контролировать емкость и разряжать планирую хотябы раз в месяц. Думаю если поставить 3 мулиплексора, можно за раз 2 сборки разряжать с контролем емкости.

Можете еще что-то посоветовать?

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

Если ваша батарея не будет завязана на землю МК, то проканает. в противном случае, получите КЗ. 

Я рассматривал вариант что 2 мультиплексора будет подключены паралельно фактически паралельно к выводам батареи. При этом на 1 мульте выбираем к примеру (+) 1 батареи, на 2 (-) 1 батареи. Подаем это на ОУ и мереем с выхода ОУ напряжение.

 

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

SLKH пишет:

Нужно оценить реально достижимую погрешность измерения на пределе 15 вольт, а затем сравнить её с измеряемой величиной 1,2в. 

Важное вопрос: бюджет проекта? 

Понравилась идея с аналоговым мультиплексором, нашел сдвоенный восьмиканальный, накидал схемку:Есть ли какие-нибудь подводные камни у такой реализации? Вроде получается то, что нужно: в определенный момент + и - элемента замыкаются соответствующе на аналоговый вход ардуино и на GND.

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

С мультиплексором вроде получается хорошо, потому что на самом деле вся батарея состоит из 11 таких сборок включенных последовательно, т.е. всего 132 элемента по 1,2В. Контролировать емкость и разряжать планирую хотябы раз в месяц. Думаю если поставить 3 мулиплексора, можно за раз 2 сборки разряжать с контролем емкости.

Можете еще что-то посоветовать?

поинтересуйтесь ценами на высоковольтные мультиплексоры: http://igalant.ru/supertex-%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80%D1%8B

прикиньте, сколько нужно корпусов, а потом сумму. учтите, что блок мультплексоров должен быть развязан по питанию и от аккумуляторов, и от АЦП. и по управлению.

"Можете еще что-то посоветовать?" - китайские реле с контактами "2A" или "2С" (7 лотов по 20 штук или 3 по 50), сдвиговые регистры, ULN2003 и про-мини или нано - одна.

 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

MAX307 с али - 250 руб.

Пока что нужно 3 шт, если на всю батарею - 17 шт.

Думал про обычные релюхи, щелкать будет безостановочно, даже если делать одно измерение в минуту - за 6 часов 144 раза.

Ну и поставить столько релюхи - много места

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

MAX307 с али - 250 руб.

Пока что нужно 3 шт, если на всю батарею - 17 шт.

MAX307 вряд ли сильно возрадуется, если на неё 170 вольт подать.

fm24nsk
Offline
Зарегистрирован: 07.01.2018

SLKH пишет:

fm24nsk пишет:

MAX307 с али - 250 руб.

Пока что нужно 3 шт, если на всю батарею - 17 шт.

MAX307 вряд ли сильно возрадуется, если на неё 170 вольт подать.

Почему 170? Всего 8 выводов на 1 мультиплексор, а это 9,6 В между крайними. До 12 В на него можно давать на каждый вывод. Питание на него и ардуино будет отдельное с бп. От батареи общий ноль и + я никуда не буду использовать.

 

А, понял. Косяк на схеме. Каждый элемент 1,2 В, а не 12

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

SLKH пишет:

fm24nsk пишет:

MAX307 с али - 250 руб.

Пока что нужно 3 шт, если на всю батарею - 17 шт.

MAX307 вряд ли сильно возрадуется, если на неё 170 вольт подать.

Почему 170? Всего 8 выводов на 1 мультиплексор, а это 9,6 В между крайними. До 12 В на него можно давать на каждый вывод. Питание на него и ардуино будет отдельное с бп. От батареи общий ноль и + я никуда не буду использовать.

 

А, понял. Косяк на схеме. Каждый элемент 1,2 В, а не 12

нарисуйте всю свою батарею (не все 132 банки, а упрощенно, 4 первых - прерывистая линия - 4 последних, 129-132).

присоедините входы первого и последнего коммутаторов. не вдавайтесь в конкретику, рисуйте аналоговые входы (для простоты только 4 на корпус), аналоговые выходы (пусть их 2), цифровые входы управления (пусть всего одна линия), клеммы +питания и gnd. 

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

а теперь главное: прорисуйте цепи питания/земли коммутаторов и ардуины. линиями, а не пометками типа "VDD/GND".

проанализируйте напряжения.

========

/2 макс. напряжение на заряженной банке? может быть 1,35? или?

 

 

 

 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

 

Мне видится это так.

В конкретный момент времени будут скоммутированы только 2 контакта: - и + одного элемента.

Все 132 батареи не получитсяиз-за нехватки пинов на ардуино. Потребуется 2 ардуино мега, можно независимо подключить первую мегу к элементам 1-72, а вторую к 73-132.

Так я думаю проблем не будет.

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

fm24nsk
Offline
Зарегистрирован: 07.01.2018

SLKH пишет:

/2 макс. напряжение на заряженной банке? может быть 1,35? или?

 

 

 

 

Максимальное думаю не более 1,35 В

roman2712@mail.ru
Offline
Зарегистрирован: 16.01.2014

Ищите i2c тогда ног хватит. Или пустите мультиплексоры дркуг за другом. Тогда вам ног хватит.

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk, реальный аналоговый мультиплексор мало похож на свою функциональную схему - набор изолированных тумблеров.

В вашей схеме напряжение между входами соединенных между собой по цепям питания/земли микросхем может достигать 1,35*132=178 вольт. Вот из этого и исходите.

 

 

 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Всем здравствуйте. Уезжал ненадолго, пришлось отложить этот вопрос. Но я всё еще хочу реализовать свою задумку. Думал, как бы развязать питание, есть идея использовать питание для каждого мультиплексора непосредственно с участка батареи, элементы которой он коммутирует и добавить реле в цепь СОМВ.

В таком варианте схема будет жить? Проблему предвижу в разбросе напряжения питанияот 0,7В*8 до 1,35В*8 (5,6В-10,8В) при допустимом напряжении питания от 4,5 до 30 В для МАХ307.

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

Всем здравствуйте. Уезжал ненадолго, пришлось отложить этот вопрос. Но я всё еще хочу реализовать свою задумку. Думал, как бы развязать питание, есть идея использовать питание для каждого мультиплексора непосредственно с участка батареи, элементы которой он коммутирует и добавить реле в цепь СОМВ.

В таком варианте схема будет жить?

До подключения к батарее.

Ваши коммутаторы соединены по цепям A0-A3 и COMA, так что между входами будут те же 170 вольт. 

Посмотрите на картинку, на ней ничего лишнего:

 

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Ладно.

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

 

Пусть это будет 11 независимых схем для 12 элементов, но хочется одним ардуино собрать и обработать информацию об изменении напряжения в зависимости от времени на всех 132 элементах. 

SLKH
Offline
Зарегистрирован: 17.08.2015

fm24nsk пишет:

Ладно.

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

Шаговые искатели.

sivantsoff
Offline
Зарегистрирован: 17.11.2013

Здравствуйте!

Занимаюсь похожей проблемой. Последовательно включенные 8 аккумуляторов. Нужно мерить напряжение гна каждой банке. Собрал тестовую схему аналоговом мультиплексоре с диф. входом. Вместо аккумуляторов двухканальный источник питания и DVM Fluke 27II для измерения на DA DB. Ставлю A0 = A1 = A2 = 0V ENA = + 5V, чтобы использовать только первый порт мультиплексора S1A S1B. Выставляю напряжение питания CH1 = 6 вольт, CH2 = 0 вольт. На цифровом вольтметре мы имеем 0,790 вольт. Я увеличиваю напряжение на CH2. CH1 = 6V CH2 = 3V, а на цифровом вольтметре  0.774V. Продолжаю увеличивать напряжение на CH2. CH1 = 6V CH2 = 6V, а на цифровом вольтметре  0.757V. Почему это происходит? Почему выходное напряжение мультиплексора уменьшается с увеличением напряжения CH2? Как убрать это влияние?

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А от чего у Вас запитан аналоговый мультиплексор?

sivantsoff
Offline
Зарегистрирован: 17.11.2013

Гальванически развязанный DC/DC конвертер. От него и mux и ардуина.

sivantsoff
Offline
Зарегистрирован: 17.11.2013

DC/DC 48/15 для mux и из 15в в 5в LDO 7805 для ардуины

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Что в итоге выбрал ТС? Реализовали свою задумку?

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Нет, так и не реализовал. Схему разрядки сделал, схему контроля - нет. Может есть идеи какие-нибудь?

Green
Offline
Зарегистрирован: 01.10.2015

Для 132 элементов - 16 ардуин на батареи и одна мастером. Питание от батарей, вгонять в сон, связь через опторазвязку. Либо bq76pl455a-q1.

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Классная микросхема, но нужна для ni-mh элементов.
Сможете сделать схему и скетч для вашего предложения? Детали можем в личке обсудить.

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Классная микросхема, но нужна для ni-mh элементов.
Сможете сделать схему и скетч для вашего предложения? Детали можем в личке обсудить.

Green
Offline
Зарегистрирован: 01.10.2015

Напишите htpicc@gmail.com.

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Я буду реализовывать вот так:

http://arduino.ru/forum/apparatnye-voprosy/izmerenie-napryazheniya-11-akkumulyatorov

Схема на третьей странице ветки.

Использование модулей INA226 даст более высокую точность, чем просто ардуино, и уж точно лучше десятков ардуин.

Кстати можно при вашем напряжении использовать просто INA219, у меня напряжение выше, я взял 226.

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

А как реализовали разрядку интересно?

fm24nsk
Offline
Зарегистрирован: 07.01.2018

Просто параллельно каждому элементу присоединяется R 1 Ом и последовательно с ним диод, чтобы напряжение не упало ниже 0,7В. Т.е. каждый элемент разрядится до 0,7, потом диод перестанет пропускать.

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Включать нагрузку будете вручную, или автоматикой, чем? Кстати ina модули меняют и ток и можно посчитать ёмкость.

Green
Offline
Зарегистрирован: 01.10.2015

morfius пишет:

А как реализовали разрядку интересно?


Никак не реализовали.) На тини13 получается разрядка и контроль каждого из 4-х аккумуляторов.