Измерение напряжения между пинами
- Войдите на сайт для отправки комментариев
Вс, 07/01/2018 - 21:35
Здравствуйте, возможно ли средствами ардуино измерять напряжение между пинами аналоговых входов?
На примере батареи, собранной из 12 элементов Ni-Mh по 1,2В каждый, требуется отслеживать напряжения каждого элемента в процессе разряда и записывать полученные значения с привязкой по времени.
Возможно ли измерять непосредственно V1, V2 ... V12, или придется высчитывать напряжения относительно 0:
V1=VpinA1
V2=VpinA2-VpinA1
V3=VpinA3-VpinA2-VpinA1
и т.д.
Измерять можно каждое напряжение отдельно, либо все одновременно, разницы нет. Главное потом по полученным значениям выстроить график разряда (но это уже будет решаться в excel).
Как лучше решить такую задачу?
Поставить операционные усилители на каждую банку и на выходе будете иметь напряжение относительно земли. Это если нужна точность. В некоторых процессорах есть встроенные операционники и на них можно попробовать такой фокус устроить но входов мало. На пару банок. А получить делителем напряжения со всех банок, а потом методом вычитания расчитать конкретное значение - точность очень быстро падает для верхних банок. Но если устраивает два знака то вполне.
Чтение аналоговых входов выполняеися последовательно, когда читается один канал, остальные находятся в hi-z состоянии, то есть между выводами мерить не получится (можно точнее но вам намного придется усложнить программу). Поэтому лучше мерить относительно нуля, ну и соответственно вешать резисторы на все входы, так как у вас относительно нуля и последней ячейки на вход мк пойдет 14.4 вольта, ну и остальные по убывающей, что не есть хорошо.
На STM, скорее всего, можно (там есть мультиплексор и дифференциальный режим). на Ардуино вряд ли.
Так что придется высчитывать. И еще одно учтите - на старших банках будет много вольт, придется ставить резистивные делители и стараться сделать их точными, иначе будет большая погрешность.
Так что вариант с внешним операционником не так и плох, хотя делители все равно придется калибровать.
Такая мысля, мож понравится...
Отдельное питание для Ардуино. Точки А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.
fm24nsk, дополню совет от nick182 -именно так измеряется напряжение на популярном заряднике imax B6 . Я бы сделал аналогично + не стал бы использовать встренный АЦП , лучше взять внешний сигма-дельта и получить в разы лучшую точность.
Спасибо, начал продумавать схему с операционниками и застрял.
Поясните, пожалуйста, принцип работы транзисторов 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 плохой и разрядится раньше остальных - поплывут показания всех последующих элементов.
Или левая часть схемы как раз решает данную проблему? Прошу пояснить.
Дополню: Я понял свою ошибку рассматривая работу ОУ как неинвертирующего усилителя. На самом деле здесь другая логика, типа компаратора. И собственно он вычитает напряжение одного элемента от напряжения предыдущего.
Но просьба описать принцип работы схемы в силе. Возможно я заблуждаюсь где-то, зашел в тупик.
Такая мысля, мож понравится...
Отдельное питание для Ардуино. Точки А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 В?
Может пойти дальше и включать одну цепь для измерения?
Занятная мысль:Но не повлияет ли напряжение включенных банок, к примеру в 10,8 В на ардуину? Ведь между пинами А0 и А12 уже будет 14,4 В?
Может пойти дальше и включать одну цепь для измерения?
На некоторые выводы дуни в разное время будут подаваться отрицательные и положительные напряжения более 5 В. При наличии защитных резисторов это не страшно.
Точку А12 (в первом Вашем сообщении) не нужно коммутировать с землёй дуины. Для коммутации выбирать элементы, которые могут выдерживать + и - 10 В с сопротивлением в открытом состоянии близким к нулю. Проще всего реле. Транзисторы не подойдут.
И полярность аккумов измените на схеме.
13 штук малогабаритных реле + 2 ULN2003.
Изменено: 12 реле.
аналоговый мультиплексор с управление по I2C или SPI
аналоговый мультиплексор с управление по I2C или SPI
самый простой вариант.
сомневаюсь, что точность устроит.
аналоговый мультиплексор с управление по I2C или SPI
самый простой вариант.
сомневаюсь, что точность устроит.
А про какую точность идёт речь? 2 знаков после запятой более, чем достаточно
аналоговый мультиплексор с управление по I2C или SPI
самый простой вариант.
сомневаюсь, что точность устроит.
А про какую точность идёт речь? 2 знаков после запятой более, чем достаточно
Нужно оценить реально достижимую погрешность измерения на пределе 15 вольт, а затем сравнить её с измеряемой величиной 1,2в.
Важное вопрос: бюджет проекта?
2 мультиплексора на операционный усилитель (почитайте http://easyelectronics.ru/izmeritelnye-cepi.html). Коэфицент усиление около 3. а с него уже мериете АЦП.
на 328 вроде как дифернциального входа нет, так что реализуйте его на ОУ.
тогда "погрешность измерения на пределе 15 вольт" не актуальна. бедете мерить именно напряжение на элементе.
2 мультиплексора на операционный усилитель (почитайте http://easyelectronics.ru/izmeritelnye-cepi.html). Коэфицент усиление около 3. а с него уже мериете АЦП.
на 328 вроде как дифернциального входа нет, так что реализуйте его на ОУ.
тогда "погрешность измерения на пределе 15 вольт" не актуальна. бедете мерить именно напряжение на элементе.
Нужно оценить реально достижимую погрешность измерения на пределе 15 вольт, а затем сравнить её с измеряемой величиной 1,2в.
Важное вопрос: бюджет проекта?
Понравилась идея с аналоговым мультиплексором, нашел сдвоенный восьмиканальный, накидал схемку:Есть ли какие-нибудь подводные камни у такой реализации? Вроде получается то, что нужно: в определенный момент + и - элемента замыкаются соответствующе на аналоговый вход ардуино и на GND.
По поводу бюджета не размышлял, я не против вложиться, этот разрядник мне нужен для личных нужд.
С мультиплексором вроде получается хорошо, потому что на самом деле вся батарея состоит из 11 таких сборок включенных последовательно, т.е. всего 132 элемента по 1,2В. Контролировать емкость и разряжать планирую хотябы раз в месяц. Думаю если поставить 3 мулиплексора, можно за раз 2 сборки разряжать с контролем емкости.
Можете еще что-то посоветовать?
Если ваша батарея не будет завязана на землю МК, то проканает. в противном случае, получите КЗ.
Я рассматривал вариант что 2 мультиплексора будет подключены паралельно фактически паралельно к выводам батареи. При этом на 1 мульте выбираем к примеру (+) 1 батареи, на 2 (-) 1 батареи. Подаем это на ОУ и мереем с выхода ОУ напряжение.
Нужно оценить реально достижимую погрешность измерения на пределе 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 и про-мини или нано - одна.
MAX307 с али - 250 руб.
Пока что нужно 3 шт, если на всю батарею - 17 шт.
Думал про обычные релюхи, щелкать будет безостановочно, даже если делать одно измерение в минуту - за 6 часов 144 раза.
Ну и поставить столько релюхи - много места
MAX307 с али - 250 руб.
Пока что нужно 3 шт, если на всю батарею - 17 шт.
MAX307 вряд ли сильно возрадуется, если на неё 170 вольт подать.
MAX307 с али - 250 руб.
Пока что нужно 3 шт, если на всю батарею - 17 шт.
MAX307 вряд ли сильно возрадуется, если на неё 170 вольт подать.
Почему 170? Всего 8 выводов на 1 мультиплексор, а это 9,6 В между крайними. До 12 В на него можно давать на каждый вывод. Питание на него и ардуино будет отдельное с бп. От батареи общий ноль и + я никуда не буду использовать.
А, понял. Косяк на схеме. Каждый элемент 1,2 В, а не 12
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? или?
Мне видится это так.
В конкретный момент времени будут скоммутированы только 2 контакта: - и + одного элемента.
Все 132 батареи не получитсяиз-за нехватки пинов на ардуино. Потребуется 2 ардуино мега, можно независимо подключить первую мегу к элементам 1-72, а вторую к 73-132.
Так я думаю проблем не будет.
Рассматривал варианты с одновременной коммутацией двух или трех компараторов, да тут возникает проблема с перенапряжением.
/2 макс. напряжение на заряженной банке? может быть 1,35? или?
Максимальное думаю не более 1,35 В
Ищите i2c тогда ног хватит. Или пустите мультиплексоры дркуг за другом. Тогда вам ног хватит.
fm24nsk, реальный аналоговый мультиплексор мало похож на свою функциональную схему - набор изолированных тумблеров.
В вашей схеме напряжение между входами соединенных между собой по цепям питания/земли микросхем может достигать 1,35*132=178 вольт. Вот из этого и исходите.
Всем здравствуйте. Уезжал ненадолго, пришлось отложить этот вопрос. Но я всё еще хочу реализовать свою задумку. Думал, как бы развязать питание, есть идея использовать питание для каждого мультиплексора непосредственно с участка батареи, элементы которой он коммутирует и добавить реле в цепь СОМВ.
В таком варианте схема будет жить? Проблему предвижу в разбросе напряжения питанияот 0,7В*8 до 1,35В*8 (5,6В-10,8В) при допустимом напряжении питания от 4,5 до 30 В для МАХ307.
Всем здравствуйте. Уезжал ненадолго, пришлось отложить этот вопрос. Но я всё еще хочу реализовать свою задумку. Думал, как бы развязать питание, есть идея использовать питание для каждого мультиплексора непосредственно с участка батареи, элементы которой он коммутирует и добавить реле в цепь СОМВ.
В таком варианте схема будет жить?
До подключения к батарее.
Ваши коммутаторы соединены по цепям A0-A3 и COMA, так что между входами будут те же 170 вольт.
Посмотрите на картинку, на ней ничего лишнего:
Ладно.
Но кроме использования реле, что-нибудь можно придумать?
Пусть это будет 11 независимых схем для 12 элементов, но хочется одним ардуино собрать и обработать информацию об изменении напряжения в зависимости от времени на всех 132 элементах.
Ладно.
Но кроме использования реле, что-нибудь можно придумать?
Шаговые искатели.
Здравствуйте!
Занимаюсь похожей проблемой. Последовательно включенные 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? Как убрать это влияние?
А от чего у Вас запитан аналоговый мультиплексор?
Гальванически развязанный DC/DC конвертер. От него и mux и ардуина.
DC/DC 48/15 для mux и из 15в в 5в LDO 7805 для ардуины
Что в итоге выбрал ТС? Реализовали свою задумку?
Нет, так и не реализовал. Схему разрядки сделал, схему контроля - нет. Может есть идеи какие-нибудь?
Для 132 элементов - 16 ардуин на батареи и одна мастером. Питание от батарей, вгонять в сон, связь через опторазвязку. Либо bq76pl455a-q1.
Классная микросхема, но нужна для ni-mh элементов.
Сможете сделать схему и скетч для вашего предложения? Детали можем в личке обсудить.
Классная микросхема, но нужна для ni-mh элементов.
Сможете сделать схему и скетч для вашего предложения? Детали можем в личке обсудить.
Напишите htpicc@gmail.com.
Я буду реализовывать вот так:
http://arduino.ru/forum/apparatnye-voprosy/izmerenie-napryazheniya-11-akkumulyatorov
Схема на третьей странице ветки.
Использование модулей INA226 даст более высокую точность, чем просто ардуино, и уж точно лучше десятков ардуин.
Кстати можно при вашем напряжении использовать просто INA219, у меня напряжение выше, я взял 226.
А как реализовали разрядку интересно?
Просто параллельно каждому элементу присоединяется R 1 Ом и последовательно с ним диод, чтобы напряжение не упало ниже 0,7В. Т.е. каждый элемент разрядится до 0,7, потом диод перестанет пропускать.
Включать нагрузку будете вручную, или автоматикой, чем? Кстати ina модули меняют и ток и можно посчитать ёмкость.
А как реализовали разрядку интересно?
Никак не реализовали.) На тини13 получается разрядка и контроль каждого из 4-х аккумуляторов.