ИЗмерение Ардуиной напряжения до 120В

Shaman_BLR
Offline
Зарегистрирован: 20.10.2018

Приветствую!!

Необходимо измерение напряжения до 100-120В ардуинкой.
Много написано про измерение до 30, и даже 55 вольт. Но не нашел решения для такой задачи. Я так понимаю делителями выше поднимать нет смысла, ибо не хватит чувствительности Ардуины и будут нарастать погрешности. Какой способ вы можете посоветовать?

Точность измерения достаточна до +-0,5В (округление до 1В будет использоваться). Так прецезионного измерения не нужно. Больше стабильность приветствуется и простота реализации.

b707
Offline
Зарегистрирован: 26.05.2017

ну вообще-то 100 вольт с дискретизацией 10 бит - это цифровое разрешение 0.1в, для точности +/- 0.5в должно хватить вполне.

E_Krendel
Offline
Зарегистрирован: 24.05.2017

Вполне себе можно делителем. Только сопротивление меньшего плеча делителя должно быть хотя бы на пару порядков меньше входного сопротивления Ардуины.

Shaman_BLR
Offline
Зарегистрирован: 20.10.2018

ребят) я ардуину вторую неделю только изучаю). как собственно и программирование

"Аналоговые и цифровые выводы в режиме входа в идеале имеют сопротивление равное бесконечности, в реальности же это гигаомы, в расчетах входное сопротивление АЦП и портов обычно не учитывают"

значит по сопротивлению у нас запас приличный. Гигаомы, допустим даже если сопротивление входа равно 1 ГОм=1000 МОм =1 000 000 КОм. То есть используя номинал резисторов до 1 МОм, у нас разница будет в 3 порядка.

Резисторный делитель напряжения состоит из сопротивлений R1(от плюса) и R2(земля). Во сколько раз больше сопротивление R1 относительно R2, во столько раз у нас будет падение напряжение на делителе.

Ардуинка может мерять до 5 вольт. Нам нужно мерять до 100В. Соответственно делитель нам нужен на 20 (кстати, зависит ли чувствительность от номинала делителя? Может можно сделать диапазон до 150В, и делить проще и запас лишним не будет?)

 

Значит мы берем наше максимальное напряжение 100В и смотрим чтобы при этом напряжении на делителе было не более 5В

Онлайн калькуляторы показывают следующие данные по сопротивлениям.

R1=200 КОм

R2=10 КОм

На выходе делителя с таким номиналом при 150В входного (измеряемого) напряжения получается 4,7619В, что вполне вписывается в диапазон Ардуинки, с небольшим запасом.

Следовательно, применив данный номинал резисторов в делителе напряжения, я получу возможность измерять напряжение до 100В с точностью =+-0,5В безопасно для контроллера?

МОщность тут любая в принципе допускается? 0,125Вт сойдет?

Проверьте пожалуйста

 

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

1. Насколько я помню, согласно дэйташиту сопртивление источника не желательно делать больше 10 кОм.

2. Делитель делит не в соотношении R1/R2, а в соотношении (R1+R2)/R2.

3. Мощность также легко вычисляется W=U^2/R. В нашем случае 10000/200000=0.05.

Shaman_BLR
Offline
Зарегистрирован: 20.10.2018

1. "Для сохранения максимальной точности (10 разрядов) необходимо, чтобы внутреннее сопротивление источника сигнала не превышало 10 кОм. Это требование особенно важно при использовании резисторных делителей, подключенных к аналоговым входам платы. Сопротивление резисторов делителей не может быть слишком большим."

Учитывая, что нам все же не так важна такая точность - можно немного отойти от этого порога в 10 КОм.   Тогда к предложению соотношение резисторов

R1=20 КОм

R2=1 КОм..

Или можно еще снижать?

К примеру

R1=10 КОм

R2=0,5 КОм??

2. то есть в моем случае это будет не 20 а 21 раз

3. ну по мощности проходим уже хорошо) а то пока нашел 1% резисторы только в этой мощности

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

1. Особо снижать не следует - иначе не впишемся по мощности.

2. Да.

3. Можно, опираясь на мощность, решить обратную задачу: R = U^2/W. В нашем случае R = 10000/0.125 = 80000 т.е. 80 кОм. Но при этом измерять что-то выше 100 В уже чревато. 

В общем, как считать, я Вам показал. R2 будет в диапазоне 4-10 кОм. Если меньше - не пройдет по мощности, если больше - не вписывавется в требования дэйташита. Уточните максимально допустимое напряжение и пересчитайте.

Shaman_BLR
Offline
Зарегистрирован: 20.10.2018

тогда вижу вариант

R1-100 КОм

R2 - 5 КОм

Для напряжения до 100 В

Спасибо за помощь!

E_Krendel
Offline
Зарегистрирован: 24.05.2017

Shaman_BLR пишет:

тогда вижу вариант

R1-100 КОм

R2 - 5 КОм

Для напряжения до 100 В

Спасибо за помощь!

Если уж совсем точно, то будет мерить до 105 В.

Но есть и "Бескомпромиссный" вариант :)

Чуть сложнее и придется поискать нужные номиналы.

Верхнее плечо: 75 кОм + 820 Ом + 75 Ом = 75,895 кОм (это минимально проходит по мощности 0,125 Вт).

Нижнее плечо: 3,9 кОм.

Делитель получается 20,46

И тогда получаем шкалу 0...102,3 В с дискретом ровно 0,1 В (т.е. один уровень АЦП соответствует точно 0,1 Вольта).

Измеренное значение со входа (допустим, 964) просто делим на 10 и получаем Вольты (96,4).

Другой набор (чуть больше запас по мощности до 0,125 Вт): верхнее плечо 82 кОм + 1,6 кОм + 75 Ом + 3 Ом = 83,678 кОм; нижнее плечо 4,3 кОм.

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

E_Krendel пишет:

Верхнее плечо: 75 кОм + 820 Ом + 75 Ом = 75,895 кОм (это минимально проходит по мощности 0,125 Вт).

Даже при резисторах с 1% точностью последний 75-омный резистор явно избыточен. А с обычными 5% и второй - тоже.

E_Krendel пишет:

И тогда получаем шкалу 0...102,3 В с дискретом ровно 0,1 В (т.е. один уровень АЦП соответствует точно 0,1 Вольта).

Любовь к красивым цифрам не имеет ничего общего с точностью измерений.

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

Насколько я понял процесс АЦП на МК Атмел. При старте АЦП к определенному аналоговому входу подключается через внутренний ключ и резистор (единицы кОм кажется) накопительный конденсатор (внутренний), заряжается от источника на входе, и ключ отключает вход от накопительного конденсатора. Дальнейшее АЦП происходит от заряда внутреннего конденсатора.

Так вот, если читается один аналоговый вход с медленно меняющим напряжением и достаточно часто (сотни раз в сек), чтоб накопительный конденсатор не успевал разряжаться, то выходное сопротивление источника может быть много большим 10 кОм. ИМХО. Не проверял.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Скорее назвать этот конденсатор не накопительным, а паразитным.
Да, при измерении только одного входа возможно
этот конденсатор сохранит то напряжение
которое было на входе в предыдущее измерение
и станет работать как RC фильтр.
Что во многих случаях даже полезно.

Но если использовать два входа то при их переключении и высоком сопротивлении источника и
двух напряжений допустим одно около "0",  а другое около +5Вольт
этот конденсатор просто не сможет быстро перезаряжаться в таком диапазоне
и, как  крайний случай, при очень большом сопротивлении,
оба входа будут показыват 2.5 Вольта.
;)

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

trembo пишет:

этот конденсатор просто не сможет быстро перезаряжаться в таком диапазоне...

А он и не может.

Иначе откуда ограничения на скорость АЦ-преобразования?

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

trembo пишет:

Скорее назвать этот конденсатор не накопительным, а паразитным.
Да, при измерении только одного входа возможно
этот конденсатор сохранит то напряжение
которое было на входе в предыдущее измерение
и станет работать как RC фильтр.
Что во многих случаях даже полезно.

Но если использовать два входа то при их переключении и высоком сопротивлении источника и
двух напряжений допустим одно около "0",  а другое около +5Вольт
этот конденсатор просто не сможет быстро перезаряжаться в таком диапазоне
и, как  крайний случай, при очень большом сопротивлении,
оба входа будут показыват 2.5 Вольта.
;)

Скорее конденсатор хранения. Он специально для этого и задуман.

 

E_Krendel
Offline
Зарегистрирован: 24.05.2017

.

E_Krendel
Offline
Зарегистрирован: 24.05.2017

andriano пишет:

E_Krendel пишет:

Верхнее плечо: 75 кОм + 820 Ом + 75 Ом = 75,895 кОм (это минимально проходит по мощности 0,125 Вт).

Даже при резисторах с 1% точностью последний 75-омный резистор явно избыточен. А с обычными 5% и второй - тоже.

E_Krendel пишет:

И тогда получаем шкалу 0...102,3 В с дискретом ровно 0,1 В (т.е. один уровень АЦП соответствует точно 0,1 Вольта).

Любовь к красивым цифрам не имеет ничего общего с точностью измерений.

Да, согласен, что нужны резисторы 0,1%. Или какие угодно, но подобранные по измерениям хорошим прибором.

А когда дискрет "ровный", округления (отбрасывания) нет. Хотя бы на этом точность не теряется.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну уж точно скорость преобразования ни как не связана с конденсатором выборки-хранения. Для заряда этого конденсатора как раз нужно иметь определённое выходное сопротивление источника сигнала, что бы успеть зарядить до измеряемого напряжения за время выборки. Поэтому делитель с вехним плечом больше 10к не удволетворяет требованиям даташита. В случае верхнего плеча делителя больше 10к нужно ставить операционник с единичным усилением. Это у STM32 есть настройка времени выборки и там есть спецификация на длительность выборки в зависимости от выходного сопротивления источника сигнала. Для stm32f1c8 минимальное время выборки 120нс требует 50 Ом выходного сопротивления. При этом время преобразования 1мкс. 

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

b707
Offline
Зарегистрирован: 26.05.2017

E_Krendel пишет:

Да, согласен, что нужны резисторы 0,1%. Или какие угодно, но подобранные по измерениям хорошим прибором.

А когда дискрет "ровный", округления (отбрасывания) нет. Хотя бы на этом точность не теряется.

можно просто "какие угодно", а после сборки откалибровать делитель хорошим мультиметром. За "ровным дискретом" гнаться нет смысла - дискрет будет зависеть от кучи факторов, таких как напряжение питания, температурный дрейф резисторов, выходное сопротивление измеряемой цепи и тд. Потратите кучу трудов на его "выравнивание" - а при следующем включении опять все "съедет".

E_Krendel
Offline
Зарегистрирован: 24.05.2017

b707 пишет:

За "ровным дискретом" гнаться нет смысла - дискрет будет зависеть от кучи факторов, таких как напряжение питания, температурный дрейф резисторов, выходное сопротивление измеряемой цепи и тд. Потратите кучу трудов на его "выравнивание" - а при следующем включении опять все "съедет".

Как раз собственно дискрет будет одинаковым. Разным будет его "наполнение" фактическими милливольтами, что зависит от кучи внешних факторов.

b707
Offline
Зарегистрирован: 26.05.2017

E_Krendel пишет:

Как раз собственно дискрет будет одинаковым. Разным будет его "наполнение" фактическими милливольтами, что зависит от кучи внешних факторов.

Я имел в виду. что подбирать точные резисторы типа 820 + 75 Ом, чтоб подогнать дискрет точно 0.1в нет никакого смысла

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

nik182 пишет:

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

Отнюдь.

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

nik182
Offline
Зарегистрирован: 04.05.2015

А я и не спорю. Действительно нижнее плечо должно быть не более 10к. 

Shaman_BLR
Offline
Зарегистрирован: 20.10.2018

Ребят, вы немного углубились . 

Необходимая мне точность - это одна десятая вольта.  Точнее округление будет до одной десятой.

Показометр будет вообще округлять до целого числа. Но для рассчетов буду использовать с точностью до десятых, потому что на токе 100А 0,5В это уже 50Вт разницы. Что существенно.

Меня больше интересует простота, надежность и повторяемость решения.  Резисторы буду ставить пусть даже 5%, но будет калибровка с эталонным вольтметром и запись результата полученного в формулы расчета. Этого тоже достаточно будет для моих требований по точности.

операционный усилитель усложнит схему. Если только готовый модуль взять у китайцев для измерения. Но я что то не нашел у них для такого напряжения высокого, для ардуинки

 

 

Bront
Offline
Зарегистрирован: 05.04.2016
Zontgom
Offline
Зарегистрирован: 08.09.2018

Зачем. Там простая схема. Простой делитель. На фото видно 2м и 52к.

Bront
Offline
Зарегистрирован: 05.04.2016

ну измеряет же. и, судя по обзору, вполне прилично

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

trembo пишет:

Скорее назвать этот конденсатор не накопительным, а паразитным.
Да, при измерении только одного входа возможно
этот конденсатор сохранит то напряжение
которое было на входе в предыдущее измерение
и станет работать как RC фильтр.
Что во многих случаях даже полезно.

Но если использовать два входа то при их переключении и высоком сопротивлении источника и
двух напряжений допустим одно около "0",  а другое около +5Вольт
этот конденсатор просто не сможет быстро перезаряжаться в таком диапазоне
и, как  крайний случай, при очень большом сопротивлении,
оба входа будут показыват 2.5 Вольта.
;)

Не совсем так. При быстрых переключениях на новом измерении остается ЧАСТЬ предыдущего сигнала. Это можно учесть калибровкой и тупо вычитать долю от предыдущего измерения, что мы и делали на соревнованиях. У нас (без ОУ) измерительное сопротивление датчика составляло от 500 до 750кОм, и доля с предыдущего замера оказывалась примерно 1/3 .. 1/4 для замеров на частоте АЦП 1Мгц (79ksps). Программной компенсации оказалось более чем достаточно.

E_Krendel
Offline
Зарегистрирован: 24.05.2017

Arhat109-2 пишет:

При быстрых переключениях на новом измерении остается ЧАСТЬ предыдущего сигнала. Это можно учесть калибровкой и тупо вычитать долю от предыдущего измерения

Попытался я просчитать (сначала по-честному, диффурой в Маткаде, из известных параметров входа Ардуины и резистивного делиталя), какое время требуется для установления напряжения на АЦП, и как влияют параметры делителя на это время и на точность. Потом уже вывел формулу.

В общем, как и предполагалось, влияет все :) Но наиболее сильно на время установления влияет резистор перед конденсатором 14 пФ на входе. Мне попалась инфа, что этот резистор (внутри Ардуины) может быть от 1 до 100 кОм.

Если это так, то получается (при подаче макс. напряжения на АЦП с нулевым остаточным напряжением):

при 1 кОм время около 0,4 мкс;

при 10 кОм время около 2 мкс;

при 100 кОм время около 16 мкс.

Делитель также влияет на время установления: при увеличении номинала плеч время увеличивается.

Причем, точность (одинаковость напряжения на делителе и на АЦП) ухудшается с увеличением как номинала плеч, так и этого входного резистора.

В лучшем случае (входной резистор 1 кОм, верхнее плечо 100 Ом...100 кОм, нижнее до 100 Ом), относительная точность не хуже 10^-5.

При входном резисторе 100 кОм отн. точность ухудшается до 10^-3 при том же делителе.

В общем, при входном резисторе 1 кОм номиналы делителя влияют мало вплоть до сотен кОм. Если входной резистор 10 кОм, а тем более 100 кОм, то делитель даже в единицы Ом не спасет от малой точности и большого времени установления.

Кому интересно, могу выслать формулу.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

E_Krendel пишет:

кому интересно, могу выслать формулу.

Интересно! почта ник на яндексе

E_Krendel
Offline
Зарегистрирован: 24.05.2017

ua6em пишет:

E_Krendel пишет:

кому интересно, могу выслать формулу.

Интересно! почта ник на яндексе

Отправил

strarbit
Offline
Зарегистрирован: 12.06.2016

.