Mpu6050 Value an TFT LCD ausgeben

OP #4186382
Lesenswert?

Hallo in die Runde,

Ich bin dabei Versuche mit meinem Arduino Mega2560 anzustellen, dabei 
wollte ich nun einen MPU benutzen (beim Nano hat alles geklappt, jetzt 
beim Mega klappt leider nix mehr)

Folgendes Problem, an welchem ich gerade scheitere:

In meinem Sketch möchte ich zunächst die z.b. Z-Werte als Zahl im 
Display wiedergeben.
Serial.print(" |AcZ");--- im serial Monitor alles toll, x,y,und Z Achse 
werden komplett als Zahl wiedergegeben.

MyGLCD.print("AcZ| ", posx, posy);--- im Display erscheint nur der Text 
AcZ, aber kein Wert.

Ich habe es auch mit int Value etc versucht, kam aber auch kein Wert, 
nur der Text in Klammern.
Weiter habe ich versucht, myGLCD.println, myGLCD.write, hier kommen nur 
Fehlermeldungen mit Achtung Char to Constante, oder zu viele 
Parameter...

Meine Komponenten sind:
arduino mega 2560 Board
Sainsmart TFt LCD 2,8"(ILI9325)
Arduino shield für Display
Los von Henning Carlson "UTFT01"

Gerne lade ich bei Bedarf den Sketch hoch.

An was kann das liegen, dass die werte nicht im Display angezeigt 
werden?

Grüße Matthias
Gast #4187147
Lesenswert?

Spontan würde ich vermuten, dass du die Zahl zuerst in einen String 
umwandeln musst.(z.B. mit sprintf)

Du könntest außerdem probieren, die Variablen und den Text nacheinander 
darzustellen, also mit jewils einzelnen Befehlen..
1
MyGLCD.print("AcZ| ");
2
MyGLCD.print(posx);
3
MyGLCD.print(posy);
Zwischen den Zahlen dann evtl. noch ein Leerzeichen.

Viele Grüße
OP #4187150
Lesenswert?

So ist der Sketch vom Beispiel.

// MPU-6050 Short Example Sketch
// By Arduino User JohnChi
// August 17, 2014
// Public Domain
#include<Wire.h>
const int MPU=0x68;  // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
  Wire.begin();
  Wire.beginTransmission(MPU);
  Wire.write(0x6B);  // PWR_MGMT_1 register
  Wire.write(0);     // set to zero (wakes up the MPU-6050)
  Wire.endTransmission(true);
  Serial.begin(9600);
}
void loop(){
  Wire.beginTransmission(MPU);
  Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  Wire.endTransmission(false);
  Wire.requestFrom(MPU,14,true);  // request a total of 14 registers
  AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C 
(ACCEL_XOUT_L)
  AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E 
(ACCEL_YOUT_L)
  AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 
(ACCEL_ZOUT_L)
  Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 
(TEMP_OUT_L)
  GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 
(GYRO_XOUT_L)
  GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 
(GYRO_YOUT_L)
  GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 
(GYRO_ZOUT_L)
  Serial.print("AcX = "); Serial.print(AcX);
  Serial.print(" | AcY = "); Serial.print(AcY);
  Serial.print(" | AcZ = "); Serial.print(AcZ);
  Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53);  //equation 
for temperature in degrees C from datasheet
  Serial.print(" | GyX = "); Serial.print(GyX);
  Serial.print(" | GyY = "); Serial.print(GyY);
  Serial.print(" | GyZ = "); Serial.println(GyZ);
  delay(333);
}

AyZ sollte demnach Z Achse wiedergeben... So denke ich, aber kommt 
nichts im Display

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren