Dependencies:   mbed

Committer:
NataliaGaravito
Date:
Tue Aug 20 17:13:30 2019 +0000
Revision:
0:7411b02903e3
Child:
1:62775d3592cf
primer entrega

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NataliaGaravito 0:7411b02903e3 1 #include "mbed.h"
NataliaGaravito 0:7411b02903e3 2
NataliaGaravito 0:7411b02903e3 3 Serial pc(SERIAL_TX, SERIAL_RX); // (TX, RX)
NataliaGaravito 0:7411b02903e3 4 I2C i2c(PB_9, PB_8 ); // (SDA, SCL)
NataliaGaravito 0:7411b02903e3 5 DigitalIn button(PC_13);
NataliaGaravito 0:7411b02903e3 6
NataliaGaravito 0:7411b02903e3 7 const int addr = 0xD0; // 7 bit I2C address
NataliaGaravito 0:7411b02903e3 8 char cmd[2];
NataliaGaravito 0:7411b02903e3 9 char read_buffer[14];
NataliaGaravito 0:7411b02903e3 10 char save_p[10];
NataliaGaravito 0:7411b02903e3 11
NataliaGaravito 0:7411b02903e3 12 int16_t acc_x = 0, acc_y = 0, acc_z = 0;
NataliaGaravito 0:7411b02903e3 13 int16_t gyr_x = 0, gyr_y = 0, gyr_z = 0;
NataliaGaravito 0:7411b02903e3 14 int16_t temp = 0;
NataliaGaravito 0:7411b02903e3 15
NataliaGaravito 0:7411b02903e3 16 float ACC_SEN = 16384.0; //Resolución ACC
NataliaGaravito 0:7411b02903e3 17 float GYR_SEN = 131.0; //Resolución GYR
NataliaGaravito 0:7411b02903e3 18 float TEM_SEN = 340.0; //Resolución temp
NataliaGaravito 0:7411b02903e3 19
NataliaGaravito 0:7411b02903e3 20 float facc_x = 0, facc_y = 0, facc_z = 0;
NataliaGaravito 0:7411b02903e3 21 float fgyr_x = 0, fgyr_y = 0, fgyr_z = 0;
NataliaGaravito 0:7411b02903e3 22 float ftemp = 0;
NataliaGaravito 0:7411b02903e3 23
NataliaGaravito 0:7411b02903e3 24 DigitalOut myled(LED1);
NataliaGaravito 0:7411b02903e3 25
NataliaGaravito 0:7411b02903e3 26 int main()
NataliaGaravito 0:7411b02903e3 27 {
NataliaGaravito 0:7411b02903e3 28 pc.printf("Prueba MPU6050 \n\r");
NataliaGaravito 0:7411b02903e3 29
NataliaGaravito 0:7411b02903e3 30 cmd[0] = 0x6B;
NataliaGaravito 0:7411b02903e3 31 cmd[1] = 0x00;
NataliaGaravito 0:7411b02903e3 32 i2c.write(addr, cmd, 2); //Desactivar modo hibernación
NataliaGaravito 0:7411b02903e3 33
NataliaGaravito 0:7411b02903e3 34 cmd[0] = 0x1B;
NataliaGaravito 0:7411b02903e3 35 cmd[1] = 0x00;
NataliaGaravito 0:7411b02903e3 36 i2c.write(addr, cmd, 2); //gyro full scale 250 DPS
NataliaGaravito 0:7411b02903e3 37
NataliaGaravito 0:7411b02903e3 38 cmd[0] = 0x1C;
NataliaGaravito 0:7411b02903e3 39 cmd[1] = 0x00;
NataliaGaravito 0:7411b02903e3 40 i2c.write(addr, cmd, 2); //ACC fullsclae 2G
NataliaGaravito 0:7411b02903e3 41
NataliaGaravito 0:7411b02903e3 42 while(1) {
NataliaGaravito 0:7411b02903e3 43 wait(1);
NataliaGaravito 0:7411b02903e3 44
NataliaGaravito 0:7411b02903e3 45 cmd[0]=0x3B;
NataliaGaravito 0:7411b02903e3 46 i2c.write(addr, cmd, 1); //Escritura del registro de inicio
NataliaGaravito 0:7411b02903e3 47
NataliaGaravito 0:7411b02903e3 48 //for(int i;i<=10;i++)
NataliaGaravito 0:7411b02903e3 49 //{
NataliaGaravito 0:7411b02903e3 50 i2c.read(addr, read_buffer, 14); //Lectura en rafaga de los valores de la MPU
NataliaGaravito 0:7411b02903e3 51 wait_ms(1);
NataliaGaravito 0:7411b02903e3 52 //}
NataliaGaravito 0:7411b02903e3 53
NataliaGaravito 0:7411b02903e3 54 //.................Construcción de la medición de los valores ..................
NataliaGaravito 0:7411b02903e3 55
NataliaGaravito 0:7411b02903e3 56
NataliaGaravito 0:7411b02903e3 57 acc_x = read_buffer[0]<<8 | read_buffer[1];
NataliaGaravito 0:7411b02903e3 58 acc_y = read_buffer[2]<<8 | read_buffer[3];
NataliaGaravito 0:7411b02903e3 59 acc_z = read_buffer[4]<<8 | read_buffer[5];
NataliaGaravito 0:7411b02903e3 60 temp = read_buffer[6]<<8 | read_buffer[7];
NataliaGaravito 0:7411b02903e3 61 gyr_x = read_buffer[8]<<8 | read_buffer[9];
NataliaGaravito 0:7411b02903e3 62 gyr_y = read_buffer[10]<<8 | read_buffer[11];
NataliaGaravito 0:7411b02903e3 63 gyr_z = read_buffer[12]<<8 | read_buffer[13];
NataliaGaravito 0:7411b02903e3 64
NataliaGaravito 0:7411b02903e3 65
NataliaGaravito 0:7411b02903e3 66 //pc.printf("ACCx = %i ACCy = %i ACCz = %i \n\r", acc_x, acc_y, acc_z);
NataliaGaravito 0:7411b02903e3 67
NataliaGaravito 0:7411b02903e3 68 while(button!=1)
NataliaGaravito 0:7411b02903e3 69 {
NataliaGaravito 0:7411b02903e3 70
NataliaGaravito 0:7411b02903e3 71 facc_x = acc_x/ACC_SEN;
NataliaGaravito 0:7411b02903e3 72 facc_y = acc_y/ACC_SEN;
NataliaGaravito 0:7411b02903e3 73 facc_z = acc_z/ACC_SEN;
NataliaGaravito 0:7411b02903e3 74
NataliaGaravito 0:7411b02903e3 75
NataliaGaravito 0:7411b02903e3 76 fgyr_x = gyr_x/GYR_SEN;
NataliaGaravito 0:7411b02903e3 77 fgyr_y = gyr_y/GYR_SEN;
NataliaGaravito 0:7411b02903e3 78 fgyr_z = gyr_z/GYR_SEN;
NataliaGaravito 0:7411b02903e3 79
NataliaGaravito 0:7411b02903e3 80 // pc.printf("GYRx = %.2f GYRy = %.2f GYRz = %.2f \n\r", fgyr_x, fgyr_y, fgyr_z);
NataliaGaravito 0:7411b02903e3 81
NataliaGaravito 0:7411b02903e3 82 ftemp= (temp - 521)/TEM_SEN;
NataliaGaravito 0:7411b02903e3 83
NataliaGaravito 0:7411b02903e3 84 //pc.printf("Temp = %.2f \r\n",ftemp);
NataliaGaravito 0:7411b02903e3 85 for(int i=0;i<=9;i++){
NataliaGaravito 0:7411b02903e3 86 pc.printf("ACCx ACCy ACCz GYRx GYRy GYRz Temp \n\r");
NataliaGaravito 0:7411b02903e3 87 pc.printf("%.2f %.2f %.2f %.2f %.2f %.2f %.2f \n\r", facc_x, facc_y, facc_z, fgyr_x, fgyr_y, fgyr_z, ftemp);
NataliaGaravito 0:7411b02903e3 88 }
NataliaGaravito 0:7411b02903e3 89 }
NataliaGaravito 0:7411b02903e3 90
NataliaGaravito 0:7411b02903e3 91 /* for(int i=0; i<14; i++) {
NataliaGaravito 0:7411b02903e3 92 pc.printf("Buffer[%i] = %i \n\r",i,read_buffer[i]);
NataliaGaravito 0:7411b02903e3 93 }*/
NataliaGaravito 0:7411b02903e3 94
NataliaGaravito 0:7411b02903e3 95 myled = !myled;
NataliaGaravito 0:7411b02903e3 96 }
NataliaGaravito 0:7411b02903e3 97 }