Мазмуну:

MPU-6050 (GY-521) менен бурчту кантип өлчөө керек: 3 кадам
MPU-6050 (GY-521) менен бурчту кантип өлчөө керек: 3 кадам

Video: MPU-6050 (GY-521) менен бурчту кантип өлчөө керек: 3 кадам

Video: MPU-6050 (GY-521) менен бурчту кантип өлчөө керек: 3 кадам
Video: Measure Tilt Angle using SCA60C angle sensor - Robojax 2024, Ноябрь
Anonim
MPU-6050 (GY-521) менен бурчту кантип өлчөө керек
MPU-6050 (GY-521) менен бурчту кантип өлчөө керек

Бул Нускамада биз бурчту Arduino менен өлчөйбүз. Бурчту өлчөө үчүн бизге 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кө чейин,
  • GNDге ADO,
  • Санарип PIN 2ге INT.

2 -кадам: Код

Code
Code

Бул жерде код. Бул I2C колдонот. Мен коддун кээ бир бөлүктөрүн интернеттен алдым. (I2C бөлүгү)

// Ахмет Буркай КИРНИК жазган // 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 (жалган); Wire.requestFrom (MPU_addr, 14, чындык); 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 жылдан кийин англис тилим жакшырды, андыктан мен кээ бир каталарды оңдодум.

Сунушталууда: