Datasheet
ICP-10111
Document Number: DS-000177 Page 19 of 31
Revision: 1.3
(p_LUT[2] * (p_Pa[0] - p_Pa[1]) +
p_LUT[0] * (p_Pa[1] - p_Pa[2]) +
p_LUT[1] * (p_Pa[2] - p_Pa[0]));
A = (p_Pa[0] * p_LUT[0] - p_Pa[1] * p_LUT[1] - (p_Pa[1] - p_Pa[0]) * C) / (p_LUT[0] - p_LUT[1]);
B = (p_Pa[0] - A) * (p_LUT[0] + C);
out[0] = A;
out[1] = B;
out[2] = C;
}
5.12 SAMPLE CODE: CONVERSION FORMULA (EXAMPLE PYTHON SYNTAX)
class InvensensePressureConversion:
""" Class for conversion of the pressure and temperature output of the Invensense sensor"""
def __init__(self, sensor_constants):
""" Initialize customer formula
Arguments:
sensor_constants -- list of 4 integers: [c1, c2, c3, c4]
"""
self.sensor_constants = sensor_constants
# configuration for ICP-10111 Samples
self.p_Pa_calib = [45000.0, 80000.0, 105000.0]
self.LUT_lower = 3.5 * (2**20)
self.LUT_upper = 11.5 * (2**20)
self.quadr_factor = 1 / 16777216.0
self.offst_factor = 2048.0
def calculate_conversion_constants(self, p_Pa, p_LUT):
""" calculate temperature dependent constants
Arguments:
p_Pa -- List of 3 values corresponding to applied pressure in Pa
p_LUT -- List of 3 values corresponding to the measured p_LUT values at the applied pressures.
"""
C = (p_LUT[0] * p_LUT[1] * (p_Pa[0] - p_Pa[1]) +
p_LUT[1] * p_LUT[2] * (p_Pa[1] - p_Pa[2]) +
p_LUT[2] * p_LUT[0] * (p_Pa[2] - p_Pa[0])) / \
(p_LUT[2] * (p_Pa[0] - p_Pa[1]) +
p_LUT[0] * (p_Pa[1] - p_Pa[2]) +
p_LUT[1] * (p_Pa[2] - p_Pa[0]))
A = (p_Pa[0] * p_LUT[0] - p_Pa[1] * p_LUT[1] - (p_Pa[1] - p_Pa[0]) * C) / (p_LUT[0] - p_LUT[1])
B = (p_Pa[0] - A) * (p_LUT[0] + C)
return [A, B, C]
def get_pressure(self, p_LSB, T_LSB):