- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 3 von 3

Thema: MPU6050 Fehler beim Auslesen der Werte

  1. #1

    MPU6050 Fehler beim Auslesen der Werte

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leute!

    Ich sitze nun seit längerem an einem Fehler, den ich selbst nicht mehr durchschaue... Vielleicht sieht ihn einer von euch.

    Aufbau: MPU6050 via I2C an einem ATMEGA1284P --> UART --> XBEE--> PC --> LabView

    Das auslesen aller achsen funktioniert soweit super nach einer Bibliothek von "Davide Gironi" --> Seite http://davidegironi.blogspot.de/2013...l#.VDsRtBa0Pwo

    Nur mir ist jetzt aufgefallen, dass ich immer fehler bei der ACC X Achse bekomme (BLAUE LINIE).

    Siehe Bild im Anhang!

    Anscheinened verliert der X Wert sich irgendwo nur ich finde es einfach nicht. Das Programm ist soweit auf alle möglichkeiten getestet. An LabView oder XBEE liegt es nicht.

    Hier ein paar Code Ausschnitte:

    Code:
    void mpu6050_init() {
    	#if MPU6050_I2CINIT == 1
    	//init I2C
    	i2c_init();
    	_delay_us(10);
    	#endif
    
    	//allow mpu6050 chip clocks to start up
    	_delay_ms(100);
    
    	//set sleep disabled
    	mpu6050_setSleepDisabled();
    	//wake up delay needed sleep disabled
    	_delay_ms(10);
    
    	//set clock source
    	//  it is highly recommended that the device be configured to use one of the gyroscopes (or an external clock source)
    	//  as the clock reference for improved stability
    	mpu6050_writeBits(MPU6050_RA_PWR_MGMT_1, MPU6050_PWR1_CLKSEL_BIT, MPU6050_PWR1_CLKSEL_LENGTH, MPU6050_CLOCK_PLL_XGYRO);
    	//set DLPF bandwidth to 42Hz
    	mpu6050_writeBits(MPU6050_RA_CONFIG, MPU6050_CFG_DLPF_CFG_BIT, MPU6050_CFG_DLPF_CFG_LENGTH, MPU6050_DLPF_BW_42);
        //set sampe rate
    	mpu6050_writeByte(MPU6050_RA_SMPLRT_DIV, 4); //1khz / (1 + 4) = 200Hz
    	//set gyro range
    	mpu6050_writeBits(MPU6050_RA_GYRO_CONFIG, MPU6050_GCONFIG_FS_SEL_BIT, MPU6050_GCONFIG_FS_SEL_LENGTH, MPU6050_GYRO_FS);
    	//set accel range
    	mpu6050_writeBits(MPU6050_RA_ACCEL_CONFIG, MPU6050_ACONFIG_AFS_SEL_BIT, MPU6050_ACONFIG_AFS_SEL_LENGTH, MPU6050_ACCEL_FS);
    
    }
    
    //can not accept many request if we alreay have getattitude requests
    /*
     * get raw data
     */
    void mpu6050_getRawData(int16_t* ax, int16_t* ay, int16_t* az, int16_t* gx, int16_t* gy, int16_t* gz) {
    	mpu6050_readBytes(MPU6050_RA_ACCEL_XOUT_H, 14, (uint8_t *)buffer);
    
        *ax = (((int16_t)buffer[0]) << 8) | buffer[1];
        *ay = (((int16_t)buffer[2]) << 8) | buffer[3];
        *az = (((int16_t)buffer[4]) << 8) | buffer[5];
        *gx = (((int16_t)buffer[8]) << 8) | buffer[9];
        *gy = (((int16_t)buffer[10]) << 8) | buffer[11];
        *gz = (((int16_t)buffer[12]) << 8) | buffer[13];
    }

    ax ist somit der Wert, der fehlerhaft ist.

    Bitte um Hilfe!

    Liebe Grüße
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken LabView.jpg  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Hier ein paar Code Ausschnitte:
    So ein kleines Teil davon hilft nicht viel. Hast du etwas von diesen Bibliothek geändert? Lasse mindestens deine Eigene Code sehen.

    Wieso bisst du so sicher das die Bibliothek von "Davide Gironi" richtig Funktioniert, und es auch nicht an LabView oder XBEE liegen kann. Welcher Tests haben dir davon überzeugt?

  3. #3
    Hi!

    Ja war mir sicher, da ich die Lib schon an einem anderen boad vorher getestet hatte.

    Hab aber heute im Laufe des Tages den Fehler gefunden... Laufzeitfehler! Eine Timer ISR hat den Auslesevorgang am I2C unterbrochen und das regelmäßig. Daher immer nur der Fehler an der einen Achse.

    Trotzdem Danke!

    Lg

Ähnliche Themen

  1. MPU6050 abfragen/auslesen
    Von Julian Werner im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 17.07.2014, 17:03
  2. Kompiling fehler bei der I2Cdevlib und MPU6050 Quellcode
    Von Phill IP im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 05.02.2013, 16:09
  3. Fehler beim Compilieren der Methoden der ServoLib
    Von Magelan1979 im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 13.06.2010, 21:09
  4. RN-MotorControl - Auslesen der festeingestellten Werte
    Von Lurchi im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 1
    Letzter Beitrag: 22.02.2010, 09:08
  5. Auslesen der BIOS-Werte (Temperatur etc) ?
    Von KsB im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 11
    Letzter Beitrag: 30.11.2008, 07:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen