BMA180 library with multiple configurable ranges. Based on the Sensor_test by Bo Carøe.

Dependents:   Sensor_test_2_0 KalmanFilter

Fork of BMA180 by Bo Carøe

Committer:
cdonate
Date:
Wed Aug 15 01:33:49 2012 +0000
Revision:
1:cd2316c8a187
Parent:
0:6904212fb1d1
Child:
2:c7eb9f15e026
Translate comments to english, change range and conversion values.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caroe 0:6904212fb1d1 1 #pragma once
caroe 0:6904212fb1d1 2
cdonate 1:cd2316c8a187 3 //I2C address, either 0x40 or 0x41, depending on pin VDDIO
cdonate 1:cd2316c8a187 4 #define BMA180_ADRESS 0x40
caroe 0:6904212fb1d1 5
cdonate 1:cd2316c8a187 6 //Convert acceleration to meters per second squared
cdonate 1:cd2316c8a187 7 //This value depends on the Range you are using, i.e. +-1g, +-3g, etc.
cdonate 1:cd2316c8a187 8 //fConvMPSS= (acc of gravitation) / Sensitivity
cdonate 1:cd2316c8a187 9
cdonate 1:cd2316c8a187 10 const float fConvMPSS= 1.7919037e-3;
caroe 0:6904212fb1d1 11
caroe 0:6904212fb1d1 12 class BMA180
caroe 0:6904212fb1d1 13 {
caroe 0:6904212fb1d1 14 private:
caroe 0:6904212fb1d1 15 I2C & I2CBus;
caroe 0:6904212fb1d1 16 Timer & GlobalTime;
caroe 0:6904212fb1d1 17
caroe 0:6904212fb1d1 18 //Offset
caroe 0:6904212fb1d1 19 float Offset[3];
caroe 0:6904212fb1d1 20
caroe 0:6904212fb1d1 21 public:
cdonate 1:cd2316c8a187 22 //Acceleration on all three axes
cdonate 1:cd2316c8a187 23 short RawAcc[3]; //Raw Data
cdonate 1:cd2316c8a187 24 float Acc[3]; //Calibrated raw data in m/s^2
caroe 0:6904212fb1d1 25
caroe 0:6904212fb1d1 26
cdonate 1:cd2316c8a187 27 //Initialization
caroe 0:6904212fb1d1 28 BMA180(I2C & I2CBus_, Timer & GlobalTime_);
caroe 0:6904212fb1d1 29 void Init();
caroe 0:6904212fb1d1 30
cdonate 1:cd2316c8a187 31 public:
cdonate 1:cd2316c8a187 32 //Read raw Data
caroe 0:6904212fb1d1 33 void ReadRawData();
caroe 0:6904212fb1d1 34
caroe 0:6904212fb1d1 35 public:
cdonate 1:cd2316c8a187 36 //Update Method
cdonate 1:cd2316c8a187 37 //Get current information from the sensor
cdonate 1:cd2316c8a187 38 //Calculate the offset
cdonate 1:cd2316c8a187 39 //Converts other units
caroe 0:6904212fb1d1 40 void Update();
caroe 0:6904212fb1d1 41
cdonate 1:cd2316c8a187 42 //Calibration
cdonate 1:cd2316c8a187 43 //pRaw1g: short array [3] provides the best raw data for approximately 1g = {0, 0, -2870}
caroe 0:6904212fb1d1 44 void Calibrate(int ms, const short * pRaw1g);
cdonate 1:cd2316c8a187 45
cdonate 1:cd2316c8a187 46 void userCalibration(short * Raw1g);
caroe 0:6904212fb1d1 47 };