INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
werte vom MPU6050 gy521 bekommen
18.12.2015, 21:11 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015 21:12 von max1798.)
Beitrag #1
werte vom MPU6050 gy521 bekommen
hey,
Ich habe einen MPU6050 (gy521) an einen arduino leonardo angeschlossen
Mein Problem ist, dass ich als Werte für sämtliche achsen fast immer nur -1 erhalte
Würde mich über jede Unterstützung freuen, da ich mich mit dem arduino erst seit kurzem beschäftige =)
hatte den code davor mit einem arduino UNO genutzt wo es einwandfrei funktionierte. Habe aber leider keine Ahnung was da bei der Programmierung unterschiedlich ist. Undecided

angeschlossen habe ich
vcc-vcc
GND-GND
SCL-port3
SDA-port2

was soweit auch stimmen sollte, da ich teilweise auch ganz gute werte bekomme

Code:
#include <Wire.h>

#define sensor_address 0x68

void setup()
{
  // 9600 Baut reichen zum Betrachten aus.
  Serial.begin(9600);
  Wire.begin();

  delay(1000);
  
  // Powermanagement aufrufen
  // Sensor schlafen und Reset, Clock wird zunächst von Gyro-Achse Z verwendet  
  Serial.println("Powermanagement aufrufen - Reset");
  SetConfiguration(0x6B, 0x80);
  
  // Kurz warten
  delay(500);
  
  // Powermanagement aufrufen
  // Sleep beenden und Clock von Gyroskopeachse X verwenden
  Serial.println("Powermanagement aufrufen - Clock festlegen");
  SetConfiguration(0x6B, 0x03);
  
  delay(500);
  
  // Konfigruation  aufrufen
  // Default => Acc=260Hz, Delay=0ms, Gyro=256Hz, Delay=0.98ms, Fs=8kHz
  Serial.println("Konfiguration aufrufen - Default Acc = 260Hz, Delay = 0ms");
  SetConfiguration(0x1A, 0x00);
  
  // Leerzeichen
  Serial.println("");
}

void loop()
{
  byte result[14];
  // Anfangs Adresse von Beschleunigungssensorachse X
  result[0] = 0x3B;
  
   // Aufruf des MPU6050 Sensor
  Wire.beginTransmission(sensor_address);
  // Anfangsadresse verwenden.
  Wire.write(result[0]);
  Wire.endTransmission();
  // 14 Bytes kommen als Antwort
  Wire.requestFrom(sensor_address, 14);
  // Bytes im Array ablegen
  for(int i = 0; i < 14; i++)
  {
    result[i] = Wire.read();
  }
  
  // Zwei Bytes ergeben eine Achsen Wert und könenn

// per Bit Shifting  zusammengelegt werden.
  
  // Beschleunigungssensor
  int acc_X = (((int)result[0]) << 8) | result[1];
  int acc_Y = (((int)result[2]) << 8) | result[3];
  int acc_Z = (((int)result[4]) << 8) | result[5];
  
  // Temperatur sensor
  int temp = (((int)result[6]) << 8) | result[7];
  
  // Gyroskopesensor
  int gyr_X = (((int)result[8]) << 8) | result[9];
  int gyr_Y = (((int)result[10]) << 8) | result[11];
  int gyr_Z = (((int)result[12]) << 8) | result[13];
  
  // Ausgabe
  Serial.print("ACC X:\t");
  Serial.print(acc_X); Serial.print("\t");
  Serial.print("Y:\t");
  Serial.print(acc_Y); Serial.print("\t");
  Serial.print("Z:\t");
  Serial.print(acc_Z); Serial.print("\t");
  Serial.print("Temperatur:\t");
  Serial.print(temp); Serial.print("\t");
  Serial.print("Gyroskope X:\t");
  Serial.print(gyr_X); Serial.print("\t");
  Serial.print("Y:\t");
  Serial.print(gyr_Y); Serial.print("\t");
  Serial.print("Z:\t");
  Serial.print(gyr_Z); Serial.println("\t");
  delay(1000);
}

void SetConfiguration(byte reg, byte setting)
{
   // Aufruf des MPU6050 Sensor
  Wire.beginTransmission(sensor_address);
  // Register Aufruf
  Wire.write(reg);
  // Einstellungsbyte für das Register senden
  Wire.write(setting);
  Wire.endTransmission();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 463 03.07.2016 09:00
Letzter Beitrag: Binatone
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 732 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Werte an anderes Programm weiterleiten Typ 2 433 12.03.2016 23:28
Letzter Beitrag: Typ
  AKtuelle Uhrzeit bekommen, RTC oder DFC-Empfänger Cray-1 34 15.506 11.02.2016 23:49
Letzter Beitrag: hotsystems
  digitale Werte trotz Stromunterbrechung nicht verlieren goldfisch 63 4.218 06.01.2016 13:17
Letzter Beitrag: Bitklopfer
  Arduino werte auslesen Atwist 11 1.317 21.11.2015 20:58
Letzter Beitrag: hotsystems
  gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte" HaWe 22 1.445 05.11.2015 18:42
Letzter Beitrag: Thorsten Pferdekämper
Exclamation MPU6050 Kaiduino 18 3.772 20.10.2015 19:44
Letzter Beitrag: Marduino_UNO
  Werte aus der SD - Karte zuordnen Gandalf 19 1.905 12.09.2015 12:48
Letzter Beitrag: Gandalf
  DHT22-Werte via Funk MeisterQ 27 4.865 27.07.2015 21:48
Letzter Beitrag: MeisterQ

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste