Показать сообщение отдельно
Старый 22.07.2016, 13:32   #34
Serg-Zmuh
Старший Пользователь
 
Аватар для Serg-Zmuh
 
Регистрация: 19.02.2014
Возраст: 54
Город: Ванино
Регион: 27
Машина: MMC-Pajero-II,V46,4М40
Сообщений: 327
Serg-Zmuh will become famous soon enough
По умолчанию

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

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 нет
в тоже время тестовый скетч иновский работает
но там этот параметр другой 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 ,должно же работать ?
или конфигурировать надо уже с подключеной нагрузкой ?
просто я пока на столе тестю ....
прикрепил файл с логом ошибок
Вложения
Тип файла: txt Новый текстовый документ (2).txt (3.8 Кб, 729 просмотров)
__________________
MMC-Pajero ,Teyes CC3 ,все пока в процессе
Serg-Zmuh вне форума   Ответить с цитированием