İçindekiler:

MPU-6050(GY-521) İle Açı Nasıl Ölçülür: 3 Adım
MPU-6050(GY-521) İle Açı Nasıl Ölçülür: 3 Adım

Video: MPU-6050(GY-521) İle Açı Nasıl Ölçülür: 3 Adım

Video: MPU-6050(GY-521) İle Açı Nasıl Ölçülür: 3 Adım
Video: MPU6050 İvme ve Gyro Sensör Arduino ile Nasıl Kullanılır - Kütüphaneli ve Kütüphanesiz Örnekler 2024, Kasım
Anonim
MPU-6050(GY-521) ile Açı Nasıl Ölçülür
MPU-6050(GY-521) ile Açı Nasıl Ölçülür

Bu Eğitilebilir Tabloda, bir Arduino ile açıyı ölçeceğiz. Açıyı ölçmek için bazı kablolara, bir Arduino UNO ve GY-521(MPU-6050) ihtiyacımız var.

Adım 1: MPU-6050'yi Arduino UNO'ya Bağlama

MPU-6050'yi Arduino UNO'ya Bağlama
MPU-6050'yi Arduino UNO'ya Bağlama

Açı ölçmek için bazı erkek-dişi kablolara, bir Arduino UNO ve GY-521(MPU-6050) sensörüne ihtiyacımız var. MPU-6050'yi resimdeki gibi Arduino UNO'ya bağlamamız gerekiyor. Yani,

  • VCC'den 5V'a (MPU-6050, 3.3V ile çalışır ancak GY-521 bunu 5V'a çıkarır.),
  • GND'den GND'ye,
  • SCL'den A5'e,
  • SDA'dan A4'e
  • ADO'dan GND'ye,
  • INT'den dijital pin 2'ye.

2. Adım: Kodlayın

kod
kod

İşte kod. I2C kullanır. Kodun bazı kısımlarını internetten aldım.(I2C kısmı)

//Yazan Ahmet Burkay KIRNIK//MPU-6050 ile Açı Ölçümü(GY-521)

#Dahil etmek

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

int minDeğer=265; int maxVal=402;

Çift x; çift y; çift z;

geçersiz kurulum(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); Seri.başla(9600); } void loop(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); Wire.endTransmission(yanlış); Wire.requestFrom(MPU_addr, 14, true); AcX=Wire.read()<<8|Wire.read(); AcY=Tel.read()<<8|Tel.read(); AcZ=Wire.read()<<8|Wire.read(); int xAng = harita(AcX, minVal, maxVal, -90, 90); int yAng = harita(AcY, minVal, maxVal, -90, 90); int zAng = harita(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= "); Seri.println(x);

Serial.print("AngleY= "); Seri.println(y);

Serial.print("AngleZ= "); Seri.println(z); Serial.println("-------------------------------------------"); gecikme(400); }

Adım 3: Bitti

Tamamlandı!
Tamamlandı!

Bitti! Çalışmazsa veya yardıma ihtiyacınız varsa, lütfen yorum bırakın veya e-posta gönderin. E-posta adresimi yorumlardan bulabilirsiniz. Bu arada, İngilizcem o kadar iyi değil, bu yüzden kötü İngilizcem için özür dilerim.

Ahmet Burkay KIRNIK

İstanbul, Türkiye

Düzenleme: 2 yıl sonra İngilizcem düzeldi, bazı hataları düzelttim.

Önerilen: