Sadržaj:

Kako mjeriti kut pomoću MPU-6050 (GY-521): 3 koraka
Kako mjeriti kut pomoću MPU-6050 (GY-521): 3 koraka

Video: Kako mjeriti kut pomoću MPU-6050 (GY-521): 3 koraka

Video: Kako mjeriti kut pomoću MPU-6050 (GY-521): 3 koraka
Video: Korištenje kutomjera - Kako izmjeriti veličinu kuta manjeg od 180°? 2024, Juli
Anonim
Kako mjeriti kut pomoću MPU-6050 (GY-521)
Kako mjeriti kut pomoću MPU-6050 (GY-521)

U ovom Instructable -u mjerit ćemo kut s Arduinom. Za mjerenje kuta potrebni su nam neki kabeli, Arduino UNO i GY-521 (MPU-6050).

Korak 1: Spajanje MPU-6050 na Arduino UNO

Spajanje MPU-6050 na Arduino UNO
Spajanje MPU-6050 na Arduino UNO

Trebamo neke muško-ženske kablove, Arduino UNO i GY-521 (MPU-6050) senzor za mjerenje kuta. Moramo spojiti MPU-6050 na Arduino UNO kao što je prikazano na slici. Dakle,

  • VCC na 5V (MPU-6050 radi sa 3.3V, ali GY-521 ga povećava na 5V.),
  • GND u GND,
  • SCL do A5,
  • SDA do A4,
  • ADO u GND,
  • INT na digitalni pin 2.

Korak 2: Kodirajte

Kod
Kod

Evo koda. Koristi I2C. Uzeo sam neke dijelove koda s interneta. (I2C dio)

// Napisao Ahmet Burkay KIRNIK // Mjerenje kuta s MPU-6050 (GY-521)

#include

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

int minVal = 265; int maxVal = 402;

double x; double y; double 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, tačno); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = mapa (AcX, minVal, maxVal, -90, 90); int yAng = mapa (AcY, minVal, maxVal, -90, 90); int zAng = mapa (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 ("-----------------------------------------"); kašnjenje (400); }

Korak 3: Gotovo

Gotovo!
Gotovo!

Gotovo je! Ako ne radi ili vam je potrebna pomoć, ostavite komentar ili pošaljite e -poruku. Moju adresu e -pošte možete pronaći u komentarima. Inače, moj engleski nije tako dobar pa se izvinjavam na lošem engleskom.

Ahmet Burkay KIRNIK

Istanbul/TURSKA

Edit: Nakon 2 godine moj engleski je postao bolji pa sam ispravio neke greške.

Preporučuje se: