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 22:17:27 2012 +0000
Revision:
2:c7eb9f15e026
Parent:
1:cd2316c8a187
No change

Who changed what in which revision?

UserRevisionLine numberNew 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 };