MPU6050- anturilla on monia toimintoja yhdellä sirulla. Se koostuu MEMS-kiihtyvyysanturista, MEMS-gyro- ja lämpötila-anturista. Tämä moduuli on erittäin tarkka muunnettaessa analogiset arvot digitaalisiksi, koska siinä on 16-bittinen analogia-digitaalimuunnin-laitteisto kullekin kanavalle. Tämä moduuli pystyy sieppaamaan x-, y- ja z-kanavia samanaikaisesti. Siinä on I2C-liitäntä kommunikoida isäntäohjaimen kanssa. Tämä MPU6050-moduuli on kompakti siru, jossa on sekä kiihtyvyysanturi että gyro. Tämä on erittäin hyödyllinen laite moniin sovelluksiin, kuten droneihin, robotteihin, liiketunnistimiin. Sitä kutsutaan myös gyroskoopiksi tai kolminkertaisen akselin kiihtyvyysmittariksi.
Tänään tässä artikkelissa aiomme liittää tämän MPU6050-gyroskoopin Arduinoon ja näyttää arvot yli 16x2 LCD: n.
Vaaditut komponentit:
- Arduino Uno
- MPU-6050
- 10K POT
- Neulalanka
- Leipälauta
- USB kaapeli
- Virtalähde
MPU6050-gyroanturi:
MPU-6050 on 8-napainen 6-akselinen gyro- ja kiihtyvyysanturi yhdessä sirussa. Tämä moduuli toimii oletusarvoisesti I2C-sarjaliikenteessä, mutta se voidaan määrittää SPI-liitäntää varten määrittämällä sen rekisteri. I2C: lle tässä on SDA- ja SCL-linjat. Lähes kaikki nastat ovat monitoimisia, mutta tässä on kyse vain I2C-moodin nastoista.
PIN-määritys:
Vcc: - tätä tapia käytetään MPU6050-moduulin virtalähteeseen suhteessa maahan
GND: - tämä on maadoitettu tappi
SDA: - SDA-nastaa käytetään ohjaimen ja mpu6050-moduulin väliseen dataan
SCL: - SCL-nastaa käytetään kellotuloon
XDA: - Tämä on anturi I2C SDA-tietolinja ulkoisten antureiden konfigurointiin ja lukemiseen ((valinnainen) ei käytetä meidän tapauksessamme)
XCL: - Tämä on anturi I2C SCL -kellolinja ulkoisten antureiden konfigurointiin ja lukemiseen ((valinnainen) ei käytetä meidän tapauksessamme)
ADO: - I2C-orjaosoite LSB (ei sovellettavissa meidän tapauksessamme)
INT: - Keskeytystappi tietojen ilmoittamiseen valmiina.
Kuvaus:
Tässä artikkelissa näytetään lämpötila-, gyro- ja kiihtyvyysanturilukemat LCD-näytöllä MPU6050: n ja Arduinon kanssa. Tämä moduuli antaa meille riviarvot ja normalisoidut arvot lähdössä, mutta riviarvot eivät ole vakaita, joten tässä näytetään normalisoidut arvot LCD-näytöllä. Jos haluat vain kiihtyvyysmittarin arvon, voit käyttää myös Kiihtyvyysmittaria ADXL335 Arduinon kanssa.
Tässä projektissa olemme ensin osoittaneet lämpötila-arvon LCD-näytöllä ja 10 sekunnin kuluttua näytämme gyro-arvot ja 10 sekunnin kuluttua kiihtyvyysmittarin lukemat alla olevien kuvien mukaisesti:
Piirikaavio ja selitys:
Piirikaavio, vuorovaikutuksessa MPU6050 Arduino, on hyvin yksinkertainen tässä on käytetty LCD ja MPU6050. Ja tässä olemme käyttäneet kannettavan tietokoneen USB-virtalähdettä. 10k pottia käytetään nestekidenäytön kirkkauden säätämiseen. MPU6050: n yhteydessä olemme tehneet 5 liitäntää, joissa olemme liittäneet MPU6050: n 3.3v: n virtalähteen ja maadoituksen Arduinon 3.3v: hen ja maahan. MPU6050: n SCL- ja SDA-nastat on liitetty Arduinon A4- ja A5-nastoihin. Ja MPU6050: n INT-nasta on kytketty Arduinon (D2) keskeytykseen 0. LCD: n RS, RW ja EN on kytketty suoraan Arduinon 8, gnd ja 9. Datanasta on kytketty suoraan digitaalisiin pin-numeroihin 10, 11, 12 ja 13.
Ohjelmoinnin selitys
Ohjelmointiosa on myös helppoa tälle projektille. Tässä olemme käyttäneet tätä MPU6050-kirjastoa liittääkseen sen Arduinoon. Joten meidän on ensin ladattava MPU6050-kirjasto GitHubista ja asennettava se Arduino IDE: hen.
Sen jälkeen voimme löytää esimerkkikoodit esimerkistä. Käyttäjä voi testata koodin lataamalla ne suoraan Arduinoon ja nähdä arvot sarjavalvojan kautta. Tai käyttäjä voi käyttää artikkelin lopussa annettuja koodeja näyttämään arvot myös LCD-näytöllä ja sarjamoduulilla.
Koodauksessa olemme sisällyttäneet joitain vaadittuja kirjastoja, kuten MPU6050 ja LCD.
#sisältää
Vuonna setup toiminto, meillä alustaa molemmissa laitteissa ja kirjoitusoikeudet tervetulotoivotus yli LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, aste); Sarjan alku (9600); Serial.println ("Alusta MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Laitetta ei löydy"); Serial.println ("Voimassa olevaa MPU6050-anturia ei löydy, tarkista johdotus!"); viive (500); } määrä = 0; mpu.kalibroiGyro (); mpu.setThreshold (3); Vuonna silmukka Function, olemme kutsuneet kolme toimintoa jokaisessa 10seconds varten näyttämällä lämpötila, gyroskooppi, ja kiihtyvyysanturi lukemista LCD. Nämä kolme toimintoa ovat tempShow, gyroShow ja accelShow , voit tarkistaa nämä toiminnot täydellisessä Arduino-koodissa, joka on tämän artikkelin lopussa:
void loop () {lcd.clear (); lcd.print ("Lämpötila"); pitkä st = millis (); Serial.println ("Lämpötila"); kun taas (millis ()
MPU6050-gyro- ja kiihtyvyysanturia käytetään molempien laitteiden sijainnin ja suunnan havaitsemiseen. Gyro määrittää maan painovoiman avulla x-, y- ja z-akseliasennot ja kiihtyvyysanturi havaitsee liikkeen muutosnopeuden perusteella. Olemme jo käyttäneet kiihtyvyysanturia Arduinon kanssa monissa projekteissamme, kuten:
- Kiihtyvyysmittaripohjainen käsieleen ohjaama robotti
- Arduino-pohjainen ajoneuvon onnettomuuksien hälytysjärjestelmä
- Maanjäristyksen ilmaisinhälytys Arduinolla