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
  ESP8266 esp-12e development board & BME280 falsche Werte Lurchi 6 235 09.05.2017 00:54
Letzter Beitrag: Lurchi
  Char Werte ausgeben Scotch 5 298 31.03.2017 15:37
Letzter Beitrag: Scotch
  Auftragsprogrammierer gesucht GY521/MPU6050 Nimes 3 323 12.01.2017 09:26
Letzter Beitrag: Nimes
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 960 03.07.2016 09:00
Letzter Beitrag: Binatone
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 1.044 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Werte an anderes Programm weiterleiten Typ 2 636 12.03.2016 23:28
Letzter Beitrag: Typ
  AKtuelle Uhrzeit bekommen, RTC oder DFC-Empfänger Cray-1 34 18.364 11.02.2016 23:49
Letzter Beitrag: hotsystems
  digitale Werte trotz Stromunterbrechung nicht verlieren goldfisch 63 5.558 06.01.2016 13:17
Letzter Beitrag: Bitklopfer
  Arduino werte auslesen Atwist 11 1.720 21.11.2015 20:58
Letzter Beitrag: hotsystems
  gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte" HaWe 22 1.645 05.11.2015 18:42
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


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