tried out the sensor board by mbed
Dependencies: MAG3110 MMA8451Q MMA8491Q MPL3115A2 TSI TextLCD mbed
main.cpp@1:561b57bbbdcc, 2013-10-10 (annotated)
- Committer:
- jppang
- Date:
- Thu Oct 10 02:48:03 2013 +0000
- Revision:
- 1:561b57bbbdcc
- Parent:
- 0:3add2fd1bf66
- Child:
- 2:1b93ae1eac4b
modified MPL3115A2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jppang | 0:3add2fd1bf66 | 1 | |
jppang | 0:3add2fd1bf66 | 2 | #include "mbed.h" |
jppang | 0:3add2fd1bf66 | 3 | #include "TSISensor.h" |
jppang | 0:3add2fd1bf66 | 4 | #include "MMA8451Q.h" |
jppang | 0:3add2fd1bf66 | 5 | #include "MMA8491Q.h" |
jppang | 0:3add2fd1bf66 | 6 | #include "MAG3110.h" |
jppang | 0:3add2fd1bf66 | 7 | #include "MPL3115A2.h" |
jppang | 0:3add2fd1bf66 | 8 | #include <cstdlib> |
jppang | 0:3add2fd1bf66 | 9 | #include <iostream> |
jppang | 0:3add2fd1bf66 | 10 | |
jppang | 0:3add2fd1bf66 | 11 | //#define MMA8451_I2C_ADDRESS (0x1d<<1) |
jppang | 0:3add2fd1bf66 | 12 | //#define MMA8491_I2C_ADDRESS (0x55<<1) |
jppang | 0:3add2fd1bf66 | 13 | //#define MPL3115A2_I2C_ADDRESS (0x60<<1) |
jppang | 0:3add2fd1bf66 | 14 | //#define MAG3110_I2C_ADDRESS (0x0E<<1) |
jppang | 0:3add2fd1bf66 | 15 | |
jppang | 0:3add2fd1bf66 | 16 | Serial pc(USBTX, USBRX); |
jppang | 0:3add2fd1bf66 | 17 | |
jppang | 0:3add2fd1bf66 | 18 | TSISensor tsi; |
jppang | 0:3add2fd1bf66 | 19 | MMA8451Q acc51(PTE25, PTE24, 0x1D<<1); |
jppang | 0:3add2fd1bf66 | 20 | MMA8491Q acc91(PTE0, PTE1, 0x55<<1); |
jppang | 0:3add2fd1bf66 | 21 | MAG3110 mag(PTE0, PTE1, 0x0E<<1); |
jppang | 0:3add2fd1bf66 | 22 | MPL3115A2 mpl(PTE0, PTE1, 0x60<<1); |
jppang | 0:3add2fd1bf66 | 23 | |
jppang | 0:3add2fd1bf66 | 24 | PwmOut rled(LED_RED); |
jppang | 0:3add2fd1bf66 | 25 | PwmOut gled(LED_GREEN); |
jppang | 0:3add2fd1bf66 | 26 | PwmOut bled(LED_BLUE); |
jppang | 0:3add2fd1bf66 | 27 | |
jppang | 0:3add2fd1bf66 | 28 | DigitalOut enMMA8491(PTA13); |
jppang | 0:3add2fd1bf66 | 29 | |
jppang | 0:3add2fd1bf66 | 30 | InterruptIn intMPL3115(PTD3); |
jppang | 0:3add2fd1bf66 | 31 | InterruptIn intMAG3110(PTD1); |
jppang | 0:3add2fd1bf66 | 32 | |
jppang | 0:3add2fd1bf66 | 33 | DigitalIn acc91X(PTD2); |
jppang | 0:3add2fd1bf66 | 34 | DigitalIn acc91Y(PTD0); |
jppang | 0:3add2fd1bf66 | 35 | DigitalIn acc91Z(PTD5); |
jppang | 0:3add2fd1bf66 | 36 | |
jppang | 0:3add2fd1bf66 | 37 | |
jppang | 0:3add2fd1bf66 | 38 | int main() |
jppang | 0:3add2fd1bf66 | 39 | { |
jppang | 0:3add2fd1bf66 | 40 | using namespace std; |
jppang | 0:3add2fd1bf66 | 41 | |
jppang | 0:3add2fd1bf66 | 42 | float onTime = 1.0; |
jppang | 0:3add2fd1bf66 | 43 | float offTime = 0.0; |
jppang | 0:3add2fd1bf66 | 44 | float holdTime = 1.0; |
jppang | 0:3add2fd1bf66 | 45 | bool on = true; |
jppang | 0:3add2fd1bf66 | 46 | bool off = false; |
jppang | 0:3add2fd1bf66 | 47 | int magX = 0, magY = 0, magZ = 0; |
jppang | 1:561b57bbbdcc | 48 | float mplAlt = .0, mplPres = .0, mplTemp = .0; |
jppang | 0:3add2fd1bf66 | 49 | mpl.Altimeter_Mode(); |
jppang | 0:3add2fd1bf66 | 50 | |
jppang | 0:3add2fd1bf66 | 51 | while(true) { |
jppang | 0:3add2fd1bf66 | 52 | enMMA8491 = on; |
jppang | 1:561b57bbbdcc | 53 | |
jppang | 0:3add2fd1bf66 | 54 | rled = onTime - abs(acc51.getAccX()); |
jppang | 0:3add2fd1bf66 | 55 | gled = onTime - abs(acc51.getAccY()); |
jppang | 0:3add2fd1bf66 | 56 | bled = onTime - abs(acc51.getAccZ()); |
jppang | 0:3add2fd1bf66 | 57 | mag.getValues(&magX, &magY, &magZ); |
jppang | 1:561b57bbbdcc | 58 | mplAlt = mpl.getAltimeter(); |
jppang | 1:561b57bbbdcc | 59 | mplTemp = mpl.getTemperature(); |
jppang | 0:3add2fd1bf66 | 60 | |
jppang | 0:3add2fd1bf66 | 61 | cout << "MMA8451: " << acc51.getAccX() << "\t" << acc51.getAccY() << "\t" << acc51.getAccZ() << "\n\r" << endl; |
jppang | 0:3add2fd1bf66 | 62 | cout << "MMA8491: " << acc91X << "\t" << acc91Y << "\t" << acc91Z << "\n\r" << endl; |
jppang | 0:3add2fd1bf66 | 63 | cout << "MMA8491: " << acc91.getAccX() << "\t" << acc91.getAccY() << "\t" << acc91.getAccZ() << "\n\r" << endl; |
jppang | 0:3add2fd1bf66 | 64 | cout << "MAG3110: " << magX << "\t" << magY << "\t" << magZ << "\n\r" << endl; |
jppang | 1:561b57bbbdcc | 65 | mpl.Barometric_Mode(); |
jppang | 0:3add2fd1bf66 | 66 | wait(holdTime); |
jppang | 0:3add2fd1bf66 | 67 | |
jppang | 0:3add2fd1bf66 | 68 | enMMA8491 = off; |
jppang | 1:561b57bbbdcc | 69 | |
jppang | 0:3add2fd1bf66 | 70 | rled = onTime - tsi.readPercentage(); |
jppang | 0:3add2fd1bf66 | 71 | gled = onTime - tsi.readPercentage(); |
jppang | 0:3add2fd1bf66 | 72 | bled = onTime - tsi.readPercentage(); |
jppang | 1:561b57bbbdcc | 73 | mplPres = mpl.getPressure(); |
jppang | 0:3add2fd1bf66 | 74 | |
jppang | 0:3add2fd1bf66 | 75 | cout << "Touch: " << tsi.readPercentage() << "\n\r" << endl; |
jppang | 1:561b57bbbdcc | 76 | cout << "MPL3115: " << mplAlt << "\t" << mplPres << "\t" << mplTemp << "\n\r" << endl; |
jppang | 1:561b57bbbdcc | 77 | mpl.Altimeter_Mode(); |
jppang | 0:3add2fd1bf66 | 78 | wait(holdTime); |
jppang | 0:3add2fd1bf66 | 79 | } |
jppang | 0:3add2fd1bf66 | 80 | return 0; |
jppang | 0:3add2fd1bf66 | 81 | } |