Мини-обзор монитора тока INA219 с выходом I2C

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

d00m пишет:

ua6em пишет:

nik182 пишет:

Следующий шаг. 0.2 вольта. Т.е. работать можем только на пределе 320 мВ. , т.е максимальный ток 32 мА. Т.е максимальное выходное значение соответствует 32 мА. Простой пропорций можете посчитать, какое выходное значение  в цифре будет для любого друго тока и наооборот. Зачем калибровка? Прямой расчёт. 

нижней табличкой посчитал сопротивление шунта для максимального тока в 20 миллиампер на любом допустимом диапазоне напряжения шунта

 

ну вот нижняя табличка мне понятна. 

например если использовать шунт в 2ома - то для калибровки нужно указывать 

 
  ina219.calibrate(2, 0.04, 32, 0.02); 
                // R_шунта, напряж_шунта, макcнапряж, максток
 
так?
 

да, только сопротивление шунта на 2 ома смените, а 707 студентом  курс ...и технические измерения прогулял видимо

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

d00m пишет:

есть функция калибровки и конфигурирования, разве ими нельзя указать мои диапазоны измерения?

именно в этом мой вопрос. я читал тему с самого начала и даже Dimax указывал:

http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-208810

что для функции калибровки, второй параметр - напряж_шунта 

по идее - ВЫЧИСЛЯЕТСЯ, а не ВЫБИРАЕТСЯ из даташита, тем более из этих 4 вариантов - 40, 80, 160 и 320..

Запомните, даташит всегда первичен. Если в даташите написано. что вы можете выбрать только четыре варианта - 40, 80, 160 и 320 - то никакая функция ни в какой библиотеке этого не изменит.

В данном случае никакого противоречия нет. Вы просто не понимаете, как работает функция калибровки. Калибровка сначала ВЫЧИСЛЯЕТ нужное вам напряжение шунта, а потом ВЫБИРАЕТ ближайшее к нему значение из тех четырех, которые указаны в даташите.

 

 

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

b707 пишет:

ua6em - я имею в виду, что напряжение на шунте может быть любым, а не "только 40, 80, 160 или 320 милливольт". как это по ошибке написано у вас

в CCCP оно как правило приводилось к 75 милливольтам )))

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

Нет. Калибровкой нельзя сузить диапазон измерения. У вас есть железо и оно однозначно определяет этот диапазон, в зависимости от выбранного режима работы. Если Вы хотите иметь максимальный диапазон для своего тока, то шунт надо ставить такой, что бы при максимальном токе падение напряжение на нем было близко , но меньше чем 40 80 160 320 мB. Калибровка дает Вам перещётный коэффициент.

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

ua6em пишет:

в CCCP оно как правило приводилось к 75 милливольтам )))

вы все никак не въедете.

Добавте к своим словам слово "максимальное" - и они станут правильными. А без этого слова у вас написана ерунда.

d00m
Offline
Зарегистрирован: 21.02.2013

b707 пишет:

d00m пишет:

есть функция калибровки и конфигурирования, разве ими нельзя указать мои диапазоны измерения?

именно в этом мой вопрос. я читал тему с самого начала и даже Dimax указывал:

http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-208810

что для функции калибровки, второй параметр - напряж_шунта 

по идее - ВЫЧИСЛЯЕТСЯ, а не ВЫБИРАЕТСЯ из даташита, тем более из этих 4 вариантов - 40, 80, 160 и 320..

Запомните, даташит всегда первичен. Если в даташите написано. что вы можете выбрать только четыре варианта - 40, 80, 160 и 320 - то никакая функция ни в какой библиотеке этого не изменит.

В данном случае никакого противоречия нет. Вы просто не понимаете, как работает функция калибровки. Калибровка сначала ВЫЧИСЛЯЕТ нужное вам напряжение шунта, а потом ВЫБИРАЕТ ближайшее к нему значение из тех четырех, которые указаны в даташите.

 

 

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

и получается, что мне лучше выбрать шунт такой, чтобы с учетом моего макс тока на шунте я мог выбрать ТОЧНО такое значение напряжения, которое предложено для выбора в даташите? это наверное даст наиболее точный способ измерения?

в общем, судя по последней табличке - для макс тока в 20мА (0.02А) - шунт на 10ом будет не точный?

это важно - использовать точный шунт - 2, 4, 8 или 16, но именно не 10?

и важно ли указывать точно границу - макс ток? мои 20мА?

пока я остановился на решении припаять последовательно два 1ом резистора, чтобы было 2ом.

и тогда калибровка будет:

  ina219.calibrate(2, 0.04, 32, 0.02); 
                // R_шунта, напряж_шунта, макcнапряж, максток
 
но при этом наверное еще нужно предварительно вызывать функцию для конфигурирования модуля?
nik182
Offline
Зарегистрирован: 04.05.2015

Я ж писал про full-scale? Что не находится?

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

2 Ома  на единичном (40мв) усилении как раз и дадут максимальное разрешение для вашего тока 20 ма

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

ну почему же, просто вся шкала будет 32 ма )))

U_шунт 0,04 0,08 0,16 0,32
R_шунт 10 10 10 10
I_max 0,004 0,008 0,016 0,032

а когда всё получится откройте страницу 7 даташита и, переделайте всё из расчета 80 милливольт, где температурная зависимость минимальна )))
Всё новое - хорошо забытое старое

d00m
Offline
Зарегистрирован: 21.02.2013

ua6em пишет:

ну почему же, просто вся шкала будет 32 ма )))

U_шунт 0,04 0,08 0,16 0,32
R_шунт 10 10 10 10
I_max 0,004 0,008 0,016 0,032

 

 

так, кажется примерно понимаю.

при 10ом шунте шкала будет 32ма, но только в том случае, если я ВЫБЕРУ при калибровке второй параметр функции == 0.32 == 320мв

  ina219.calibrate(10, 0.32, 32, 0.02); 
                // R_шунта, напряж_шунта, макcнапряж, максток

а если, например, я выберу 160мв -то шкала будет всего до 16мА и я "рискую потерять" значение при измерении (пока опустим факт, что 100м/c ветер - это ураган и уже и измерять ничего не надо)

но остается все таки еще один вопрос - нужно ли вызывать функцию конфигурирования, или оставлять ее с дефолтными значениями из библиотеки?

// config values (range, gain, bus adc, shunt adc, mode) can be derived from pp26-27 in the datasheet
// defaults are:
// range = 1 (0-32V bus voltage range)
// gain = 3 (1/8 gain - 320mV range)
// bus adc = 3 (12-bit, single sample, 532uS conversion time)
// shunt adc = 3 (12-bit, single sample, 532uS conversion time)
// mode = 7 (continuous conversion)

 

по идее параметр gain в дефолте равен 320мв - это то, что мне нужно или оно не коррелирует с макс напряжением шунта, которое ТОЖЕ должно быть равно 320мв или 0.32в для функции калибровки?

 

Иван_
Offline
Зарегистрирован: 23.02.2018

Уважаемый d00m не хотел снова снова ввязываться в полемику что бы не мешать людям путаться  в даташитах и коэффициентах раз они они не воспринимают то что я написал и хотят поморочить себе голову. Еще раз пишу о ненужности библиотек а нужности самостоятельного чтения значения регистров. Если у вас шунт 10 Ом  то в переменной  int Padenie_V_Synt = ina219_read(0x01); будет искомый вами ток по  закону ома I=U/R  R= 10 Om,  U = падению напряжения на шунте в одном значении 10 мили вольт то есть количество единиц падения в каждой 10 мили вольт U= K*10, к -  количество единиц падения напряжения  то есть I= k*10/10 или I=k. И все не ломайте голову понапрасну (хотя если есть есть желание).   Еще раз код рабочий измеряет примерно такие же токи как у вас. Допишите с верху все что надо дописать типа #include <Wire.h и наслаждайтесь.

  

d00m
Offline
Зарегистрирован: 21.02.2013

Иван_ пишет:

Уважаемый d00m не хотел снова снова ввязываться в полемику что бы не мешать людям путаться  в даташитах и коэффициентах раз они они не воспринимают то что я написал и хотят поморочить себе голову. Еще раз пишу о ненужности библиотек а нужности самостоятельного чтения значения регистров. Если у вас шунт 10 Ом  то в переменной  int Padenie_V_Synt = ina219_read(0x01); будет искомый вами ток по  закону ома I=U/R  R= 10 Om,  U = падению напряжения на шунте в одном значении 10 мили вольт то есть количество единиц падения в каждой 10 мили вольт U= K*10, к -  количество единиц падения напряжения  то есть I= k*10/10 или I=k. И все не ломайте голову понапрасну (хотя если есть есть желание).   Еще раз код рабочий измеряет примерно такие же токи как у вас. Допишите с верху все что надо дописать типа #include <Wire.h и наслаждайтесь.

  

и вам спасибо за ответы.

я нашел приведенный вами код в полном виде в 6 сообщении :

http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-95304

и тоже хочу его проверить.

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

но ваш пример тоже буду проверять.

там просто нужно понять как правильно заполнить значение конфиг регистра:

08 ina219_write(0x00, 0x37ff);// значение конфигурационного регистра по даташиту
09 //текущ.конфигурация  00 1 10 1111 1111 111 = 0x37FF (на 26й странице даташита)

 

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

Её желательно вызывать с теми параметрами, которые Вы решили использовать. Что бы быть уверенным, что мс проинициализировалась так, как надо. Слово коррелирует совсем не в кассу. Вы выбираете шунт и режим. Что выбрали, то и надо писать. 

Иван_
Offline
Зарегистрирован: 23.02.2018

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

08 ina219_write(0x00, 0x37ff);// значение конфигурационного регистра по даташиту
09 //текущ.конфигурация  00 1 10 1111 1111 111 = 0x37FF (на 26й странице даташита)

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

d00m
Offline
Зарегистрирован: 21.02.2013

nik182 пишет:

Её желательно вызывать с теми параметрами, которые Вы решили использовать. Что бы быть уверенным, что мс проинициализировалась так, как надо. Слово коррелирует совсем не в кассу. Вы выбираете шунт и режим. Что выбрали, то и надо писать. 

просто мне непонятно - почему в даташите есть информация о PG Bit Settings (26 стр. https://cdn-shop.adafruit.com/datasheets/ina219.pdf)

и почему эти 4 значение так "похожи" на значения напряжений на шунте для функции калибровки.

то есть - похоже есть какая-то связь между range и напряжением на шунте.

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

потому и вопрос - нужно ли чтобы они совпадали при вызове этих функций?

sadman41
Offline
Зарегистрирован: 19.10.2016

d00m пишет:

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

Тут "калибровку" надо понимать, как  "выбор нужных параметров конфигурации". А эти параметры нужны, чтобы АЦП не "зашкалило". Вот analogRead() знаете? Поставьте analogRefrence в 1.1V и подайте на пин 3.3V или 5V - что будет? Правильно - analogRead() покажет 1023 в обоих случаях. Зато напряжения до 1.1V будет очень точно измерять, точнее чем при analogRefrence в 5V.

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

INA219 это не датчик, это самодостаточное микропроцессорное устройство, следующим вариантом Вам захочется усреднять, там оно всё есть, можно и без библиотек и, DIMAX об этом писал, но на начальном уровне с ними как-то проще...

Информации насовали полный короб, разбирайтесь )))

d00m
Offline
Зарегистрирован: 21.02.2013

ua6em пишет:

INA219 это не датчик, это самодостаточное микропроцессорное устройство, следующим вариантом Вам захочется усреднять, там оно всё есть, можно и без библиотек и, DIMAX об этом писал, но на начальном уровне с ними как-то проще...

Информации насовали полный короб, разбирайтесь )))

 

спасибо, перечитываю все..

датчик - имелся ввиду мой девайс-анемометр, у которого на выходе 4-20мА, которые и нужно измерять с шагом в 0.16mA или еще лучше - 0.016mA 

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

d00m пишет:

ua6em пишет:

INA219 это не датчик, это самодостаточное микропроцессорное устройство, следующим вариантом Вам захочется усреднять, там оно всё есть, можно и без библиотек и, DIMAX об этом писал, но на начальном уровне с ними как-то проще...

Информации насовали полный короб, разбирайтесь )))

 

спасибо, перечитываю все..

датчик - имелся ввиду мой девайс-анемометр, у которого на выходе 4-20мА, которые и нужно измерять с шагом в 0.16mA или еще лучше - 0.016mA 

12 бит на всю шкалу даст 5 микроампер точности )))

d00m
Offline
Зарегистрирован: 21.02.2013

итак, при 

 ina219.configure(1, 3, 12, 12, 7); 
                    //  32v, 320mv 
  
 ina219.calibrate(10, 0.32, 32, 0.02); 
                // R_шунта, напряж_шунта, макcнапряж, максток
                // 10ohm, 320mv, 32v, 20mA

получаю такие значения:

4.121 mA

4.122 mA
4.122 mA
4.122 mA
4.122 mA
4.122 mA
4.122 mA
4.121 mA
4.121 mA
4.122 mA
4.122 mA

как видно - третья цифра после запятой "гуляет" и это мне немножко мешает, так как  0.1 m/s == 0.016 mA и при текущем поведении измерения я не смогу точно вычислять "десятые доли" скорости ветра..

мне интересно - что может влиять на эту точность? шунт? номинал вроде нет, разве что его "качество".

или может еще какието-то настройки модуля INA219? или пересчитать на 80мв?

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

и еще странно, что вообще не ровно 4мА - ведь по спекам девайса, при 0м/с (когда ветряк не крутится) должно быть именно 4.

а тут еще и три знака целые заполнены.

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

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

d00m пишет:

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

не понимаю. в чем ваша проблема. Если точность измерения тока +/- 0.001 мА, а коэфф перевода скорости ветра в ток - 0.1 м/с = 0.016 мА, значит ваш метод измерения обеспечивает точность не только в десятых метра. но даже в сотых.

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

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

1. а шунт чем проверяли?
2. Из чего сделан, нужен константант, подогнать, сложить вдвое, намотать
3. на 80 милливольтовом шунте получите максимально возможную температурную стабильность и равенство расчетному значению шунта

из приборов - МС-08 в помощь, но можно что-то и поточнее )))

 

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

Почитай про сглаживание результата измерений. Твои цифры меняются существенно быстрее чем меняется ветер. Да и инерцию вертушки ни кто не отменял. Есть понятие постоянная времени реакции системы. Оцифровывать результат много быстрее постоянной времени даст кучу одинаковых данных в которых будут присутствовать разные шумы. Сглаживание результата оцифровки до времени соизмеримым с постоянной времени системы позволит усреднить результат , что приведёт к снижению шумов. Есть информация сколько секунд разгоняется вертушка? Сравните со скоростью поступления данных. Будет понятно, по скольки точкам можно провести усреднение..

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

b707 пишет:

d00m пишет:

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

не понимаю. в чем ваша проблема. Если точность измерения тока +/- 0.001 мА, а коэфф перевода скорости ветра в ток - 0.1 м/с = 0.016 мА, значит ваш метод измерения обеспечивает точность не только в десятых метра. но даже в сотых.

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

если быть точным, то +/- 0.004884005 мА, значит не более 0.05 м/c, если подскажут, как усреднять кратно 0,008

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Это банально, но какое у вас питание? Насколько оно чистое? И ардуины и устройства

d00m
Offline
Зарегистрирован: 21.02.2013

b707 пишет:

d00m пишет:

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

не понимаю. в чем ваша проблема. Если точность измерения тока +/- 0.001 мА, а коэфф перевода скорости ветра в ток - 0.1 м/с = 0.016 мА, значит ваш метод измерения обеспечивает точность не только в десятых метра. но даже в сотых.

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

полученные измерения тока, которые дают число 4.12[*], где вместо * может быть любая цифра - называются "точностью до сотой"

но мне нужна точность "до тысячной", так как коэффициент перевода значений тока в скорость ветра, кратный 0.016, то есть ровно 16 тысячных, если я все еще помню курс школьной математики.

так что точность скорости ветра сильно зависит от того насколько стабильно измеряется третья цифра после запятой, то есть эта *, которая, как я сообщил - "гуляет" +-(3-4) единицы.

может быть 4.125 или 4.127 или 4.121 даже. а это должен быть 0m/s!

и если взять за 0m/s например 4.125, что бывает чаще всего, то 0.1m/s уже будет 4.125+0.016 == 4.141.

в доке анемометра, на стр. 4 указана формула пересчета измеренного тока в скорость ветра:

http://s.campbellsci.com/documents/ca/manuals/05103l_man.pdf

m/s = (6.250 * mA) - 25

то есть при 4.125: 25.78125 - 25 == 0.7 m/s!

хотя при этом у меня ветряк еще не крутится.

я сейчас делаю грубую поправку: (6.250 * (mA - 0.125)) -25 == 0 m/s - но это в случае когда у меня точно 4.125 - третья цифра после запятой должна быть именно 5.

но у меня она "гуляет" и я получаю разные значения, вплоть до отрицательных)

4.121: (6.250 * (4.121 - 0.125)) - 25 == 24.795 - 25 == - 0.025 m/s

не знаю пока как лучше тут поступить.

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

 

 

 

d00m
Offline
Зарегистрирован: 21.02.2013

ua6em пишет:

1. а шунт чем проверяли?
2. Из чего сделан, нужен константант, подогнать, сложить вдвое, намотать
3. на 80 милливольтовом шунте получите максимально возможную температурную стабильность и равенство расчетному значению шунта

из приборов - МС-08 в помощь, но можно что-то и поточнее )))

шунт - обычный резистор в 10ом 1%

про 80 мв помню - надо сделать тоже. но точность пока это не добавит, я полагаю.

jeka_tm пишет:
Это банально, но какое у вас питание? Насколько оно чистое? И ардуины и устройства

измерительный блок девайса-анемометра должен питаться от  12в до 30в судя по доку.

в реале штатное питание от метеостанции - там стоит аккум на 12в и измерительном блоке метеостанции видимо есть какойто инвертор, так как на анемометр приходит около 25в. 

так что сейчас питается сейчас от бустера XL6009 - 25в выкрутил на нем.

ардуина сейчас питается от БП 5в.
в реальных условиях поставлю тоже конвертер в 5в от 12в для этого.

 

nik182 пишет:

Почитай про сглаживание результата измерений. Твои цифры меняются существенно быстрее чем меняется ветер. Да и инерцию вертушки ни кто не отменял. Есть понятие постоянная времени реакции системы. Оцифровывать результат много быстрее постоянной времени даст кучу одинаковых данных в которых будут присутствовать разные шумы. Сглаживание результата оцифровки до времени соизмеримым с постоянной времени системы позволит усреднить результат , что приведёт к снижению шумов. Есть информация сколько секунд разгоняется вертушка? Сравните со скоростью поступления данных. Будет понятно, по скольки точкам можно провести усреднение..

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

 

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

Попробуй  усреднение задействовать

//ina219.configure(0, 2, 12, 12, 7); // 16S -8.51ms
 // monitor.configure(0, 2, 10, 10, 7); // 4S -2.13ms
 // monitor.configure(0, 2, 11, 11, 7); // 8S -4.26ms
 // monitor.configure(0, 2, 12, 12, 7); // 16S -8.51ms
 // monitor.configure(0, 2, 13, 13, 7); // 32S -17.02ms
 // monitor.configure(0, 2, 14, 14, 7); // 64S -34.05ms
 // monitor.configure(0, 2, 15, 15, 7);  // 128S - 68.10ms
 // monitor.configure(0, 2, 8, 8, 7);
                           // range, gain, bus_adc, shunt_adc, mode
                           // range = 1 (0-32V bus voltage range)
                           // gain = 3 (1/8 gain - 320mV range)
                           // bus adc = 3 (12-bit, single sample, 532uS conversion time)
                           // shunt adc = 3 (12-bit, single sample, 532uS conversion time)
                           // mode = 7 (continuous conversion

 

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

d00m - вы похоже никогда метрологию и статистическую обработку экспериментальных данных не проходили. Найдите любую институтскую методичку, ознакомтесь. Это проходят в любом техническом ВУЗе на первом-втором курсе.

А пока все, что вы пишете про пересчет тока в скорость ветра и главное, про получаемую точность - не имеет никакого отношения к реальности.

d00m
Offline
Зарегистрирован: 21.02.2013

b707 пишет:

d00m - вы похоже никогда метрологию и статистическую обработку экспериментальных данных не проходили. Найдите любую институтскую методичку, ознакомтесь. Это проходят в любом техническом ВУЗе на первом-втором курсе.

А пока все, что вы пишете про пересчет тока в скорость ветра и главное, про получаемую точность - не имеет никакого отношения к реальности.

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

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

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

d00m пишет:
...

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

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

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

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

d00m пишет:

и все таки полагаю - использовать любой мат аппарат на данных, которые выдает неточный датчик - пока нецелесообразно

простите, но вы опять пишете чушь. У любого датчика есть погрешность, абсолютно "точных датчиков"  - В ПРИРОДЕ НЕ СУЩЕСТВУЕТ. Поэтому использовать математический аппарат имеет смысл всегда.

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

 

 

d00m
Offline
Зарегистрирован: 21.02.2013

nik182 пишет:

d00m пишет:
...

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

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

именно. вот эти аспекты мне и НЕИЗВЕСТНЫ. я проверяю все, что могу, чтобы узнать эти данные.

 

b707 пишет:

d00m пишет:

и все таки полагаю - использовать любой мат аппарат на данных, которые выдает неточный датчик - пока нецелесообразно

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

именно это меня и беспокоит больше всего. должно быть 4, а на выходе по факту - больше.

именно это я и хочу понять почему так и исправить, если получится аппаратными методами.
и это задача НЕ для модификатора в коде.

 

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

d00m пишет:

именно это меня и беспокоит больше всего. должно быть 4, а на выходе по факту - больше.

именно это я и хочу понять почему так и исправить, если получится аппаратными методами.
и это задача НЕ для модификатора в коде.

опять неправы. Если это систематическая ошибка (то есть при нуле датчик стабильно выдает 4.125) - то такие ошибки как раз проще (И ПРАВИЛЬНЕЕ!) корректировать "модификатором в коде", а не припаиванием дополнительных элементов на плату.

d00m
Offline
Зарегистрирован: 21.02.2013

b707 пишет:

d00m пишет:

именно это меня и беспокоит больше всего. должно быть 4, а на выходе по факту - больше.

именно это я и хочу понять почему так и исправить, если получится аппаратными методами.
и это задача НЕ для модификатора в коде.

опять неправы. Если это систематическая ошибка (то есть при нуле датчик стабильно выдает 4.125) - то такие ошибки как раз проще (И ПРАВИЛЬНЕЕ!) корректировать "модификатором в коде", а не припаиванием дополнительных элементов на плату.

Если. ЕСЛИ. то да - нужен модификатор.

но пока я в этом не уверен. сейчас вот выдает 4.105-107. отчего это меняется - непонятно.

если бы эти 0.125 были стабильны - я бы и успокоился. но увы, реальный мир приносит сюрпризы..

sadman41
Offline
Зарегистрирован: 19.10.2016

Просто интересно - контрольным прибором измеряли эти "ровно 4mA" или просто ожидаете их там увидеть?

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

d00m пишет:

если бы эти 0.125 были стабильны - я бы и успокоился. но увы, реальный мир приносит сюрпризы..

вы точно в матвузе учились? :)

От всех ваших сообщений у меня такое чувство, что вы уверены. что если измерить расстояние от Москвы до Питера школьной линейкой - результат получится с точностью до миллиметра, ведь на линейке миллиметровые деления!!!! :)))

d00m
Offline
Зарегистрирован: 21.02.2013

sadman41 пишет:

Просто интересно - контрольным прибором измеряли эти "ровно 4mA" или просто ожидаете их там увидеть?

да, проверял - мультиметр показывает 3.9мА в состоянии покоя (ветряк не крутится)

так и дока на него пишет.. 4 это 0 м/c

 

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

d00m пишет:

да, проверял - мультиметр показывает 3.9мА в состоянии покоя (ветряк не крутится)

:)))))))))

Просто для понимания ситуации - вам сколько лет?

bwn
Offline
Зарегистрирован: 25.08.2014

Тут Жека заглядывал и поднимал отшень хороший вопрос. Вменяемого ответа на него не поступило, дальше, можно лбом стену прошибать. ИМХО.

sadman41
Offline
Зарегистрирован: 19.10.2016

d00m пишет:

sadman41 пишет:

Просто интересно - контрольным прибором измеряли эти "ровно 4mA" или просто ожидаете их там увидеть?

да, проверял - мультиметр показывает 3.9мА в состоянии покоя (ветряк не крутится)

так и дока на него пишет.. 4 это 0 м/c

Ну, то есть что-то там из провода лезет в +/- 0.1mA, но вы хотите получить точность в 0.016mA? 

Понимаете... пока у вас нет прибора, способного дать измерения с точностью хотя бы в 0.01mA - вы никогда не можете быть уверены в результате настроек своего INA, потому что он показывает, в принципе, не хуже мультиметра.

 

 

d00m
Offline
Зарегистрирован: 21.02.2013

sadman41 пишет:

d00m пишет:

sadman41 пишет:

Просто интересно - контрольным прибором измеряли эти "ровно 4mA" или просто ожидаете их там увидеть?

да, проверял - мультиметр показывает 3.9мА в состоянии покоя (ветряк не крутится)

так и дока на него пишет.. 4 это 0 м/c

Ну, то есть что-то там из провода лезет в +/- 0.1mA, но вы хотите получить точность в 0.016mA? 

Понимаете... пока у вас нет прибора, способного дать измерения с точностью хотя бы в 0.01mA - вы никогда не можете быть уверены в результате настроек своего INA, потому что он показывает, в принципе, не хуже мультиметра.

 

да, там в схеме штатного блока измерения (который НЕ БУДЕТ использоваться в моем случае) много разных компонентов, которые, возможно, обеспечивают в том числе и компенсацию сопротивления кабеля от самого анемометра - там метров 6 провода AWG 22 вроде. 

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

 

ps - мне 40 лет и на вопрос "Жеки" я тогда ответил как смог.

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

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

Поэтому всё равно какая точность конечного результата (не погрешность) ,ecли его можно его приблизить к кривой образцового датчика по формуле ах+b c помощью процессорной обработки. 

d00m
Offline
Зарегистрирован: 21.02.2013

nik182 пишет:

Поэтому всё равно какая точность конечного результата (не погрешность) ,ecли его можно его приблизить к кривой образцового датчика по формуле ах+b c помощью процессорной обработки. 

я не спорю с этим.

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

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

как минимум перевести на шунт под 80 милливольт, у вас мост хоть есть?

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

ua6em пишет:

как минимум перевести на шунт под 80 милливольт, у вас мост хоть есть?

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

d00m
Offline
Зарегистрирован: 21.02.2013

ua6em пишет:

как минимум перевести на шунт под 80 милливольт, у вас мост хоть есть?

 

U_шунт 0,04 0,08 0,16 0,32
R_шунт 2 4 8 16
I_max 0,02 0,02 0,02 0,02
         

то есть, учитывая мою шкалу до 20мА - установить резистор на 4ом, так?

и соответственно в коде поменять параметры в configure и calibrate функциях

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

d00m пишет:

ua6em пишет:

как минимум перевести на шунт под 80 милливольт, у вас мост хоть есть?

 

U_шунт 0,04 0,08 0,16 0,32
R_шунт 2 4 8 16
I_max 0,02 0,02 0,02 0,02
         

то есть, учитывая мою шкалу до 20мА - установить резистор на 4ом, так?

и соответственно в коде поменять параметры в configure и calibrate функциях

если есть одноомные, попробуйте собрать на них и посмотрите, лично  мне шунт ни 2 ома ни в 4 ома, а уж тем более 8 и 16 совершенно не нравятся...интуитивно...но вариантов то нет...с другой стороны, чем большее сопротивление шунта, тем меньшую погрешность вносит кабель...
А 80 милливольт - по даташиту кривая тогда в нулях идёт

d00m
Offline
Зарегистрирован: 21.02.2013

ua6em пишет:

если есть одноомные, попробуйте собрать на них и посмотрите

не совсем понял. взять 1 резистор на 1ом (такие у меня есть)?

тогда как быть со шкалой? для 80мв и 1ом макс то будет == 0,08 == 80мА, что сильно больше моих измерений..

или это не проблема?

или все таки - взять 4шт и соединить последовательно?

какая разница тогда с 1шт в 4ом?

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

взять 4 штуки, а математики полно готовой, к примеру эта

как успехи?