0% found this document useful (0 votes)
97 views3 pages

Code For MPU6000

This code is designed to interface with an MPU-6000 accelerometer and gyroscope sensor over I2C. It initializes the sensor settings, reads the accelerometer and gyroscope data registers, converts the raw values, and prints the acceleration and rotation measurements to the serial monitor. The sensor is configured for a full scale range of 2000 dps for gyroscope and +/-16g for accelerometer. The code then reads the sensor data in a loop and outputs the acceleration and rotation values in each axis.

Uploaded by

Wafik Adel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views3 pages

Code For MPU6000

This code is designed to interface with an MPU-6000 accelerometer and gyroscope sensor over I2C. It initializes the sensor settings, reads the accelerometer and gyroscope data registers, converts the raw values, and prints the acceleration and rotation measurements to the serial monitor. The sensor is configured for a full scale range of 2000 dps for gyroscope and +/-16g for accelerometer. The code then reads the sensor data in a loop and outputs the acceleration and rotation values in each axis.

Uploaded by

Wafik Adel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

// Distributed with a free-will license.

// Use it any way you want, profit or free, provided it fits in the licenses of its
associated works.
// MPU-6000
// This code is designed to work with the MPU-6000_I2CS I2C Mini Module available
from ControlEverything.com.
// https://www.controleverything.com/content/Accelorometer?sku=MPU-6000_I2CS#tabs-
0-product_tabset-2

#include <Wire.h>

// MPU-6000 I2C address is 0x68(104)


#define Addr 0x68

void setup()
{
// Initialise I2C communication as Master
Wire.begin();
// Initialise serial communication, set baud rate = 9600
Serial.begin(9600);

// Start I2C transmission


Wire.beginTransmission(Addr);
// Select gyroscope configuration register
Wire.write(0x1B);
// Full scale range = 2000 dps
Wire.write(0x18);
// Stop I2C transmission
Wire.endTransmission();

// Start I2C transmission


Wire.beginTransmission(Addr);
// Select accelerometer configuration register
Wire.write(0x1C);
// Full scale range = +/-16g
Wire.write(0x18);
// Stop I2C transmission
Wire.endTransmission();

// Start I2C transmission


Wire.beginTransmission(Addr);
// Select power management register
Wire.write(0x6B);
// PLL with xGyro reference
Wire.write(0x01);
// Stop I2C transmission
Wire.endTransmission();
delay(300);
}

void loop()
{
unsigned int data[6];

// Start I2C transmission


Wire.beginTransmission(Addr);
// Select data register
Wire.write(0x3B);
// Stop I2C transmission
Wire.endTransmission();

// Request 6 bytes of data


Wire.requestFrom(Addr, 6);

// Read 6 byte of data


if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}

// Convert the data


int xAccl = data[0] * 256 + data[1];
int yAccl = data[2] * 256 + data[3];
int zAccl = data[4] * 256 + data[5];

// Start I2C transmission


Wire.beginTransmission(Addr);
// Select data register
Wire.write(0x43);
// Stop I2C transmission
Wire.endTransmission();

// Request 6 bytes of data


Wire.requestFrom(Addr, 6);

// Read 6 byte of data


if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}
// Convert the data
int xGyro = data[0] * 256 + data[1];
int yGyro = data[2] * 256 + data[3];
int zGyro = data[4] * 256 + data[5];

// Output data to serial monitor


Serial.print("Acceleration in X-Axis : ");
Serial.println(xAccl);
Serial.print("Acceleration in Y-Axis : ");
Serial.println(yAccl);
Serial.print("Acceleration in Z-Axis : ");
Serial.println(zAccl);
Serial.print("X-Axis of Rotation : ");
Serial.println(xGyro);
Serial.print("Y-Axis of Rotation : ");
Serial.println(yGyro);
Serial.print("Z-Axis of Rotation : ");
Serial.println(zGyro);
delay(500);
}

You might also like