Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* Pleasedontcode.com **********
- Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- - Terms and Conditions:
- You have a non-exclusive, revocable, worldwide, royalty-free license
- for personal and commercial use. Attribution is optional; modifications
- are allowed, but you're responsible for code maintenance. We're not
- liable for any loss or damage. For full terms,
- please visit pleasedontcode.com/termsandconditions.
- - Project: "MPU6050 Initialization"
- - Source Code compiled for: Arduino Uno
- - Source Code created on: 2024-06-16 14:26:09
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* flight controller for brushed motors using radio */
- /* frequency transmitters and receiver like flysky , */
- /* radiolink */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <Wire.h>
- #include <FastIMU.h> // https://github.com/LiquidCGS/FastIMU
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- /***** DEFINITION OF DIGITAL INPUT PINS *****/
- const uint8_t gyro_MPU6050_Interrupt_PIN_D2 = 2;
- /***** DEFINITION OF I2C PINS *****/
- const uint8_t gyro_MPU6050_I2C_PIN_SDA_A4 = A4;
- const uint8_t gyro_MPU6050_I2C_PIN_SCL_A5 = A5;
- const uint8_t gyro_MPU6050_I2C_SLAVE_ADDRESS = 0x68; // 104 in decimal
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- MPU6050 IMU; // Initialize MPU6050 with FastIMU library
- /****** GLOBAL VARIABLES *****/
- bool dmpReady = false; // set true if DMP init was successful
- uint16_t packetSize; // expected DMP packet size (default is 42 bytes)
- uint8_t fifoBuffer[64]; // FIFO storage buffer
- Quaternion q; // [w, x, y, z] quaternion container
- float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector
- volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high
- void dmpDataReady() {
- mpuInterrupt = true;
- }
- void setup(void) {
- // put your setup code here, to run once:
- Wire.begin();
- Wire.setClock(400000); // 400kHz I2C clock. Comment this line if having compilation difficulties
- Serial.begin(115200);
- while (!Serial); // wait for Leonardo enumeration, others continue immediately
- Serial.println(F("Initializing I2C devices..."));
- calData calib = { 0 }; // Calibration data
- int err = IMU.init(calib, gyro_MPU6050_I2C_SLAVE_ADDRESS);
- if (err != 0) {
- Serial.print(F("Error initializing IMU: "));
- Serial.println(err);
- while (true) { ; }
- }
- pinMode(gyro_MPU6050_Interrupt_PIN_D2, INPUT);
- Serial.println(F("Testing device connections..."));
- Serial.println(IMU.init(calib, gyro_MPU6050_I2C_SLAVE_ADDRESS) == 0 ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
- Serial.println(F("\nSend any character to begin DMP programming and demo: "));
- while (!Serial.available());
- while (Serial.available() && Serial.read());
- Serial.println(F("Initializing DMP..."));
- IMU.setGyroRange(250); // Set gyro range to ±250 degrees/second
- IMU.setAccelRange(2); // Set accelerometer range to ±2g
- // configure LED for output
- pinMode(LED_BUILTIN, OUTPUT);
- }
- void loop(void) {
- // wait for MPU interrupt or extra packet(s) available
- IMU.update();
- AccelData accel;
- GyroData gyro;
- MagData mag;
- IMU.getAccel(&accel);
- IMU.getGyro(&gyro);
- if (IMU.hasMagnetometer()) {
- IMU.getMag(&mag);
- }
- Serial.print("Accel: ");
- Serial.print(accel.accelX);
- Serial.print(", ");
- Serial.print(accel.accelY);
- Serial.print(", ");
- Serial.print(accel.accelZ);
- Serial.print(" | Gyro: ");
- Serial.print(gyro.gyroX);
- Serial.print(", ");
- Serial.print(gyro.gyroY);
- Serial.print(", ");
- Serial.print(gyro.gyroZ);
- if (IMU.hasMagnetometer()) {
- Serial.print(" | Mag: ");
- Serial.print(mag.magX);
- Serial.print(", ");
- Serial.print(mag.magY);
- Serial.print(", ");
- Serial.print(mag.magZ);
- }
- Serial.println();
- // blink LED to indicate activity
- digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
- }
- /* END CODE */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement