//=============================Public Members Temperature====================================// //------------------------Read data----------------------// uint8_t LSM9DS1::read_raw_thermo(){ uint8_t buffer[2]; readMultipleRegisters(_chipSelectPin_XG, buffer, 2, LSM9DS1_OUT_TEMP_L); int16_t temperature_tmp = (((int16_t) buffer[1] << 12) | buffer[0] << 4) >>4; temperature = (float) 20 + temperature_tmp * 0.125; // Guessing that the intercept is at about 20°C return 1; }
//-----------------Read accelerometer------------------// uint8_t LSM9DS1::read_raw_accel(){ uint8_t buffer[6]; readMultipleRegisters(_chipSelectPin_XG, buffer, 6, LSM9DS1_OUT_X_L_XL); ax = (float) (((int16_t) (buffer[1] << 8) | buffer[0]) * _sc_fact_a); ay = (float) (((int16_t) (buffer[3] << 8) | buffer[2]) * _sc_fact_a); az = (float) (((int16_t) (buffer[5] << 8) | buffer[4]) * _sc_fact_a); return 1; }
//------------------------Read data-------------------------// uint8_t LSM9DS1::read_raw_gyro(){ uint8_t buffer[6]; readMultipleRegisters(_chipSelectPin_XG, buffer, 6, LSM9DS1_OUT_X_L_G); gx = (float) (((int16_t) (buffer[1] << 8) | buffer[0]) * _sc_fact_g); gy = (float) (((int16_t) (buffer[3] << 8) | buffer[2]) * _sc_fact_g); gz = (float) (((int16_t) (buffer[5] << 8) | buffer[4]) * _sc_fact_g); return 1; }
int TSL2561_I2C::getIROnly(){ char buffer[2] = { 0 }; readMultipleRegisters( TSL_DATA1LOW, buffer, 2 ); int reading = (int)buffer[1] << 8 | (int)buffer[0]; return reading; }
int TSL2561_I2C::getVisibleAndIR(){ char buffer[2] = { 0 }; readMultipleRegisters( TSL_DATA0LOW, buffer, 2 ); int reading = (int)buffer[1] << 8 | (int)buffer[0]; return reading; }
int TSL2561_I2C::readHighInterruptThreshold(){ char buffer[2] = { 0 }; readMultipleRegisters( TSL_THRESHHIGHLOW, buffer, 2 ); int reading = (int)buffer[1] << 8 | (int)buffer[0]; return reading; }