Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.50 KB | None | 0 0
  1.  
  2.  /* SD card attached to SPI bus as follows:
  3.  ** MOSI - pin 11
  4.  ** MISO - pin 12
  5.  ** CLK - pin 13
  6.  ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) */
  7.  
  8. //Carrega a biblioteca SPI
  9. #include <SPI.h>
  10.  
  11. //Carrega a biblioteca SD
  12. #include <SD.h>
  13.  
  14. //Carrega a biblioteca Wire
  15. #include<Wire.h>
  16.  
  17. //Endereco I2C do MPU6050
  18. const int MPU=0x68;  
  19.  
  20. //Arquivo
  21. File myFile;
  22.  
  23. //Variaveis para armazenar valores dos sensores
  24. int AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
  25. unsigned long time=0;
  26. int cont=0;
  27.  
  28.  
  29. void setup(){
  30.   Serial.begin(9600);
  31.   Wire.begin();
  32.   Wire.beginTransmission(MPU);
  33.   Wire.write(0x6B);
  34.    
  35.   //Inicializa o MPU-6050
  36.   Wire.write(0);
  37.   Wire.endTransmission(true);
  38.  
  39.   if (!SD.begin(4)) {
  40.     Serial.println("initialization failed!");
  41.     return;
  42.   }
  43.  
  44.   myFile = SD.open("test.txt", FILE_WRITE);
  45.  
  46.   if (myFile) {
  47.  
  48.    myFile.println("");
  49.    
  50.   }
  51.  
  52.   //myFile.close();
  53.  
  54. }
  55.  
  56. void loop(){
  57.   Wire.beginTransmission(MPU);
  58.   Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  59.   Wire.endTransmission(false);
  60.  
  61.   //Solicita os dados do sensor
  62.   Wire.requestFrom(MPU,14,true);  
  63.  
  64.   //Armazena o valor dos sensores nas variaveis correspondentes
  65.   AcX=Wire.read()<<8|Wire.read(); //0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
  66.   AcY=Wire.read()<<8|Wire.read(); //0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  67.   AcZ=Wire.read()<<8|Wire.read(); //0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  68.   Tmp=Wire.read()<<8|Wire.read(); //0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  69.   GyX=Wire.read()<<8|Wire.read(); //0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  70.   GyY=Wire.read()<<8|Wire.read(); //0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  71.   GyZ=Wire.read()<<8|Wire.read(); //0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
  72.  
  73.    
  74.   //Mostra os valores na serial
  75.   Serial.print("Acel. X = "); Serial.print(AcX);
  76.   Serial.print(" | Y = "); Serial.print(AcY);
  77.   Serial.print(" | Z = "); Serial.print(AcZ);
  78.   Serial.print(" | Gir. X = "); Serial.print(GyX);
  79.   Serial.print(" | Y = "); Serial.print(GyY);
  80.   Serial.print(" | Z = "); Serial.print(GyZ);
  81.   Serial.print(" | Temp = "); Serial.println(Tmp/340.00+36.53);
  82.  
  83.   time = millis();
  84.  
  85.   if (myFile) {
  86.  
  87.    myFile.print(time);
  88.    myFile.print(";");
  89.    myFile.print(GyX);
  90.    myFile.print(";");
  91.    myFile.print(GyY);
  92.    myFile.print(";");
  93.    myFile.println(GyZ);  
  94.    
  95.   }
  96.  
  97.   if(cont==200){
  98.     myFile.close();
  99.     cont = 0;
  100.     myFile = SD.open("test.txt", FILE_WRITE);
  101.   }
  102.  
  103.   cont++;
  104.    
  105.   //Aguarda 150 ms e reinicia o processo
  106.   delay(10);
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement