// INITIALIZATION // This function initializes the MMA8452Q. It sets up the scale (either 2, 4, // or 8g), output data rate, portrait/landscape detection and tap detection. // It also checks the WHO_AM_I register to make sure we can communicate with // the sensor. Returns a 0 if communication failed, 1 if successful. byte MMA8452Q::init(MMA8452Q_Scale fsr, MMA8452Q_ODR odr) { scale = fsr; // Haul fsr into our class variable, scale Wire.begin(); // Initialize I2C byte c = readRegister(WHO_AM_I); // Read WHO_AM_I register if (c != 0x2A) // WHO_AM_I should always be 0x2A { return 0; } standby(); // Must be in standby to change registers setScale(scale); // Set up accelerometer scale setODR(odr); // Set up output data rate setupPL(); // Set up portrait/landscape detection // Multiply parameter by 0.0625g to calculate threshold. setupTap(0x80, 0x80, 0x08); // Disable x, y, set z to 0.5g active(); // Set to active to start reading return 1; }
void H3LIS331DL::init(H3LIS331DL_ODR_t odr,H3LIS331DL_Mode_t mode,H3LIS331DL_Fullscale_t fullScale){ Wire.begin(); //set output data rate setODR(odr); //set PowerMode setMode( mode); //set Fullscale setFullScale( fullScale); //set axis Enable setAxis( H3LIS331DL_X_ENABLE | H3LIS331DL_Y_ENABLE | H3LIS331DL_Z_ENABLE); }