tried out the sensor board by mbed
Dependencies: MAG3110 MMA8451Q MMA8491Q MPL3115A2 TSI TextLCD mbed
main.cpp
00001 00002 #include "mbed.h" 00003 #include "TSISensor.h" 00004 #include "MMA8451Q.h" 00005 #include "MMA8491Q.h" 00006 #include "MAG3110.h" 00007 #include "MPL3115A2.h" 00008 #include <cstdlib> 00009 #include <iostream> 00010 00011 //#define MMA8451_I2C_ADDRESS (0x1d<<1) 00012 //#define MMA8491_I2C_ADDRESS (0x55<<1) 00013 //#define MPL3115A2_I2C_ADDRESS (0x60<<1) 00014 //#define MAG3110_I2C_ADDRESS (0x0E<<1) 00015 00016 Serial pc(USBTX, USBRX); 00017 00018 TSISensor tsi; 00019 MMA8451Q acc51(PTE25, PTE24, 0x1D<<1); 00020 MMA8491Q acc91(PTE0, PTE1, 0x55<<1); 00021 MAG3110 mag(PTE0, PTE1, 0x0E<<1); 00022 MPL3115A2 mpl(PTE0, PTE1, 0x60<<1); 00023 00024 PwmOut rled(LED_RED); 00025 PwmOut gled(LED_GREEN); 00026 PwmOut bled(LED_BLUE); 00027 00028 DigitalOut enMMA8491(PTA13); 00029 00030 InterruptIn intMPL3115(PTD3); 00031 InterruptIn intMAG3110(PTD1); 00032 00033 DigitalIn acc91X(PTD2); 00034 DigitalIn acc91Y(PTD0); 00035 DigitalIn acc91Z(PTD5); 00036 00037 00038 int main() 00039 { 00040 using namespace std; 00041 00042 float onTime = 1.0; 00043 float offTime = 0.0; 00044 float holdTime = 1.0; 00045 bool on = true; 00046 bool off = false; 00047 int magX = 0, magY = 0, magZ = 0; 00048 float mplAlt = .0, mplPres = .0, mplTemp = .0; 00049 mpl.Altimeter_Mode(); 00050 00051 while(true) { 00052 enMMA8491 = on; 00053 00054 rled = onTime - abs(acc51.getAccX()); 00055 gled = onTime - abs(acc51.getAccY()); 00056 bled = onTime - abs(acc51.getAccZ()); 00057 mag.getValues(&magX, &magY, &magZ); 00058 mplAlt = mpl.getAltimeter(); 00059 mplTemp = mpl.getTemperature(); 00060 00061 cout << "MMA8451: " << acc51.getAccX() << "\t" << acc51.getAccY() << "\t" << acc51.getAccZ() << "\n\r" << endl; 00062 cout << "MMA8491: " << acc91X << "\t" << acc91Y << "\t" << acc91Z << "\n\r" << endl; 00063 cout << "MMA8491: " << acc91.getAccX() << "\t" << acc91.getAccY() << "\t" << acc91.getAccZ() << "\n\r" << endl; 00064 cout << "MAG3110: " << magX << "\t" << magY << "\t" << magZ << "\n\r" << endl; 00065 mpl.Barometric_Mode(); 00066 wait(holdTime); 00067 00068 enMMA8491 = off; 00069 00070 rled = tsi.readPercentage(); 00071 gled = tsi.readPercentage(); 00072 bled = tsi.readPercentage(); 00073 mplPres = mpl.getPressure(); 00074 00075 cout << "Touch: " << tsi.readPercentage() << "\n\r" << endl; 00076 cout << "MPL3115: " << mplAlt << "\t" << mplPres << "\t" << mplTemp << "\n\r" << endl; 00077 mpl.Altimeter_Mode(); 00078 wait(holdTime); 00079 } 00080 return 0; 00081 }
Generated on Thu Jul 14 2022 07:48:29 by 1.7.2