#include <Wire.h>  //Bibliotecas necessárias.
#include <I2Cdev.h>
#include <MPU6050.h>
#include <SPI.h>          // Biblioteca de comunicação SPI Nativa
#include <SD.h>           // Biblioteca de comunicação com cartão SD Nativa

MPU6050 mpu1(0x68); //Declaração do módulo.
MPU6050 mpu2(0x69);

int16_t ax, ay, az, gx, gy, gz; 
int16_t ax2, ay2, az2, gx2, gy2, gz2;//Declaração das variáveis. A int16_t é uma 
                                //variável int sem sinal de 16 bits. 

//Variáveis com 'a' são eixos do acelerômetro e 'g' são do giroscópio.
void setup() {
  Serial.begin(9600);  //Inicializa a tela Serial.
  Wire.begin();  //Inicializa a comunicação I2C.
  mpu1.initialize(); //Inicializa o módulo.
  mpu1.setFullScaleAccelRange('MPU6050_ACCEL_FS_0');
  mpu2.initialize();
  mpu2.setFullScaleAccelRange('MPU6050_ACCEL_FS_1'); //seleção do renge de aceleração 
  Serial.print(mpu1.getFullScaleAccelRange());
  Serial.print(mpu2.getFullScaleAccelRange());
  if(!mpu1.testConnection()){ 
    while (1); 
    }
  if(!mpu1.testConnection()){ 
    while (1); 
  }
}
void loop() {
  mpu1.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //Função que faz a leitura 
  mpu2.getMotion6(&ax2, &ay2, &az2, &gx2, &gy, &gz2);
                                //dos eixos do acelerômetro e do giroscópio.
  Serial.print("ax = ");
  Serial.print(0.000061037018951994384*float(ax2));
  Serial.print(" | ay = ");
  Serial.print(0.000061037018951994384*float(ay2));
  Serial.print(" | az = ");
  Serial.print(0.000061037018951994384*float(az2));
  Serial.print("\n");
  Serial.print("gx = ");
  Serial.print(0.007633587786259*float(gx2));
  Serial.print(" | gy = ");
  Serial.print(0.007633587786259*float(gy2));
  Serial.print(" | gz = ");
  Serial.print(0.007633587786259*float(gz2));
  Serial.print("\n");
  Serial.print("\n");
  delay(500); //Para poder ler os dados na tela.
}