Werte auslesen und in Winkel umrechnen

Dependencies:   mbed

Fork of Beschleunigungssensor by ABELI

Files at this revision

API Documentation at this revision

Comitter:
Heidl
Date:
Thu Oct 08 19:25:13 2015 +0000
Parent:
0:d1960beb98fe
Commit message:
Werte auslesen und in Winkel umrechnen

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r d1960beb98fe -r f8c0ebd6096c main.cpp
--- a/main.cpp	Wed Sep 30 16:08:36 2015 +0000
+++ b/main.cpp	Thu Oct 08 19:25:13 2015 +0000
@@ -17,7 +17,8 @@
 double sinX;
 int16_t angleX;
 int16_t gyroXRate;
-int16_t gyroXAngle;
+int16_t gyroXAngleTemp;
+float gyroXAngle;
 
 main() {
 
@@ -25,8 +26,9 @@
     mpu6050Address = setAddress(MPU6050_DEFAULT_ADDRESS);
     MPU6050 mpu6050;
     mpu6050.initialize();           //für Ausgabe in Terminal "//" von debug-Befehlen entfernen
+    mpu6050.debugSerial.printf("DeviceID: %d", mpu6050.getDeviceID());
     //mpu6050.setDLPFMode(MPU6050_DLPF_BW_98);
-    //mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
+    mpu6050.setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
     accelX = mpu6050.getAccelerationX();
     //mpu6050.debugSerial.printf("Beschleunigung in x-Richtung: %d\n\r", accelX);
     sinX = (double)accelX/16384;
@@ -34,20 +36,21 @@
     //mpu6050.debugSerial.printf("Neigung: %f\n\r", angleX*57.296);
   
     Timer stw; stw.start();
-//    Timer gyro; gyro.start();
+    Timer gyro; gyro.start();
     
     while(1)
     {
         CommandHandler();
- /*       if (gyro.read_us()>125)
+        if (gyro.read_us()>125)
         {
             gyro.reset();
             gyroXRate = mpu6050.getRotationX();
             gyroXRate = gyroXRate*0.125+3;
-            gyroXRate = gyroXRate*0.000125;
-            gyroXAngle = gyroXAngle + gyroXRate;
+            gyroXRate = (float)gyroXRate;
+            gyroXAngleTemp = (float)gyroXRate*0.000125*100;
+            gyroXAngle = gyroXAngle + gyroXAngleTemp;
         }
-*/        accelX = mpu6050.getAccelerationX();
+        accelX = mpu6050.getAccelerationX();
         if( (stw.read_ms()>10) ) // 100Hz
         { // dieser Teil wird mit 100Hz aufgerufen
             stw.reset();
@@ -57,7 +60,7 @@
             // nur wenn vom PC aus das Senden eingeschaltet wurde
             // wird auch etwas gesendet
                 ua0.WriteSvI16(1, angleX-1);
-//                ua0.WriteSvI16(2, gyroXAngle);
+                ua0.WriteSvI16(2, gyroXAngle);
             }
         }
     }