Sisukord:

Nurga mõõtmine MPU-6050 (GY-521) abil: 3 sammu
Nurga mõõtmine MPU-6050 (GY-521) abil: 3 sammu

Video: Nurga mõõtmine MPU-6050 (GY-521) abil: 3 sammu

Video: Nurga mõõtmine MPU-6050 (GY-521) abil: 3 sammu
Video: Malliga nurga suuruse mõõtmine, kui mallil on välimise skaala null vasakul pool. 2024, November
Anonim
Nurga mõõtmine MPU-6050 (GY-521) abil
Nurga mõõtmine MPU-6050 (GY-521) abil

Selles juhendis mõõdame nurka Arduino abil. Nurga mõõtmiseks vajame mõningaid kaableid, Arduino UNO ja GY-521 (MPU-6050).

Samm: MPU-6050 ühendamine Arduino UNO-ga

MPU-6050 ühendamine Arduino UNO-ga
MPU-6050 ühendamine Arduino UNO-ga

Vajame nurkade mõõtmiseks mõningaid isas-naine kaableid, Arduino UNO ja GY-521 (MPU-6050) andurit. Peame ühendama MPU-6050 Arduino UNO-ga, nagu pildil näidatud. Niisiis,

  • VCC kuni 5V (MPU-6050 töötab 3.3V, kuid GY-521 suurendab seda 5V-ni),
  • GND kuni GND,
  • SCL kuni A5,
  • SDA kuni A4,
  • ADO GND -le,
  • INT - digitaalne tihvt 2.

2. samm: kood

Kood
Kood

Siin on kood. See kasutab I2C -d. Võtsin mõned koodi osad Internetist. (I2C osa)

// Kirjutas Ahmet Burkay KIRNIK // Nurga mõõtmine MPU-6050-ga (GY-521)

#kaasake

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

int minVal = 265; int maxVal = 402;

kahekordne x; topelt y; kahekordne z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (tõene); Seriaalne algus (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (vale); Wire.requestFrom (MPU_addr, 14, true); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = kaart (AcX, minVal, maxVal, -90, 90); int yAng = kaart (AcY, minVal, maxVal, -90, 90); int zAng = kaart (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 ="); Seeria.println (x);

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

Serial.print ("AngleZ ="); Seeria.println (z); Serial.println ("----------------------------------------"); viivitus (400); }

3. samm: valmis

Valmis!
Valmis!

See on tehtud! Kui see ei tööta või vajate abi, jätke kommentaar või saatke e -kiri. Minu e -posti aadressi leiate kommentaaridest. Muide, mu inglise keel pole nii hea, nii et vabandan oma halva inglise keele pärast.

Ahmet Burkay KIRNIK

Istanbul, Türgi

Edit: 2 aasta pärast läks inglise keel paremaks, nii et parandasin mõned vead.

Soovitan: