Indholdsfortegnelse:

Sådan måles vinkel med MPU-6050 (GY-521): 3 trin
Sådan måles vinkel med MPU-6050 (GY-521): 3 trin

Video: Sådan måles vinkel med MPU-6050 (GY-521): 3 trin

Video: Sådan måles vinkel med MPU-6050 (GY-521): 3 trin
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, November
Anonim
Sådan måles vinkel med MPU-6050 (GY-521)
Sådan måles vinkel med MPU-6050 (GY-521)

I denne Instructable måler vi vinkel med en Arduino. Vi har brug for nogle kabler, en Arduino UNO og GY-521 (MPU-6050) for at måle vinkel.

Trin 1: Tilslutning af MPU-6050 til Arduino UNO

Tilslutning af MPU-6050 til Arduino UNO
Tilslutning af MPU-6050 til Arduino UNO

Vi har brug for nogle han-hun-kabler, en Arduino UNO og GY-521 (MPU-6050) sensor til at måle vinkel. Vi skal tilslutte MPU-6050 til Arduino UNO som vist på billedet. Så,

  • VCC til 5V (MPU-6050 fungerer med 3,3V, men GY-521 øger den til 5V.),
  • GND til GND,
  • SCL til A5,
  • SDA til A4,
  • ADO til GND,
  • INT til digital pin 2.

Trin 2: Kode

Kode
Kode

Her er koden. Den bruger I2C. Jeg tog nogle dele af koden fra internettet. (I2C del)

// Skrevet af Ahmet Burkay KIRNIK // Måling af vinkel med MPU-6050 (GY-521)

#omfatte

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

int minVal = 265; int maxVal = 402;

dobbelt x; dobbelt y; dobbelt z;

ugyldig opsætning () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (sand); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (falsk); Wire.requestFrom (MPU_addr, 14, true); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.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 ("AngleX ="); Serial.println (x);

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

Serial.print ("AngleZ ="); Serial.println (z); Serial.println ("-----------------------------------------"); forsinkelse (400); }

Trin 3: Udført

Færdig!
Færdig!

Det er gjort! Hvis det ikke virker, eller du har brug for hjælp, kan du efterlade en kommentar eller sende en e -mail. Du kan finde min e -mail -adresse fra kommentarer. I øvrigt er mit engelsk ikke så godt, så jeg beklager mit dårlige engelsk.

Ahmet Burkay KIRNIK

Istanbul, Tyrkiet

Edit: Efter 2 år blev mit engelsk bedre, så jeg rettede nogle fejl.

Anbefalede: