Ejemplo de uso del MPU9250 por puerto I2C

Dependencies:   mbed

Committer:
lscordovar
Date:
Thu Feb 06 03:39:19 2020 +0000
Revision:
1:ad5417f813f4
Parent:
0:cecf4940adf1
Ejemplo con MPU9250 por I2C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
a0074639 0:cecf4940adf1 1 #include "mbed.h"
a0074639 0:cecf4940adf1 2 #include "myMPU9250.h"
a0074639 0:cecf4940adf1 3
a0074639 0:cecf4940adf1 4 DigitalOut g_led1(LED1), g_led2(LED2), g_led3(LED3), g_led4(LED4);
a0074639 0:cecf4940adf1 5 Serial g_pc(USBTX, USBRX);
a0074639 0:cecf4940adf1 6
a0074639 0:cecf4940adf1 7 void blink_led(double sec=3.0, double interval = 0.2,
a0074639 0:cecf4940adf1 8 bool led1=true, bool led2=true, bool led3=true, bool led4=true)
a0074639 0:cecf4940adf1 9 {
a0074639 0:cecf4940adf1 10
a0074639 0:cecf4940adf1 11 for(double t=0.0 ; t<sec ; t+=interval*2.0) {
a0074639 0:cecf4940adf1 12 g_led1 = (int)led1;
a0074639 0:cecf4940adf1 13 g_led2 = (int)led2;
a0074639 0:cecf4940adf1 14 g_led3 = (int)led3;
a0074639 0:cecf4940adf1 15 g_led4 = (int)led4;
a0074639 0:cecf4940adf1 16 wait(interval);
a0074639 0:cecf4940adf1 17 g_led1 = g_led2 = g_led3 = g_led4 = 0;
a0074639 0:cecf4940adf1 18 wait(interval);
a0074639 0:cecf4940adf1 19 }
a0074639 0:cecf4940adf1 20 }
a0074639 0:cecf4940adf1 21
a0074639 0:cecf4940adf1 22 int main()
a0074639 0:cecf4940adf1 23 {
a0074639 0:cecf4940adf1 24 g_pc.printf("START!\n");
a0074639 0:cecf4940adf1 25 MyMPU9250 imu;
a0074639 0:cecf4940adf1 26 if(imu.initialize()) {
a0074639 0:cecf4940adf1 27 g_pc.printf("SUCCESS TO INITIALIZE!\n");
a0074639 0:cecf4940adf1 28 blink_led(3.0, 0.2, true, false, false, true);
a0074639 0:cecf4940adf1 29 } else {
a0074639 0:cecf4940adf1 30 blink_led();
a0074639 0:cecf4940adf1 31 return 0;
a0074639 0:cecf4940adf1 32 }
a0074639 0:cecf4940adf1 33
a0074639 0:cecf4940adf1 34 imu.setup();
a0074639 0:cecf4940adf1 35
a0074639 0:cecf4940adf1 36 double x, y, z;
a0074639 0:cecf4940adf1 37 for(int cnt=0;; cnt++) {
a0074639 0:cecf4940adf1 38 if(cnt%2==0) {
a0074639 0:cecf4940adf1 39 imu.updateAccelAllAxes();
a0074639 0:cecf4940adf1 40 x = imu.accelX();
a0074639 0:cecf4940adf1 41 y = imu.accelY();
a0074639 0:cecf4940adf1 42 z = imu.accelZ();
a0074639 0:cecf4940adf1 43 g_pc.printf("Accel: %f, %f, %f \n", x, y, z);
a0074639 0:cecf4940adf1 44 } else {
a0074639 0:cecf4940adf1 45 imu.updateGyroAllAxes();
a0074639 0:cecf4940adf1 46 x = imu.gyroX();
a0074639 0:cecf4940adf1 47 y = imu.gyroY();
a0074639 0:cecf4940adf1 48 z = imu.gyroZ();
a0074639 0:cecf4940adf1 49 g_pc.printf("Gyro: %f, %f, %f \n", x, y, z);
a0074639 0:cecf4940adf1 50 }
a0074639 0:cecf4940adf1 51 }
a0074639 0:cecf4940adf1 52 }