короче вот так считал
Цитата:
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));