PDA

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


Serg-Zmuh
02.06.2016, 16:34
Ребят нужен совет
Вот думаю как замутить измерение-мониторинг бортовой сети
автомобиля с выводом показаний на планшет
приобрел вот такой INA219 датчик (http://ru.aliexpress.com/item/Free-shipping-Zero-drift-CJMCU-219-INA219-I2C-interface-Bi-directional-current-power-monitoring-sensor-module/32375566240.html)
по совету из форума вот тут (http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-197793) есть обзор
реально ли с помощь него мониторить напряжение и ток
бортсети ....?
с напряжением то вроде все понятно ,но как технически пропустить ток
через этот датчик ,реально нет ?

~aviator~
02.06.2016, 17:03
В Хондах например есть eld sensor который висит на "ГЛАНОМ плюсе"
он измеряет нагрузку бортсети
http://www.civicforums.com/forums/attachment.php?attachmentid=31309&stc=1

Alekssandr
02.06.2016, 17:07
Без шунта ампер так на 200 никак не сделать, а на твоем устройстве установлен мааааленьки шунтик))

вот по изучай http://rel.by/docs/shunt/163.html

oleg707
02.06.2016, 18:18
ток тебе померять нереально, с низкой точностью только на мощном шунте , напряжение легко померяешь процем через делитель.

awtoap
02.06.2016, 18:44
Все реально померять, но шунт нужен явно по мощней.

YAM1966
02.06.2016, 20:18
С Вашим INA219 (http://www.ti.com/lit/ds/symlink/ina219.pdf) все получится.
Просто берем шунт на 200А (http://ru.aliexpress.com/item/New-200A-75mV-DC-Analog-Current-Meter-Divider-Shunt-Resistor-Current-Shunt-for-Amp-Meter-Ammeter/32605130268.html). PGA выставляем на PGA = /2, получаем +/- 80mV, что очень даже хорошо...
При 12 битном измерении шаг выходит около 50mA...
Удобно сразу в цифре получить и ток и напряжение...

basurman
02.06.2016, 22:07
А квадратная шина это критично? Можно и проще сделать на ACS758-200B. Выход аналоговый.

YAM1966
02.06.2016, 22:30
А квадратная шина это критично? Можно и проще сделать на ACS758-200B. Выход аналоговый.

Как же это проще. Если это только ток и только в аналоге... А с ina219 получаем и ток и напряжение, причем 12 битное. А в arduino только 10 разрядный АЦП.

Serg-Zmuh
03.06.2016, 05:52
С Вашим INA219 (http://www.ti.com/lit/ds/symlink/ina219.pdf) все получится.
Просто берем шунт на 200А (http://ru.aliexpress.com/item/New-200A-75mV-DC-Analog-Current-Meter-Divider-Shunt-Resistor-Current-Shunt-for-Amp-Meter-Ammeter/32605130268.html). PGA выставляем на PGA = /2, получаем +/- 80mV, что очень даже хорошо...
При 12 битном измерении шаг выходит около 50mA...
Удобно сразу в цифре получить и ток и напряжение...

тэкс.... уже кое-что :yes2:
шунт по ссылке заказал.... ждемс
спс....за инфу

В Хондах например есть eld sensor который висит на "ГЛАНОМ плюсе"
он измеряет нагрузку бортсети
http://www.civicforums.com/forums/attachment.php?attachmentid=31309&stc=1

тоже вариант пройтись по местным разборкам ,найти хонду оттуда вытащить :)

Serg-Zmuh
03.06.2016, 13:58
А разрывать шунтом только по минусу надо ,или можно по плюсу ?
а то у мня два акума в параллель ....и мне технологически удобнее плюс в разрыв сделать

YAM1966
03.06.2016, 14:01
А разрывать шунтом только по минусу надо ,или можно по плюсу ?
а то у мня два акума в параллель ....и мне технически удобнее плюс в разрыв сделать

Конечно по плюсу... Иначе как напряжение то мерять по минусу? :acute:

Serg-Zmuh
03.06.2016, 14:15
Да просто смотрел на Али схемы ,а там все везде от минуса разрывы ...
странно,думаю переспрошу

вот (http://www.ebay.com/itm/DC-0-300V-200A-Voltage-Current-Meter-Digital-LED-Volt-Ammeter-Shunt-12v-24v/331591951909?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%2 6asc%3D36861%26meid%3D82fbe1ecf5194a8eb9bb8d9efa26 b28d%26pid%3D100005%26rk%3D4%26rkt%3D6%26sd%3D3510 31481619) к примеру

p.s. по сути то разницы вроде то нет ,но мене удобнее по плюсу

Vlad-bodryi
03.06.2016, 14:28
а еси такой ACS758ECB-200B-PSS-T?!

YAM1966
03.06.2016, 14:29
Да просто смотрел на Али схемы ,а там все везде от минуса разрывы ...
странно,думаю переспрошу
.....

Надо смотреть не на али, а в даташит (http://www.ti.com/lit/ds/symlink/ina219.pdf), ссылку на который я привел.
Страница 10 рисунок 13 :wink2:

YAM1966
03.06.2016, 14:32
а еси такой ACS758ECB-200B-PSS-T?!
От настырный! :acute:
Читаем тут (http://pccar.ru/showpost.php?p=362076&postcount=8).

vasilij_c
04.06.2016, 01:47
..
Просто берем шунт на 200А (http://ru.aliexpress.com/item/New-200A-75mV-DC-Analog-Current-Meter-Divider-Shunt-Resistor-Current-Shunt-for-Amp-Meter-Ammeter/32605130268.html)....

ни разу не просто. стартер у него примерно 2.2кВт - средний ток порядка 180А. пусковой ток ... умножаете в разы.
это не здоровая идея- резать штатную силовую проводку. если ничего не сгорит, то обязательно отгниет (и как на зло зимой).
я понимаю напряжение АКБ смотреть, но ток нах..?

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

oleg707
04.06.2016, 02:01
ни разу не просто. стартер у него примерно 2.2кВт - средний ток порядка 180А. пусковой ток ... умножаете в разы.
это не здоровая идея- резать штатную силовую проводку. если ничего не сгорит, то обязательно отгниет (и как на зло зимой).
я понимаю напряжение АКБ смотреть, но ток нах..?

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

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

Еще момент - ток на стартер можно и не мерять, у многих авто он вообще на отдельном фьюсе висит. А ток потребления остальной машины нормально впишется в 200А. И даже в 100. Вот в 50А уже не факт, с кондёром, дальним, противотуманками и дворниками, с обогревом. В ливень.

Vlad-bodryi
04.06.2016, 07:14
От настырный! :acute:
Читаем тут (http://pccar.ru/showpost.php?p=362076&postcount=8).

да, чёт профукал...:dntknw:

Vlad-bodryi
04.06.2016, 07:23
ни разу не просто. стартер у него примерно 2.2кВт - средний ток порядка 180А. пусковой ток ... умножаете в разы.
это не здоровая идея- резать штатную силовую проводку. если ничего не сгорит, то обязательно отгниет (и как на зло зимой).
я понимаю напряжение АКБ смотреть, но ток нах..?

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

зачем резать?! всё ставится в разрыв болтовых соединений клемм, коих хватает.

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

YAM1966
04.06.2016, 10:18
ни разу не просто. стартер у него примерно 2.2кВт - средний ток порядка 180А. пусковой ток ... умножаете в разы.
это не здоровая идея- резать штатную силовую проводку. если ничего не сгорит, то обязательно отгниет (и как на зло зимой).
я понимаю напряжение АКБ смотреть, но ток нах..?

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

И что, берем даже 500А, падение на шунте будет менее чем 0.2 Вольта....
По измерению тока в минусе конечно можно, но смотрим на платку (http://www.ti.com/lit/ds/symlink/ina219.pdf) топикстартера, а не в общую теорию.

Я поступил проще, купил такие (http://www.aliexpress.com/snapshot/6401078262.html) клещи....
43954
Можно измерять бесконтактно DC и AC токи до 400А...

(vS)
04.06.2016, 10:51
а на фига ты их купил? ))

YAM1966
04.06.2016, 11:00
а на фига ты их купил? ))
От тебя как всегда вопрос из области фантастики... :pleasantry:

vasilij_c
04.06.2016, 13:27
ток покоя смотреть.. ..баланс ...

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


.. И даже в 100. Вот в 50А уже не факт,...
наверняка дизель, это каждая свеча накала по 5-10А, умножаем на 6.

Tommy_Gun
06.06.2016, 07:49
А разрывать шунтом только по минусу надо ,или можно по плюсу ?
а то у мня два акума в параллель ....и мне технологически удобнее плюс в разрыв сделать

Вот (http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-118814)

Rover
06.06.2016, 11:29
Резать проводку для измерения тока НЕНАДО!!!!
Два способа:
1. Наматываем на силовой провод от АКБ до главного преда 20-30 витков провода от UTP-5. Это датчик тока, что на него наведётся усиливаем ОУ, калибруем - и на индикатор (вольтметр).
2. В качестве шунта используем существующую проводку+главный пред. Одну точку берём на клемме АКБ, другую на клемме ПОСЛЕ гл. преда. Измеряем милиОм метром сопротивление этого шунта, под это дело подбираем амперметр.
В случае сгорания гл. преда (редко, но бывает) нужно предусмотреть защиту Аперметра по входу от 12В. Одного резистора на 200 Ом и двух встречнопараллельно включенных диодов будет достаточно.

Vladget
06.06.2016, 11:57
Где то встречал инфу о том что замеряли ток измеряя падение напряжения на самой клемме и другом конце провода (его сопротивление можно замерить), вот только не помню провод который на массу или который с плюса ? вроде больше склоняюсь к плюсовому, т.е. в качестве шунта использовали этот кусок провода

YAM1966
06.06.2016, 12:41
Резать проводку для измерения тока НЕНАДО!!!!
Два способа:
......
первый работать не будет, это же постоянный ток... вот если бы там стоял датчик холла в качестве измерителя тогда да... а так - это просто трансформатор, и он работает только при изменении поля вокруг проводника.

Vlad-bodryi
06.06.2016, 22:01
а по наляпали-то...

шунт(или полностью с датчиком холла) нужен полюбас...

Vladget
07.06.2016, 12:40
исходя из другого форума ТС уже купил шунт

Serg-Zmuh
08.06.2016, 10:51
да шунт я заказал :)
где разрыв сделать место есть ,там у мня как раз можно так подключить что стартер
оставить без разрыва можно ...., в общем жду шунт ;)

Denkos
08.06.2016, 20:04
там у мня
Что за хрень с русским, или фишка такая.:blink2:

Serg-Zmuh
09.06.2016, 04:07
Что за хрень с русским, или фишка такая.:blink2:

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

так норм ? :huh2:

YAM1966
09.06.2016, 09:40
перевожу:
там у меня (под капотом)как раз можно так подключить -что стартер
оставить без разрыва можно ...., в общем жду шунт

так норм ? :huh2:

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

Serg-Zmuh
22.07.2016, 13:32
вот наконец-то дошли руки до внедрения шунта в машину :)
пытаюсь залить этот скетч в УНО ,и что-то не идет .....

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <ina219.h>
#include <SPI.h>
INA219 monitor;
char incomingByte;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
monitor.begin(69); //i2c address
monitor.configure(0, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
monitor.calibrate(0.099, 0.1584, 16, 2);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
for(int i = 0; i < 100; i++)
{
Serial.println("******************");
Serial.print("raw shunt voltage: ");
Serial.println(monitor.shuntVoltageRaw());
Serial.print("raw bus voltage: ");
Serial.println(monitor.busVoltageRaw());
Serial.println("--");
Serial.print("shunt voltage: ");
Serial.print(monitor.shuntVoltage(), 4);
Serial.println(" mV");
Serial.print("shunt current: ");
Serial.print(monitor.shuntCurrent() * 1000, 4);
Serial.println(" mA");
Serial.print("bus voltage: ");
Serial.print(monitor.busVoltage(), 4);
Serial.println(" V");
Serial.print("bus power: ");
Serial.print(monitor.busPower() * 1000, 4);
Serial.println(" mW");
Serial.println(" ");
Serial.println(" ");
i=0;
}
value = analogRead(analogInput);
vout = (value*5.0)/1024.0;
vin = vout/(R2/(R1+R2));
if(vin<0.09){
vin = 0.0;
}
tempa.requestTemperatures();
delay(700);
Serial.print("<InDoor:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print("<OutDoor:");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print("<Engine:");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(700);
Serial.print("<Voltage:");
Serial.print(vin,2);
Serial.println(">");
}

ошибки валятся вот на эту строку ругается:
monitor.begin(69); //i2c address
понимаю что это адрес ...почему 69 нет :blush:
в тоже время тестовый скетч иновский работает
но там этот параметр другой monitor.begin();
убрал параметр (69)
начало ругаться на конфигурирование
ладно закоментировал их
вроде скомпилилось ,залил
а в мониторе теперь только выводит данные с INA а с датчиков нету показаний

что не так ?
вот скетч ,который я правил ...
посмотрите пожалуйста
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <INA219.h>
#include <SPI.h>
INA219 monitor;
char incomingByte;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
monitor.begin(); //i2c address
// monitor.configure(1, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
// monitor.calibrate(0.099, 0.1584, 0, 0);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
for(int i = 0; i < 100; i++)
{
Serial.println("******************");

Serial.print("raw shunt voltage: ");
Serial.println(monitor.shuntVoltageRaw());

Serial.print("raw bus voltage: ");
Serial.println(monitor.busVoltageRaw());

Serial.println("--");
Serial.print("shunt voltage: ");
Serial.print(monitor.shuntVoltage(), 4);
Serial.println(" mV");
Serial.print("shunt current: ");
Serial.print(monitor.shuntCurrent() * 1000, 4);
Serial.println(" mA");
Serial.print("bus voltage: ");
Serial.print(monitor.busVoltage(), 4);
Serial.println(" V");
Serial.print("bus power: ");
Serial.print(monitor.busPower() * 1000, 4);
Serial.println(" mW");
Serial.println(" ");
Serial.println(" ");
i=0;
}
value = analogRead(analogInput);
vout = (value*5.0)/1024.0;
vin = vout/(R2/(R1+R2));
if(vin<0.09){
vin = 0.0;
}
tempa.requestTemperatures();
delay(700);
Serial.print("<InDoor:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print("<OutDoor:");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print("<Engine:");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(700);
Serial.print("<Voltage:");
Serial.print(vin,2);
Serial.println(">");
}


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

armlive
22.07.2016, 13:57
Во первых у тебя библиотека лежит неизвестно знает где, теперь смотри название в библиотеке INA219, а утебя ina219.
у меня все сконвертировалось без проблем. библиотека находиться по пути: Documents\Arduino\libraries\INA219


#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <INA219.h>
#include <SPI.h>
INA219 monitor;
char incomingByte;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
monitor.begin(69); //i2c addres
monitor.configure(0, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
monitor.calibrate(0.099, 0.1584, 16, 2);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
for(int i = 0; i < 100; i++)
{
Serial.println("******************");
Serial.print("raw shunt voltage: ");
Serial.println(monitor.shuntVoltageRaw());
Serial.print("raw bus voltage: ");
Serial.println(monitor.busVoltageRaw());
Serial.println("--");
Serial.print("shunt voltage: ");
Serial.print(monitor.shuntVoltage(), 4);
Serial.println(" mV");
Serial.print("shunt current: ");
Serial.print(monitor.shuntCurrent() * 1000, 4);
Serial.println(" mA");
Serial.print("bus voltage: ");
Serial.print(monitor.busVoltage(), 4);
Serial.println(" V");
Serial.print("bus power: ");
Serial.print(monitor.busPower() * 1000, 4);
Serial.println(" mW");
Serial.println(" ");
Serial.println(" ");
i=0;
}
value = analogRead(analogInput);
vout = (value*5.0)/1024.0;
vin = vout/(R2/(R1+R2));
if(vin<0.09){
vin = 0.0;
}
tempa.requestTemperatures();
delay(700);
Serial.print("<InDoor:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print("<OutDoor:");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print("<Engine:");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(700);
Serial.print("<Voltage:");
Serial.print(vin,2);
Serial.println(">");
}

Сконвертироваться должно и без ардуино)

Serg-Zmuh
22.07.2016, 18:27
да библиотеку то оно вроде видит
на счет путей х.з. ,у мня нетбук на win10 ,может в этом есть какая-нибудь разница...
иначе бы ругалось на строку #include <INA219.h>
я наверно что-то натыкал ,шарю еще не очень в ардуино

вопрос - и всетаки почему тут - monitor.begin(69); //i2c address ,именно 69
просто понять хочу
и еще разницы ведь нету куда заливать ,в UNO или Leonardo?

но за подсказку спасибо ,завтра с чистого листа сделаю

armlive
22.07.2016, 18:39
Это адрес Ina. Разница нет

Serg-Zmuh
23.07.2016, 07:40
в общем не получается у меня ни фига :blush:
дело не в библиотеке уже точно
ругается на стороку monitor.begin(69); //i2c addres
значит получается адрес не правильный.... ,а какой правильный ?как узнать?
вот лог
как и писал выше если убрать (69) то и параметры настроек тоже надо убирать , но тогда криво работает а сериал монитор выводит
только данные с INA
пробовал в ХР ,в виртуалке ,тоже самое ...


через 4 часа:
вот сижу разбираюсь.....
похоже что сам модуль ina129 у меня бракованный попался
вот что монитор выдает:
Bus Voltage: 0.784 V
Shunt Voltage: 14.930 mV
Bat Voltage: 0.803 V
Current: 0.189 A
Power: 0.070 W
Ah: 0.002 Ah

а подается напряжение от аккума автомобильного -нагрузка релюха на 12вольт,
на акуме мультиметр паказывает 12.2 вольта -а тут 14 выдает....
игрался настройками но как то безтолку ,они ведь только на показания тока влияют.... ,я прав ?
шунт встроенный R100
тестовый скетч вот такой пробовал:

/**********************************************
* INA219 library example
* 9 January 2016 by Flavius Bindea
*
* this code is public domain.
**********************************************/


#include <Wire.h>
#include <INA219.h>

#define SHUNT_MAX_V 0.01 /* Rated max for our shunt is 75mv for 50 A current:
we will mesure only up to 20A so max is about 75mV*20/50 lets put some more*/
#define BUS_MAX_V 16.0 /* with 12v lead acid battery this should be enough*/
#define MAX_CURRENT 20 /* In our case this is enaugh even shunt is capable to 50 A*/
#define SHUNT_R 0.1 /* Shunt resistor in ohm */

INA219 monitor;

void setup()
{
Serial.begin(9600);
monitor.begin();
// setting up our configuration
// default values are RANGE_32V, GAIN_8_320MV, ADC_12BIT, ADC_12BIT, CONT_SH_BUS
monitor.configure(INA219::RANGE_16V, INA219::GAIN_2_80MV, INA219::ADC_64SAMP, INA219::ADC_64SAMP, INA219::CONT_SH_BUS);

// calibrate with our values
monitor.calibrate(SHUNT_R, SHUNT_MAX_V, BUS_MAX_V, MAX_CURRENT);
}

void loop()
{
Serial.println("******************");

Serial.print("raw shunt voltage: ");
Serial.println(monitor.shuntVoltageRaw());

Serial.print("raw bus voltage: ");
Serial.println(monitor.busVoltageRaw());

Serial.println("--");

Serial.print("shunt voltage: ");
Serial.print(monitor.shuntVoltage() * 1000, 4);
Serial.println(" mV");

Serial.print("shunt current: ");
Serial.print(monitor.shuntCurrent() * 1000, 4);
Serial.println(" mA");

Serial.print("bus voltage: ");
Serial.print(monitor.busVoltage(), 4);
Serial.println(" V");

Serial.print("bus power: ");
Serial.print(monitor.busPower() * 1000, 4);
Serial.println(" mW");

Serial.println(" ");
Serial.println(" ");

delay(2000);
}

armlive
23.07.2016, 11:24
Я заметил что у тебя библиотека другая. У меня все залилось опять без проблем.
Адрес для заливки не важен, он не знает же правильный он или нет.
Библиотеку используй эту, старую удали
https://github.com/johngineer/ArduinoINA219, а мне скинь ссылку на твою
Из примера же видно, что она настраивается даже по другому
В твоем примере
#define SHUNT_MAX_V 0.01 /* Rated max for our shunt is 75mv for 50 A current:
we will mesure only up to 20A so max is about 75mV*20/50 lets put some more*/
#define BUS_MAX_V 16.0 /* with 12v lead acid battery this should be enough*/
#define MAX_CURRENT 20 /* In our case this is enaugh even shunt is capable to 50 A*/
#define SHUNT_R 0.1 /* Shunt resistor in ohm */


А в твоем скетче

monitor.begin(69); //i2c addres
monitor.configure(0, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
monitor.calibrate(0.099, 0.1584, 16, 2);

Serg-Zmuh
23.07.2016, 18:05
я пробовал две библиотеки ,которые выдало по поиску сама софтина ардуиновская версия 1.6.8 ,
это: Adafruit_INA219 и ArduinoINA219 ,a c гитхаба не пробовал,так как думал что там старее версия....
ссылки щаз не могу дать дома нет софтины этой :(
так вот тот пример на котором хоть как-то завелось ,это скетчи примеров от бибилиотеки ArduinoINA219 ,вот:
#define SHUNT_MAX_V 0.01 /* Rated max for our shunt is 75mv for 50 A current:
we will mesure only up to 20A so max is about 75mV*20/50 lets put some more*/
#define BUS_MAX_V 16.0 /* with 12v lead acid battery this should be enough*/
#define MAX_CURRENT 20 /* In our case this is enaugh even shunt is capable to 50 A*/
#define SHUNT_R 0.1 /* Shunt resistor in ohm */
я просто в поиске указывал ina219 и выдало всего две библиотеки.

блин ну ни где в примерах нет параметра monitor.begin(69); //i2c addres
у меня то на это ругается.....что-то я ни фига понять немогу где костыль-то

я конечно попробую подсунуть библиотеку с гитхаба ,ну думаю результат будет тот же :sad2:

Serg-Zmuh
24.07.2016, 05:22
armlive

Разобрался !
вот я олень :zipped:
общий минус то я не подвел к ардуино :secret: электрик ёптить....
поэтому и такие показания были "левые",
и да ,ты был прав ,подставил ту библиотеку
все скомпилилось и залилось норм

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

ПыСЫ и всетаки строка monitor.begin(69); //i2c address не правильная
я изменил на 64 ,после этого стало считывать данные

Serg-Zmuh
24.07.2016, 11:58
появились еще вопросы ,как правильно выставить параметры чтоб более-менее правильно считывало,
вот такой (http://ru.aliexpress.com/item/New-200A-75mV-DC-Analog-Current-Meter-Divider-Shunt-Resistor-Current-Shunt-for-Amp-Meter-Ammeter/32605130268.html?spm=2114.13010608.0.76.sd2YXc) шунт в авто поставил:

monitor.configure(0, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
monitor.calibrate(0.15, 0.075, 16, 50);
//R_шунта, напряж_шунта, макcнапряж, максток

вот с горем пополам переделал скетч который был выше:

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <INA219.h>
INA219 monitor;
char incomingByte;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
monitor.begin(64); //i2c address
monitor.configure(0, 3, 11, 11, 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)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
monitor.calibrate(0.15, 0.075, 16, 50);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){

{
Serial.println("******************");
Serial.print("raw shunt voltage: ");
Serial.println(monitor.shuntVoltageRaw());
Serial.print("raw bus voltage: ");
Serial.println(monitor.busVoltageRaw());
Serial.println("--");
Serial.print("shunt voltage: ");
Serial.print(monitor.shuntVoltage(), 4);
Serial.println(" mV");
Serial.print("shunt current: ");
Serial.print(monitor.shuntCurrent() * 1000, 4);
Serial.println(" mA");

Serial.print("bus power: ");
Serial.print(monitor.busPower() * 1000, 4);
Serial.println(" mW");
Serial.println(" ");
Serial.println(" ");

}
value = analogRead(analogInput);
vout = (value*5.0)/1024.0;
vin = vout/(R2/(R1+R2));
if(vin<0.09){
vin = 0.0;
}
tempa.requestTemperatures();
delay(700);
Serial.print("<InDoor:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print("<OutDoor:");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print("<Engine:");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(700);
Serial.print("<busvoltage:");
Serial.print(monitor.busVoltage(), 4);
Serial.println(">");
Serial.print("<Voltage:");
Serial.print(vin,2);
Serial.println(">");
for(int i = 0; i < 100; i++);

}
пока на планшет выводятся показания 3-х датчиков напряжение борт. сети через делитель и с собственно с INA.
вот так монитор порта выводит:
<InDoor:0>
<OutDoor:0>
<Engine:0>
<busvoltage:-0.0040>
<Voltage:15.79>
******************
raw shunt voltage: -1
raw bus voltage: -1
--
shunt voltage: -0.0000 mV
shunt current: -0.2152 mA
bus power: -4.3042 mW

SerialManager их видит )

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

может кто поправит в нужном направлении ,в скетче я там явно лишнего
много :blush:

и еще вопрос - зачем в изначальном скетче была библиотека
#include <SPI.h> ?
я ее убрал ... может зря...

armlive
24.07.2016, 13:17
По датчикам температуры рекомендую посадить их на одну шину как тут (http://arduino-project.net/podklyuchenie-ds18b20-arduino/)
#include <SPI.h> ?
я ее убрал ... может зря...
Не зря, но она ни чем и не мешала

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

Serg-Zmuh
24.07.2016, 14:29
По датчикам температуры рекомендую посадить их на одну шину как тут (http://arduino-project.net/podklyuchenie-ds18b20-arduino/)
Не зря, но она ни чем и не мешала
Лишнее всегда есть, ну помучаешься какое то время и научишся зато сам.
Ты же электрик, должен знать))!

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

Serg-Zmuh
24.07.2016, 15:04
Я бы рад помочь, да нет у меня ina, да я сам сейчас занят индетефикацией доступа в машину. Хочу чтоб сама открывалась когда подхожу и закрывелась когда отхожу. Но вот с кан шины не получается управлять замком


это же сигналки умеют ,например pandora x-3010 ,режим опознавания метки вроде
или ты свое изобретаешь ? ))

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

oleg707
24.07.2016, 15:36
Свое, у меня сигналки нет, родной ключ и не вижу смыла ставить. С кнопки и так работает и метка это не интересно, а вот интересно когда без кнопки, находишся в радиусе пара метров-открылась, отошел дальше закрылась... Прикольно думаю))

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

armlive
24.07.2016, 16:15
эм, ходишь мимо ( в магазин), а оно щелкает туда-сюда. Ни разу не прикольно. Надо кей-лессго, как в современных авто ( то бишь кнопочка на ручке двери или бесконтактный датчик)
Можно метр сделать, а ходить туда сюда не нужно, да и такое очень редко бывает.
В итоге что то намудрил, что кнпка в салоне вообще перестала реагировать(

Винни_Пух
24.07.2016, 19:15
наблюдаю интересный момент ,пока мотор не запущен все показывает боле-менее правильно,стоит завестись показания тока
уходят в минус и почему-то скачут в больших пределах ,напряжение норм показывает ,что может быть не так ?


INA вычисляет ток измеряя падение напряжения на шунте.
Пока автомобиль не заведен аккумулятор является источником питания, а всё что за шунтом - потребители.
Когда заводишь автомобиль источником питания становится генератор, а аккумулятор - потребителем.
При этом меняется полярность напряжение на шунте.
Нестабильные показания тока скорее всего из-за того что двигатель работает на холостых оборотах, при этом генератор работает чаще всего на пределе, не давая стабильный ток заряда. Попробуй обороты поднять и зафиксировать на отметке выше 1000 оборотов в минуту и посмотри на показания тока, будут ли они скакать в больших пределах.

Serg-Zmuh
25.07.2016, 05:17
вот и я заметил ,уже позже как отписался ,пошел замерять напряжение на заведенной машине - странно как-то ведет себя гена ,как только завел на холостых,
заряда почти что нету
12.4 в покое
12.6 как только завел
через минут 5-10 начинает подниматься до 13.2-13.5
а когда уже поехал 14.1 выдает
это так на гене регулятор видать работает ,гену я в прошлом году тайваньскую(Nakamoto) поставил,на родном диод вылетел ,и как-то не заморачивался, типа же новый ) .
показания тока еще не вывел на планшет ,в скетче сижу туплю второй день (

armlive
25.07.2016, 12:27
вот и я заметил ,уже позже как отписался ,пошел замерять напряжение на заведенной машине - странно как-то ведет себя гена ,как только завел на холостых,
заряда почти что нету
12.4 в покое
12.6 как только завел
через минут 5-10 начинает подниматься до 13.2-13.5
а когда уже поехал 14.1 выдает
это так на гене регулятор видать работает ,гену я в прошлом году тайваньскую(Nakamoto) поставил,на родном диод вылетел ,и как-то не заморачивался, типа же новый ) .
показания тока еще не вывел на планшет ,в скетче сижу туплю второй день (
Что за проблемы у тебя?

Serg-Zmuh
25.07.2016, 13:03
да сегодня перекинул свой родной генератор - а там тоже самое
короче это норма ,я зря запаниковал ))

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

Винни_Пух
25.07.2016, 13:05
12.4 в покое
12.6 как только завел
через минут 5-10 начинает подниматься до 13.2-13.5
а когда уже поехал 14.1 выдает
это так на гене регулятор видать работает ,гену я в прошлом году тайваньскую(Nakamoto) поставил,на родном диод вылетел ,и как-то не заморачивался, типа же новый ) .
(
Ещё когда была Хендэ Элантра купил зарядку в прикуриватель с вольтметром и ездил наблюдал за напряжением в бортсети.
Напряжение тоже постоянно плавает.
На холостых - 12,6-13,0
При движении - 12,6-14,0
Бывают не продолжительные скачки до 14,5
Сейчас на Киа Оптима абсолютно такая же история.
Даже при движении по трассе, когда стабильные обороты двигателя, например 1800, напряжение все равно плавает в диапазоне 12,6-13,8.
Наверное есть какая-то логика в работе РР.
И ещё заметил что зимой напряжение в борт сети почти всегда немного выше чем летом.

armlive
25.07.2016, 13:28
да сегодня перекинул свой родной генератор - а там тоже самое
короче это норма ,я зря запаниковал ))

а проблема у меня одна - не могу настроить скетч ,чтоб на планшете видеть показания напряжения и тока,
напряжение то норм кажет
а вот с показаниями тока хрень какая-то
дохрена завышает ....
реально 1 ампер потребление а INA 15.230 показывает....
На всех твоих библиотеках так или конкретно на последней.
Примерами с каждой библиотеки смотрел разницу?

Serg-Zmuh
25.07.2016, 14:00
На всех твоих библиотеках так или конкретно на последней.
Примерами с каждой библиотеки смотрел разницу?

у тех библиотек нету возможности подстройки
я конечно попробую и их .... ,что-то, если честно ,я про них и забыл :blush:
я еще попутно парней из этого форума (http://arduino.ru/forum/apparatnye-voprosy/mini-obzor-monitora-toka-ina219-s-vykhodom-i2c#comment-208849) терроризирую )))
помоему они меня скоро пошлют )))

armlive
25.07.2016, 14:29
По идее эта строчка должна выглядеть так monitor.calibrate(0.065, 0.075, 16, 200);
monitor.configure(1, 1, 15, 15, 7);
Это при 13 в, погрешность будет всегда, но не значительная.
Но все же попробуй те библиотеки

Serg-Zmuh
25.07.2016, 15:00
По идее эта строчка должна выглядеть так monitor.calibrate(0.065, 0.075, 16, 200);
monitor.configure(1, 1, 15, 15, 7);
Это при 13 в, погрешность будет всегда, но не значительная.
Но все же попробуй те библиотеки

да там выяснилось ,что ина должна быть рядом с шунтом :blush:
а у меня от шунта до нее почти 3 метра провода в салон идут ....
я про это не знал :sad2:
поэтому наверно и такие показания у меня ....

Serg-Zmuh
27.07.2016, 13:36
в общем переделал я все по феншую ,INA219 поставил рядом с шунтом под капотом,
но показывает один хрен завышенный ток ....
методом подбора параметров monitor.calibrate(0.065, 0.075, 16, 200);
подобрал (0.0002763, 0.075, 16, 200)
более менее что-то показывает ,если повышать потребление ,больше врет
пробовал всякие библиотеки какие нашел .... с ними эти калибровочные
цифры уже по другому врут ,т.е. там заново калибровать надо ....
х.з. че делать ,я целый день убил на этот пребор (
зато хоть помехи ушли , а то раньше как только ксенон включал то ток по нулям показывал )

xxoma
30.07.2016, 02:17
Я делал ваттметр для электровелика на ltc4151. В моем случае шунт на 50А. Показывает точно при таком шунте от десятков миллиампер. Минус в том что ток измеряет в одну сторону только. Думаю для авто тоже пойдет. Если кому интересно вот либа для ардуино https://github.com/kerrydwong/LTC4151