Professional Documents
Culture Documents
//VCC - VCC
//SDA - Pin A4
//SCL - Pin A5
#include <Wire.h>
Wire.requestFrom(Address, Nbytes);
uint8_t index = 0;
while (Wire.available())
Data[index++] = Wire.read();
}
void setup()
{
Wire.begin();
Serial.begin(115200);
// Configurar acelerometro
I2CwriteByte(MPU9250_ADDRESS, 28, ACC_FULL_SCALE_16_G);
// Configurar giroscopio
I2CwriteByte(MPU9250_ADDRESS, 27, GYRO_FULL_SCALE_2000_DPS);
// Configurar magnetometro
I2CwriteByte(MPU9250_ADDRESS, 0x37, 0x02);
I2CwriteByte(MAG_ADDRESS, 0x0A, 0x01);
}
void loop()
{
// --- Lectura acelerometro y giroscopio ---
uint8_t Buf[14];
I2Cread(MPU9250_ADDRESS, 0x3B, 14, Buf);
uint8_t Mag[7];
I2Cread(MAG_ADDRESS, 0x03, 7, Mag);
// Acelerometro
Serial.print(ax, DEC);
Serial.print("\t");
Serial.print(ay, DEC);
Serial.print("\t");
Serial.print(az, DEC);
Serial.print("\t");
// Giroscopio
Serial.print(gx, DEC);
Serial.print("\t");
Serial.print(gy, DEC);
Serial.print("\t");
Serial.print(gz, DEC);
Serial.print("\t");
// Magnetometro
Serial.print(mx + 200, DEC);
Serial.print("\t");
Serial.print(my - 70, DEC);
Serial.print("\t");
Serial.print(mz - 700, DEC);
Serial.print("\t");
// Fin medicion
Serial.println("");
delay(10);
}