Innehållsförteckning:

Hur man mäter vinkel med MPU-6050 (GY-521): 3 steg
Hur man mäter vinkel med MPU-6050 (GY-521): 3 steg

Video: Hur man mäter vinkel med MPU-6050 (GY-521): 3 steg

Video: Hur man mäter vinkel med MPU-6050 (GY-521): 3 steg
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, November
Anonim
Hur man mäter vinkel med MPU-6050 (GY-521)
Hur man mäter vinkel med MPU-6050 (GY-521)

I denna instruerbara, kommer vi att mäta vinkel med en Arduino. Vi behöver några kablar, en Arduino UNO och GY-521 (MPU-6050) för att mäta vinkel.

Steg 1: Ansluter MPU-6050 till Arduino UNO

Ansluter MPU-6050 till Arduino UNO
Ansluter MPU-6050 till Arduino UNO

Vi behöver några han-hon-kablar, en Arduino UNO och GY-521 (MPU-6050) sensor för att mäta vinkel. Vi måste ansluta MPU-6050 till Arduino UNO som visas på bilden. Så,

  • VCC till 5V (MPU-6050 fungerar med 3,3V men GY-521 ökar den till 5V.),
  • GND till GND,
  • SCL till A5,
  • SDA till A4,
  • ADO till GND,
  • INT till digital stift 2.

Steg 2: Kod

Koda
Koda

Här är koden. Den använder I2C. Jag tog några delar av koden från internet. (I2C -del)

// Skrivet av Ahmet Burkay KIRNIK // Vinkelmätning med MPU-6050 (GY-521)

#omfatta

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

int minVal = 265; int maxVal = 402;

dubbel x; dubbel y; dubbel z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (true); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (false); 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 ("-----------------------------------------"); fördröjning (400); }

Steg 3: Klar

Gjort!
Gjort!

Det är gjort! Om det inte fungerar eller om du behöver hjälp, vänligen lämna en kommentar eller skicka ett mejl. Du hittar min e -postadress från kommentarer. Förresten, min engelska är inte så bra så jag ber om ursäkt för min dåliga engelska.

Ahmet Burkay KIRNIK

Istanbul, Turkiet

Edit: Efter 2 år blev min engelska bättre så jag korrigerade några misstag.

Rekommenderad: