PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Питание (http://pccar.ru/forumdisplay.php?f=173)
-   -   Хочу замутить измерение тока и напряжения авто (http://pccar.ru/showthread.php?t=24217)

Serg-Zmuh 02.06.2016 16:34

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

~aviator~ 02.06.2016 17:03

В Хондах например есть eld sensor который висит на "ГЛАНОМ плюсе"
он измеряет нагрузку бортсети
http://www.civicforums.com/forums/at...id=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 все получится.
Просто берем шунт на 200А. PGA выставляем на PGA = /2, получаем +/- 80mV, что очень даже хорошо...
При 12 битном измерении шаг выходит около 50mA...
Удобно сразу в цифре получить и ток и напряжение...

basurman 02.06.2016 22:07

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

YAM1966 02.06.2016 22:30

Цитата:

Сообщение от basurman (Сообщение 362071)
А квадратная шина это критично? Можно и проще сделать на ACS758-200B. Выход аналоговый.

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

Serg-Zmuh 03.06.2016 05:52

Цитата:

Сообщение от YAM1966 (Сообщение 362064)
С Вашим INA219 все получится.
Просто берем шунт на 200А. PGA выставляем на PGA = /2, получаем +/- 80mV, что очень даже хорошо...
При 12 битном измерении шаг выходит около 50mA...
Удобно сразу в цифре получить и ток и напряжение...

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

Цитата:

Сообщение от ~aviator~ (Сообщение 362044)
В Хондах например есть eld sensor который висит на "ГЛАНОМ плюсе"
он измеряет нагрузку бортсети
http://www.civicforums.com/forums/at...id=31309&stc=1

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

Serg-Zmuh 03.06.2016 13:58

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

YAM1966 03.06.2016 14:01

Цитата:

Сообщение от Serg-Zmuh (Сообщение 362128)
А разрывать шунтом только по минусу надо ,или можно по плюсу ?
а то у мня два акума в параллель ....и мне технически удобнее плюс в разрыв сделать

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

Serg-Zmuh 03.06.2016 14:15

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

вот к примеру

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

Vlad-bodryi 03.06.2016 14:28

а еси такой ACS758ECB-200B-PSS-T?!

YAM1966 03.06.2016 14:29

Цитата:

Сообщение от Serg-Zmuh (Сообщение 362135)
Да просто смотрел на Али схемы ,а там все везде от минуса разрывы ...
странно,думаю переспрошу
.....

Надо смотреть не на али, а в даташит, ссылку на который я привел.
Страница 10 рисунок 13 :wink2:

YAM1966 03.06.2016 14:32

Цитата:

Сообщение от Vlad-bodryi (Сообщение 362139)
а еси такой ACS758ECB-200B-PSS-T?!

От настырный! :acute:
Читаем тут.

vasilij_c 04.06.2016 01:47

Цитата:

Сообщение от YAM1966 (Сообщение 362064)
..
Просто берем шунт на 200А....

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

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

oleg707 04.06.2016 02:01

Цитата:

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

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

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

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

Vlad-bodryi 04.06.2016 07:14

Цитата:

Сообщение от YAM1966 (Сообщение 362141)
От настырный! :acute:
Читаем тут.

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

Vlad-bodryi 04.06.2016 07:23

Цитата:

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

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

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

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

YAM1966 04.06.2016 10:18

Вложений: 1
Цитата:

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

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

И что, берем даже 500А, падение на шунте будет менее чем 0.2 Вольта....
По измерению тока в минусе конечно можно, но смотрим на платку топикстартера, а не в общую теорию.

Я поступил проще, купил такие клещи....
Вложение 43954
Можно измерять бесконтактно DC и AC токи до 400А...

(vS) 04.06.2016 10:51

а на фига ты их купил? ))

YAM1966 04.06.2016 11:00

Цитата:

Сообщение от (vS) (Сообщение 362197)
а на фига ты их купил? ))

От тебя как всегда вопрос из области фантастики... :pleasantry:

vasilij_c 04.06.2016 13:27

Цитата:

Сообщение от oleg707 (Сообщение 362190)
ток покоя смотреть.. ..баланс ...

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

Цитата:

Сообщение от oleg707 (Сообщение 362190)
.. И даже в 100. Вот в 50А уже не факт,...

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

Tommy_Gun 06.06.2016 07:49

Цитата:

Сообщение от Serg-Zmuh (Сообщение 362128)
А разрывать шунтом только по минусу надо ,или можно по плюсу ?
а то у мня два акума в параллель ....и мне технологически удобнее плюс в разрыв сделать

Вот

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

Цитата:

Сообщение от Rover (Сообщение 362291)
Резать проводку для измерения тока НЕНАДО!!!!
Два способа:
......

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

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

Цитата:

Сообщение от Serg-Zmuh (Сообщение 362409)
там у мня

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

Serg-Zmuh 09.06.2016 04:07

Цитата:

Сообщение от Denkos (Сообщение 362452)
Что за хрень с русским, или фишка такая.:blink2:

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

так норм ? :huh2:

YAM1966 09.06.2016 09:40

Цитата:

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

так норм ? :huh2:

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

Serg-Zmuh 22.07.2016 13:32

Вложений: 1
вот наконец-то дошли руки до внедрения шунта в машину :)
пытаюсь залить этот скетч в УНО ,и что-то не идет .....

PHP код:

#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 tempaAddresstempbAddresstempcAddress;
void setup(void){
Serial.begin(9600);
  [
COLOR="Red"]monitor.begin(69); //i2c addres[/COLOR]s
  
monitor.configure(0311117); 
// (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.0990.1584162);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
for(
int i 0100i++) 
  {
  
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() * 10004);
  
Serial.println(" mA");
  
Serial.print("bus voltage:   ");
  
Serial.print(monitor.busVoltage(), 4);
  
Serial.println(" V");
  
Serial.print("bus power:     ");
  
Serial.print(monitor.busPower() * 10004);
  
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 а с датчиков нету показаний

что не так ?
вот скетч ,который я правил ...
посмотрите пожалуйста
PHP код:

#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 tempaAddresstempbAddresstempcAddress;
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 0100i++) 
  {
  
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() * 10004);
  
Serial.println(" mA");
  
Serial.print("bus voltage:   ");
  
Serial.print(monitor.busVoltage(), 4);
  
Serial.println(" V");
  
Serial.print("bus power:     ");
  
Serial.print(monitor.busPower() * 10004);
  
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

PHP код:

#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 tempaAddresstempbAddresstempcAddress
void setup(void){ 
Serial.begin(9600); 
 
monitor.begin(69); //i2c addres
  
monitor.configure(0311117);  
// (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.0990.1584162); 
//R_шунта, напряж_шунта, макcнапряж, максток 
pinMode(analogInput,INPUT); 
tempa.begin(); 
tempb.begin(); 
tempc.begin(); 

void loop(void){ 
for(
int i 0100i++)  
  { 
  
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() * 10004); 
  
Serial.println(" mA"); 
  
Serial.print("bus voltage:   "); 
  
Serial.print(monitor.busVoltage(), 4); 
  
Serial.println(" V"); 
  
Serial.print("bus power:     "); 
  
Serial.print(monitor.busPower() * 10004); 
  
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
я наверно что-то натыкал ,шарю еще не очень в ардуино

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

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

armlive 22.07.2016 18:39

Это адрес Ina. Разница нет

Serg-Zmuh 23.07.2016 07:40

Вложений: 1
в общем не получается у меня ни фига :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
тестовый скетч вот такой пробовал:

PHP код:

/**********************************************
* 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_16VINA219::GAIN_2_80MVINA219::ADC_64SAMPINA219::ADC_64SAMPINA219::CONT_SH_BUS);
  
  
// calibrate with our values
  
monitor.calibrate(SHUNT_RSHUNT_MAX_VBUS_MAX_VMAX_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() * 10004);
  
Serial.println(" mV");
  
  
Serial.print("shunt current: ");
  
Serial.print(monitor.shuntCurrent() * 10004);
  
Serial.println(" mA");
  
  
Serial.print("bus voltage:   ");
  
Serial.print(monitor.busVoltage(), 4);
  
Serial.println(" V");
  
  
Serial.print("bus power:     ");
  
Serial.print(monitor.busPower() * 10004);
  
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 ,вот:
PHP код:

#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:


Часовой пояс GMT +4, время: 12:52.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot