Mundarija:

MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: 3 qadam
MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: 3 qadam

Video: MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: 3 qadam

Video: MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: 3 qadam
Video: Lesson 18: Using Tile Angle Sensor SCA60C | Arduino Step By Step Course 2024, Noyabr
Anonim
MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin
MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin

Ushbu yo'riqnomada biz burchakni Arduino bilan o'lchaymiz. Burchakni o'lchash uchun bizga Arduino UNO va GY-521 (MPU-6050) kabellari kerak.

1-qadam: MPU-6050 ni Arduino UNO ga ulash

MPU-6050 ni Arduino UNO ga ulash
MPU-6050 ni Arduino UNO ga ulash

Burchakni o'lchash uchun bizga erkak-ayol kabellari, Arduino UNO va GY-521 (MPU-6050) sensori kerak. Biz rasmda ko'rsatilgandek MPU-6050 ni Arduino UNO ga ulashimiz kerak. Shunday qilib,

  • VCC 5Vgacha (MPU-6050 3.3V bilan ishlaydi, lekin GY-521 uni 5V ga oshiradi),
  • GND dan GNDgacha,
  • SCL -A5,
  • SDA dan A4 gacha,
  • ADO - GND,
  • Raqamli pin 2 ga INT.

2 -qadam: kod

Kod
Kod

Mana kod. U I2C dan foydalanadi. Kodning bir qismini Internetdan oldim. (I2C qismi)

// Ahmet Burkay KIRNIK tomonidan yozilgan // MPU-6050 bilan burchak o'lchovi (GY-521)

#qo'shing

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

int minVal = 265; int maxVal = 402;

er -xotin x; ikki marta y; er -xotin z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (haqiqiy); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (noto'g'ri); Wire.requestFrom (MPU_addr, 14, to'g'ri); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = xarita (AcX, minVal, maxVal, -90, 90); int yAng = xarita (AcY, minVal, maxVal, -90, 90); int zAng = xarita (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 ("-----------------------------------------"); kechikish (400); }

3 -qadam: Bajarildi

Bajarildi!
Bajarildi!

Bajarildi! Agar u ishlamasa yoki sizga yordam kerak bo'lsa, sharh qoldiring yoki elektron pochta xabarini yuboring. Mening elektron pochta manzilimni sharhlardan topishingiz mumkin. Aytgancha, mening ingliz tilim unchalik yaxshi emas, shuning uchun ingliz tilining yomonligi uchun uzr so'rayman.

Ahmet Burkay KIRNIK

Istanbul/TURKIYA

Tartibga solish: 2 yildan so'ng ingliz tilim yaxshilandi, shuning uchun ba'zi xatolarni tuzatdim.

Tavsiya: