Съдържание:

Как да измервате ъгъла с MPU-6050 (GY-521): 3 стъпки
Как да измервате ъгъла с MPU-6050 (GY-521): 3 стъпки

Видео: Как да измервате ъгъла с MPU-6050 (GY-521): 3 стъпки

Видео: Как да измервате ъгъла с MPU-6050 (GY-521): 3 стъпки
Видео: Программирование STM32: Работа с датчиком MPU6050. Using STM32 I2C to read data from MPU6050 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,
  • 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 (невярно); 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 години английският ми стана по -добър, затова поправих някои грешки.

Препоръчано: