#include <Wire.h> // Inclusione della libreria per la gestione del bus I2C
#include<MPU6050.h> // Inclusione della libreria del sensore MPU6050
MPU6050 mpu; // Definizione del nome del sensore
int16_t ax, ay, az; // Valori numerici di accelerazione lungo gli assi x,y e z
int16_t gx, gy, gz; // Valori numerici della velocità angolare intorno gli assi x,y e z
int Baud = 9600; // Definizione della velocità di comunicazione seriale
void setup() {
Serial.begin(Baud); // Inizializzazione comunicazione seriale
Wire.begin(); // Inizializzazione bus I2C
mpu.initialize( ACCEL_FS::A2G,GYRO_FS::G250DPS); // Inizializzazione Sensore
// ACCEL_FS::AxG, possibili valori da inserire al posto di x : 2, 4, 8, 16 g (accelerazione di gravità)
// GYRO_FS::GxDPS, possibili valori da inserire al posto di x : 250, 500, 1000, 2000 gradi/s
if (mpu.testConnection()) { // Verifica connessione sensore MPU6050
Serial.println("MPU6050 connesso");
}
else {
Serial.println("MPU6050 non connesso");
while (1); // Ciclo infinito
}
delay(5000);
}
void loop() {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// stampa i valori sul monitor seriale
Serial.println("Dati grezzi accelerometro");
Serial.print("Ax= ");Serial.print(ax);
Serial.print(" Ay = ");Serial.print(ay);
Serial.print(" Az= ");Serial.println(az);
Serial.println("***************");
Serial.println("Dati grezzi giroscopio");
Serial.print("Gx= ");Serial.print(gx);
Serial.print(" Gy= ");Serial.print(gy);
Serial.print(" Gz= ");Serial.println(gz);
delay(1000);
}