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
  MPU6050 / GY521 auslesen und verstehen Hitikatus 3 347 30.09.2017 11:48
Letzter Beitrag: Hitikatus
  Countdown - Werte ändern am Touchscreen ElAleMaNo 2 375 04.07.2017 18:43
Letzter Beitrag: Tommy56
  Motor Steuerung durch Sensoren Werte Zerebrator 14 794 12.06.2017 14:36
Letzter Beitrag: Franz54
  Arduino Sensor zeigt falsche Werte an Sandro2504 4 419 04.06.2017 09:03
Letzter Beitrag: hotsystems
  Char Werte ausgeben Scotch 5 608 31.03.2017 15:37
Letzter Beitrag: Scotch
  Auftragsprogrammierer gesucht GY521/MPU6050 Nimes 3 450 12.01.2017 09:26
Letzter Beitrag: Nimes
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 1.583 03.07.2016 09:00
Letzter Beitrag: Binatone
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 1.548 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Werte an anderes Programm weiterleiten Typ 2 780 12.03.2016 23:28
Letzter Beitrag: Typ
  AKtuelle Uhrzeit bekommen, RTC oder DFC-Empfänger Cray-1 34 20.209 11.02.2016 23:49
Letzter Beitrag: hotsystems

Gehe zu:


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