فهرست مطالب:

نحوه اندازه گیری زاویه با MPU-6050 (GY-521): 3 مرحله
نحوه اندازه گیری زاویه با MPU-6050 (GY-521): 3 مرحله

تصویری: نحوه اندازه گیری زاویه با MPU-6050 (GY-521): 3 مرحله

تصویری: نحوه اندازه گیری زاویه با MPU-6050 (GY-521): 3 مرحله
تصویری: Measure Tilt Angle using SCA60C angle sensor - Robojax 2024, نوامبر
Anonim
نحوه اندازه گیری زاویه با MPU-6050 (GY-521)
نحوه اندازه گیری زاویه با MPU-6050 (GY-521)

در این دستورالعمل ، ما زاویه را با آردوینو اندازه گیری می کنیم. برای اندازه گیری زاویه به برخی کابل ها ، Arduino UNO و GY-521 (MPU-6050) نیاز داریم.

مرحله 1: اتصال MPU-6050 به Arduino UNO

اتصال MPU-6050 به Arduino UNO
اتصال MPU-6050 به Arduino UNO

برای اندازه گیری زاویه به کابل های زن و مرد ، سنسور Arduino UNO و GY-521 (MPU-6050) نیاز داریم. ما باید MPU-6050 را به Arduino UNO وصل کنیم همانطور که در تصویر نشان داده شده است. بنابراین،

  • VCC تا 5V (MPU-6050 با 3.3V کار می کند اما GY-521 آن را به 5V افزایش می دهد.) ،
  • GND به GND ،
  • SCL تا A5 ،
  • SDA تا A4 ،
  • ADO به GND ،
  • INT به پین دیجیتال 2.

مرحله 2: کد

کد
کد

اینجا کد است. از I2C استفاده می کند. من برخی از قسمت های کد را از اینترنت گرفتم. (قسمت I2C)

// نوشته شده توسط Ahmet Burkay KIRNIK // اندازه گیری زاویه با MPU-6050 (GY-521)

#عبارتند از

const int MPU_addr = 0x68؛ int16_t AcX، AcY، AcZ، Tmp، GyX، GyY، GyZ ؛

int minVal = 265 ؛ int maxVal = 402؛

دو برابر x ؛ y دو برابر ؛ دو برابر z ؛

void setup () {Wire.begin ()؛ Wire.beginTransmission (MPU_addr) ؛ Wire.write (0x6B) ؛ Wire.write (0) ؛ Wire.endTransmission (درست) ؛ Serial.begin (9600)؛ } void loop () {Wire.beginTransmission (MPU_addr) ؛ Wire.write (0x3B) ؛ Wire.endTransmission (false) ؛ سیم. درخواست از (MPU_addr، 14، true)؛ AcX = Wire.read () << 8 | Wire.read ()؛ AcY = Wire.read () << 8 | Wire.read ()؛ AcZ = Wire.read () << 8 | Wire.read ()؛ int xAng = نقشه (AcX ، minVal ، maxVal ، -90 ، 90) ؛ int yAng = نقشه (AcY ، minVal ، maxVal ، -90 ، 90) ؛ int zAng = نقشه (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 ("-----------------------------------------") ؛ تأخیر (400) ؛ }

مرحله 3: انجام شد

انجام شده!
انجام شده!

انجام شد! اگر کار نمی کند یا به کمک احتیاج دارید ، لطفاً نظر دهید یا یک ایمیل ارسال کنید. آدرس ایمیل من را می توانید از طریق نظرات پیدا کنید. به هر حال ، زبان انگلیسی من چندان خوب نیست ، بنابراین برای انگلیسی بدم عذرخواهی می کنم.

احمد بورکای کیرنیک

استانبول، ترکیه

ویرایش: پس از 2 سال ، زبان انگلیسی من بهتر شد ، بنابراین برخی از اشتباهات را تصحیح کردم.

توصیه شده: