Accelerometer mpu 9250

#include <Wire.h>
#include <SPI.h>
#include <SD.h>
//#include <SoftwareSerial.h>
//SoftwareSerial Serial1(8, 9); // RX, TX

// LOS PINES SCL Y SDA PARA NANO SON A5 Y A4
// Los pines de conexión para el modulo SD son Cs=10, 11 (MOSI), 12 (MISO), 13 (SCK)
// El del sensor es el pin 3

#define MPU9250_ADDRESS 0x68 // Direcciòn de la IMU

#define ACC_FULL_SCALE_2_G 0x00
#define ACC_FULL_SCALE_4_G 0x01 // Configuraciòn del ACELEROMETRO
#define ACC_FULL_SCALE_8_G 0x10
#define ACC_FULL_SCALE_16_G 0x8

#define TEMP_OUT_H 0x41 //
#define Ts 10 //Tiempo de muestreo en ms

int pin_cs = 10; // Pin cs de la SD
const int pwPin1=3; // Lectura del sensor de proximidad por PWM.
float sensor,mm; // variables para el senrsor de proximidad.
const int ledSD=2; // Led de inicio de SD
File Archivo; // Variable ti file para crear el archivo en la SD
String datos; // Archiva los datos para la SD
//String archivo = “DATOS.txt”;
//String archivo = “DATOS.xls”; // Nombre del archivo en la SD
String archivo = “DATOS.csv”;
char val; // Variable de dato de activación de lectura
unsigned long int Tejec;
unsigned long int tim;
int LED_PIN = 4;
float g=9.775828;

float x;
float y;
float z;

//Función de que lee n Bytes
void I2Cread(uint8_t Address, uint8_t Register, uint8_t Nbytes, uint8_t* Data)
{
// Conjunto de direcciones del registro.
Wire.beginTransmission(Address);
Wire.write(Register);
Wire.endTransmission();

// Leyendo n Bytes
Wire.requestFrom(Address, Nbytes);
uint8_t index=0;
while (Wire.available())
Data[index++]=Wire.read();
}

// Escribe un byte (Data) en el dispositivo (Address) en el registro (Register)
void I2CwriteByte(uint8_t Address, uint8_t Register, uint8_t Data)
{
// Conjunto de direcciones del registro
Wire.beginTransmission(Address);
Wire.write(Register);
Wire.write(Data);
Wire.endTransmission();
}

void inicializarSD(){
if (!SD.begin(pin_cs )) {
#define FALLO_TARJETA
// Serial.println(“Falla en SD, o no presente”);
}
else {
#define TARJETA_ACEPTADA
// digitalWrite(ledSD,HIGH);
//Serial.println(“SD inicializada”);
}
}

// LECTURA SENSOR ULTRASONICO
void read_sensor (){
sensor = pulseIn(pwPin1, HIGH);
mm = sensor/1000;
}

void lecturaIMU(){
// ::: Acelerometro
read_sensor();

// Ajuste del filtro de paso bajo a 5 Hz para acelerómetro
I2CwriteByte(MPU9250_ADDRESS,29,0x06);

// Configuraciòn del rango del acelerometro
I2CwriteByte(MPU9250_ADDRESS,28,ACC_FULL_SCALE_2_G);

// Lectura del acelerometro
uint8_t Buf[14];
I2Cread(MPU9250_ADDRESS,0x3B,14,Buf);

// Crear 16 valores de bits de 8 bits de datos

// Acelerometro
int16_t ax=-(Buf[0]<<8 | Buf[1]);
int16_t ay=-(Buf[2]<<8 | Buf[3]);
int16_t az=Buf[4]<<8 | Buf[5];

x=(g * ax) / 16384;
y=(gay)/16384; // conversion del ADC a aceleración.
z=(g
az)/16384;
//datos = String(mm)+"\t"+String(ax)+"\t"+String(ay)+"\t"+String(az)+"\n";
datos = String(mm)+","+String(x)+","+String(y)+","+String(z)+"\n";
// datos = String(mm)+"\t"+String(x)+"\t"+String(y)+"\t"+String(z)+"\n";
}

void guardando(){
//Archivo = SD.open(“DATOS.xls”, FILE_WRITE);
Archivo = SD.open(archivo, FILE_WRITE);
//read_sensor();
lecturaIMU();
Serial.print(datos);
//Serial.print(datos);
Archivo.print(datos);
Archivo.close();
}
void capturaMuestra(){
Tejec = millis();
//Serial.println(Tejec);
guardando();
tim=millis()- Tejec;
//Serial.print(Tejec);
//Serial.print("\t");
//Serial.println(tim);
while((millis() - Tejec) < Ts);
}
void setup()
{

Wire.begin();
Serial.begin(115200);
Serial.setTimeout(5);
//Serial1.begin(115200);
inicializarSD();
pinMode(pwPin1, INPUT);
pinMode(4, OUTPUT);
pinMode(2,OUTPUT);
// pinMode(9, OUTPUT); //Led indicaador para sensor

// // Ajuste del filtro de paso bajo a 5 Hz para acelerómetro
// I2CwriteByte(MPU9250_ADDRESS,29,0x06);
//
// // Configuraciòn del rango del acelerometro
// I2CwriteByte(MPU9250_ADDRESS,28,ACC_FULL_SCALE_2_G);
}

// Bucle principal, leer y mostrar datos
void loop()
{
#ifdef TARJETA_ACEPTADA
digitalWrite(ledSD,HIGH);
//Serial.println(“SD inicializada”);
if(Serial.available()){
val = Serial.read();
// Serial.println(val);
}
if (val==’+’){
//archivo = String(random(100000))+".xls";
//archivo = String(random(100000))+".txt";
archivo = String(random(100000))+".csv";
while(1){
digitalWrite(LED_PIN,HIGH);
//imu2SD();
capturaMuestra();
if(Serial.available()){
val = Serial.read();
//Serial.println(val);
}
if(val==’-’) {
digitalWrite(LED_PIN,LOW);
break;
}
}
}
#endif
}

Congratulations, you posted code.

So what do you want? Do you have a question?