#include #include #include #include #include /* Assign a unique ID to the sensors */ Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified(30301); Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(30302); Adafruit_L3GD20_Unified gyro = Adafruit_L3GD20_Unified(20); void displaySensorDetails(void) { sensor_t sensor; accel.getSensor(&sensor); Serial.println(F("----------- ACCELEROMETER ----------")); Serial.print (F("Sensor: ")); Serial.println(sensor.name); Serial.print (F("Driver Ver: ")); Serial.println(sensor.version); Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id); Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F(" m/s^2")); Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F(" m/s^2")); Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F(" m/s^2")); Serial.println(F("------------------------------------")); Serial.println(F("")); gyro.getSensor(&sensor); Serial.println(F("------------- GYROSCOPE -----------")); Serial.print (F("Sensor: ")); Serial.println(sensor.name); Serial.print (F("Driver Ver: ")); Serial.println(sensor.version); Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id); Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F(" rad/s")); Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F(" rad/s")); Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F(" rad/s")); Serial.println(F("------------------------------------")); Serial.println(F("")); mag.getSensor(&sensor); Serial.println(F("----------- MAGNETOMETER -----------")); Serial.print (F("Sensor: ")); Serial.println(sensor.name); Serial.print (F("Driver Ver: ")); Serial.println(sensor.version); Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id); Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F(" uT")); Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F(" uT")); Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F(" uT")); Serial.println(F("------------------------------------")); Serial.println(F("")); delay(500); } void setup(void) { Serial.begin(115200); Serial.println(F("Adafruit 9DOF Tester")); Serial.println(""); /* Initialise the sensors */ if(!accel.begin()) { /* There was a problem detecting the ADXL345 ... check your connections */ Serial.println(F("Ooops, no LSM303 detected ... Check your wiring!")); while(1); } if(!mag.begin()) { /* There was a problem detecting the LSM303 ... check your connections */ Serial.println("Ooops, no LSM303 detected ... Check your wiring!"); while(1); } if(!gyro.begin()) { /* There was a problem detecting the L3GD20 ... check your connections */ Serial.print("Ooops, no L3GD20 detected ... Check your wiring or I2C ADDR!"); while(1); } /* Display some basic information on this sensor */ displaySensorDetails(); } void loop(void) { /* Get a new sensor event */ sensors_event_t event; /* Display the results (acceleration is measured in m/s^2) */ accel.getEvent(&event); Serial.print(F("ACCEL ")); Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" "); Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 "); /* Display the results (magnetic vector values are in micro-Tesla (uT)) */ mag.getEvent(&event); Serial.print(F("MAG ")); Serial.print("X: "); Serial.print(event.magnetic.x); Serial.print(" "); Serial.print("Y: "); Serial.print(event.magnetic.y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.magnetic.z); Serial.print(" ");Serial.println("uT"); /* Display the results (gyrocope values in rad/s) */ gyro.getEvent(&event); Serial.print(F("GYRO ")); Serial.print("X: "); Serial.print(event.gyro.x); Serial.print(" "); Serial.print("Y: "); Serial.print(event.gyro.y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.gyro.z); Serial.print(" ");Serial.println("rad/s "); Serial.println(F("")); delay(1000); }