Показать сообщение отдельно
13.11.2016, 23:09   #50
evil_mivec

Член партии
 
Аватар для evil_mivec
 
Адрес: Москва
Авто: EC5A TypeV '00 5MT
Имя: Андрей
Сообщений: 3,214




По умолчанию

короче вот так считал

Цитата:
Gradient and Offset Calculations
MINPRESSURE = 200mBar
MAXPRESSURE = 2500mBar
MINVOLTAGE = 0.4Volts
MAXVOLTAGE = 4.65Volts
DSLGRAD = (MAXPRESSURE − MINPRESSURE) / (MAXVOLTAGE − MINVOLTAGE) = 541.18
DSLOFS = MAXPRESSURE − (DSLGRAD * MAXVOLTAGE) = − 16.47
Я еще пробовал считать по родному мануалу http://vems.hu/download/sensors/Bosc..._038906051.pdf
Значения получаются один в один.

С температурой действительно не так просто, примерно так

float iatCal[18][2] = {
130, 89.3,
120, 112.7,
110, 144.2,
100, 186.6,
90, 243.2,
80, 322.5,
70, 435.7,
60, 595.5,
50, 834,
40, 1175,
30, 1707,
20, 2500,
10, 3792,
0, 5896,
-10, 9397,
-20, 15462,
-30, 26114,
-40, 45313
};


float getIat(float ohm) {
float cellTemp, unit;
for (int i = prevIatIdx; i < 18; i++) {
if (iatCal[i][1] > ohm) {
prevIatIdx = i;
unit = (iatCal[i][1] - iatCal[i - 1][1]) / 10;
return iatCal[i][0] + (iatCal[i][1] - ohm) / unit;
}
}
prevIatIdx = 0;
return getIat(ohm);
}

iatC = getIat(iatRaw / ((1023 - iatRaw) / iatDivRes));
evil_mivec вне форума Ответить с цитированием Перейти в начало страницы