#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.
}