/********* 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: Sensor Logging
- Source Code NOT compiled for: Arduino Uno
- Source Code created on: 2024-08-17 00:22:59
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* Strat and log data intonsd card */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include
#include
#include // Include the MPU6050 library
#include // Include the SdFat library
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF I2C PINS *****/
const uint8_t Accmano_MPU6050_I2C_PIN_SDA_A4 = A4; // SDA pin for I2C
const uint8_t Accmano_MPU6050_I2C_PIN_SCL_A5 = A5; // SCL pin for I2C
const uint8_t Accmano_MPU6050_I2C_SLAVE_ADDRESS = 104; // I2C address for MPU6050
/***** DEFINITION OF SPI PINS *****/
const uint8_t Sd_SDCardModule_SPI_PIN_MOSI_D11 = 11; // MOSI pin for SD card
const uint8_t Sd_SDCardModule_SPI_PIN_MISO_D12 = 12; // MISO pin for SD card
const uint8_t Sd_SDCardModule_SPI_PIN_SCLK_D13 = 13; // SCLK pin for SD card
const uint8_t Sd_SDCardModule_SPI_PIN_CS_D10 = 10; // CS pin for SD card
/****** DEFINITION OF LIBRARIES CLASS INSTANCES *****/
MPU6050 mpu; // Create an instance of the MPU6050 class
SdFs sd; // Create an instance of the SdFs class (corrected from SdFat to SdFs)
FsFile file; // Create an instance of the FsFile class to handle file operations
void setup(void)
{
// Initialize Serial communication for debugging
Serial.begin(115200);
while (!Serial) {
; // Wait for serial port to connect
}
// Initialize I2C communication for MPU6050
Wire.begin();
mpu.initialize(); // Initialize the MPU6050
// Check if the MPU6050 is connected
if (mpu.testConnection()) {
Serial.println("MPU6050 connection successful");
} else {
Serial.println("MPU6050 connection failed");
}
// Initialize SPI for SD card
pinMode(Sd_SDCardModule_SPI_PIN_CS_D10, OUTPUT);
SPI.begin();
// Initialize SD card
if (!sd.begin(Sd_SDCardModule_SPI_PIN_CS_D10)) { // Use sd object for initialization
Serial.println("SD card initialization failed!");
return; // Stop if SD card initialization fails
}
Serial.println("SD card initialized successfully");
// Open a file for writing
if (!file.open("data.txt", FILE_WRITE)) {
Serial.println("Failed to open file for writing");
return; // Stop if file opening fails
}
Serial.println("File opened successfully");
}
void loop(void)
{
// Read data from the MPU6050
Vector rawAccel = mpu.getAcceleration();
Vector rawGyro = mpu.getRotation();
// Log data to the serial monitor
Serial.print("Accel: ");
Serial.print(rawAccel.XAxis);
Serial.print(", ");
Serial.print(rawAccel.YAxis);
Serial.print(", ");
Serial.print(rawAccel.ZAxis);
Serial.print(" | Gyro: ");
Serial.print(rawGyro.XAxis);
Serial.print(", ");
Serial.print(rawGyro.YAxis);
Serial.print(", ");
Serial.println(rawGyro.ZAxis);
// Write data to the SD card
file.print("Accel: ");
file.print(rawAccel.XAxis);
file.print(", ");
file.print(rawAccel.YAxis);
file.print(", ");
file.print(rawAccel.ZAxis);
file.print(" | Gyro: ");
file.print(rawGyro.XAxis);
file.print(", ");
file.print(rawGyro.YAxis);
file.print(", ");
file.println(rawGyro.ZAxis);
// Flush the file buffer to ensure data is written
file.flush();
// Delay for a while before the next reading
delay(1000); // Adjust the delay as needed
}
/* END CODE */