- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 13

Thema: MPU6050 mit Atmega32

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hi,

    also erstmal, ich progge in Bascom, deswegen wirds dir nicht viel helfen, der Ablauf sollte aber 1:1 der gleiche sein.

    Initialisieren:
    Code:
    Sub Init_mpu()
    
    
       '--- (25) Sample Rate Divider = 1 ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 25 , #2                                         'Register 25 Sample Rate Divider (1..8 kHz)
       I2cwbyte &B00000000 , #2                                 'Divider set to 1   (soll)
       I2cstop #2                                               'stop condition
    
       '--- (26) DLPF = 42/44 Hz ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 26 , #2                                         'Register 26 DLPF_CFG (digital lowpass filter) Configuration
       I2cwbyte &B00000011 , #2                                 'Bits 0..2 = 011 (3) - ACC:44Hz, 4.9ms; Gyro:42Hz, 4.8ms
       I2cstop #2                                               'stop condition
    
       '--- (27) Gyro Full Range = +-2000°/s ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 27 , #2                                         'Register 27 Gyro Configuration
       I2cwbyte &B00011000 , #2                                 'Bits 3+4 = 11 - Full Scale Range: +/-2000°/s
       I2cstop #2                                               'stop condition
    
       '--- (28) ACC Full Range = +-2g ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 28 , #2                                         'Register 28 ACC Configuration
       I2cwbyte &B00000000 , #2                                 'Bits 3+4 = 00 - Full Scale Range: +/-2g / No High Pass Filter
       I2cstop #2                                               'stop condition
    
       '--- (107) Power Management 1 ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 107 , #2                                        'Register 107 Power Management 1
       I2cwbyte &B00001011 , #2                                 'No Reset / No Sleep / No Cycle / Temp_Sens: Dis / Clock Source: Z-Gyro
       I2cstop #2
    
    
    End Sub
    Gyro auslesen:
    Code:
    Sub Read_gyro()
    
    
       I2cstart #2
       I2cwbyte Mpuaddw , #2
       I2cwbyte 67 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
    
       I2crbyte Tmp_gyrox(2) , Ack , #2
       I2crbyte Tmp_gyrox(1) , Ack , #2
    
       I2crbyte Tmp_gyroy(2) , Ack , #2
       I2crbyte Tmp_gyroy(1) , Ack , #2
    
       I2crbyte Tmp_gyroz(2) , Ack , #2
       I2crbyte Tmp_gyroz(1) , Nack , #2
    
       I2cstop #2
    
    
       Gyrox = Gx
       Gyroy = 0 - Gy
       Gyroz = 0 - Gz
    
    End Sub
    ACC auslesen:
    Code:
    Sub Read_acc()
    
    
       I2cstart #2
       I2cwbyte Mpuaddw , #2
       I2cwbyte 59 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
    
       I2crbyte Tmp_accx(2) , Ack , #2
       I2crbyte Tmp_accx(1) , Ack , #2
    
       I2crbyte Tmp_accy(2) , Ack , #2
       I2crbyte Tmp_accy(1) , Ack , #2
    
       I2crbyte Tmp_accz(2) , Ack , #2
       I2crbyte Tmp_accz(1) , Nack , #2
    
       I2cstop #2
    
       Accx = Ax
       Accy = Ay
       Accz = Az
    
    
    End Sub
    Gruß
    Chris

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Klar, der Ablauf ist der selbe.
    Wenn man in C seine Funktionen zum lesen/schreiben auf den I2C hat ist der Rest recht flott erledigt.
    Nam et ipsa scientia potestas est..

  3. #3
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Ich hab mir das GY-521 Board geholt auf dem ja auch der MPU 6050 verbaut ist. Jetzt will ich den Sensor aber später mit meinem Propellerchip auslesen.... Doch erst mal will ich mir die Daten am PC kontinuierlich anzeigen lassen um testen zu können wie ich den Chip einstellen muss und wie die Daten überhaupt aussehen. Dazu möchte ich die Daten mit Matlab einlesen und ausgeben (das geht recht einfach so wie es aussieht).

    Allerding fehlt mir noch eine "Referenz" / das Datenblatt wo die Register, Adressen und Co des GY-521 respektive des MPU 6050 zu finden sind. Irgendwie finde ich immer nur Referenzdatenblätter für irgendwelche Boards wo der Chip drauf ist.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Auf der invensense Seite zu dem Sensor ist u. a. das Datenblatt und einiges andere, u.a. auch die Beschreibung der Register verlinkt.

    Gruß
    Malte

Ähnliche Themen

  1. Kompiling fehler bei der I2Cdevlib und MPU6050 Quellcode
    Von Phill IP im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 05.02.2013, 16:09
  2. [ERLEDIGT] MPU6050 Initialisieren mit dem Netduino
    Von Robo-Hero im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 05.02.2013, 12:02
  3. Problem mit optischer Maus an STK500 mit ATMega32
    Von collatz im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 21.04.2008, 20:17
  4. datenaustausch von atmega32 zu atmega32 über spi usw...
    Von roboterheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.10.2007, 22:39
  5. Speicherplatz des ATmega32 + Display an ATmega32
    Von Rob.Anfänger im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 19.11.2006, 01:59

Berechtigungen

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

LiFePO4 Speicher Test