Inhaltsverzeichnis:

So messen Sie den Winkel mit MPU-6050 (GY-521) - Gunook
So messen Sie den Winkel mit MPU-6050 (GY-521) - Gunook

Video: So messen Sie den Winkel mit MPU-6050 (GY-521) - Gunook

Video: So messen Sie den Winkel mit MPU-6050 (GY-521) - Gunook
Video: Arduino Nano and GY-521 MPU6050 3-осевой гироскоп, 3-осевой акселерометр и DMP 2024, November
Anonim
So messen Sie den Winkel mit MPU-6050 (GY-521)
So messen Sie den Winkel mit MPU-6050 (GY-521)

In diesem Instructable messen wir den Winkel mit einem Arduino. Wir benötigen einige Kabel, ein Arduino UNO und GY-521 (MPU-6050), um den Winkel zu messen.

Schritt 1: Anschließen des MPU-6050 an Arduino UNO

Anschließen des MPU-6050 an Arduino UNO
Anschließen des MPU-6050 an Arduino UNO

Wir benötigen einige männlich-weibliche Kabel, einen Arduino UNO und einen GY-521 (MPU-6050) Sensor, um den Winkel zu messen. Wir müssen MPU-6050 wie im Bild gezeigt mit Arduino UNO verbinden. So,

  • VCC auf 5V (MPU-6050 arbeitet mit 3,3V, aber GY-521 erhöht es auf 5V.),
  • Masse zu Masse,
  • SCL bis A5,
  • SDA auf A4,
  • ADO zu GND,
  • INT zu digitalem Pin 2.

Schritt 2: Code

Code
Code

Hier ist der Code. Es verwendet I2C. Ich habe einige Teile des Codes aus dem Internet genommen. (I2C-Teil)

// Geschrieben von Ahmet Burkay KIRNIK // Winkelmessung mit MPU-6050 (GY-521)

#enthalten

const int MPU_addr=0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;

int minVal=265; int maxVal=402;

Doppel-X; doppeltes y; doppeltes z;

Void setup () { Wire.begin (); Wire.beginTransmission(MPU_addr); Wire.write (0x6B); Wire.write(0); Wire.endTransmission(true); Serial.begin (9600); aufrechtzuerhalten. Void Schleife () { Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU_addr, 14, true); AcX=Wire.read()<<8|Wire.read(); AcY=Draht.read()<<8|Draht.read(); AcZ=Draht.read()<<8|Draht.read(); int xAng = map(AcX, minVal, maxVal, -90, 90); int yAng = map(AcY, minVal, maxVal, -90, 90); int zAng = map(AcZ, minVal, maxVal, -90, 90);

x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI); y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI); z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);

Serial.print ("WinkelX = "); Serial.println(x);

Serial.print ("WinkelY = "); Serial.println(y);

Serial.print("WinkelZ="); Serial.println(z); Serial.println("--------------------------------------------------"); Verzögerung (400); }

Schritt 3: Fertig

Fertig!
Fertig!

Es ist fertig! Wenn es nicht funktioniert oder Sie Hilfe benötigen, hinterlassen Sie bitte einen Kommentar oder senden Sie eine E-Mail. Meine E-Mail-Adresse finden Sie in den Kommentaren. Mein Englisch ist übrigens nicht so gut, also entschuldige ich mich für mein schlechtes Englisch.

Ahmet Burkay KIRNIK

Istanbul, Türkei

Edit: Nach 2 Jahren wurde mein Englisch besser, also habe ich einige Fehler korrigiert.

Empfohlen: