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