- Vereiste componenten:
- MPU6050 Gyrosensor:
- Omschrijving:
- Schakelschema en uitleg:
- Uitleg over programmeren
MPU6050- sensor heeft veel functies ten opzichte van de enkele chip. Het bestaat uit een MEMS-versnellingsmeter, een MEMS-gyroscoop en temperatuursensor. Deze module is zeer nauwkeurig bij het omzetten van analoge waarden naar digitaal omdat het een 16bit analoog naar digitaal converterhardware voor elk kanaal heeft. Deze module is in staat om het x-, y- en z-kanaal tegelijkertijd vast te leggen. Het heeft een I2C-interface om te communiceren met de hostcontroller. Deze MPU6050-module is een compacte chip met zowel een versnellingsmeter als een gyroscoop. Dit is een zeer handig apparaat voor veel toepassingen zoals drones, robots, bewegingssensoren. Het wordt ook wel gyroscoop of drieassige versnellingsmeter genoemd.
Vandaag gaan we in dit artikel deze MPU6050-gyroscoop koppelen aan Arduino en de waarden weergeven op een 16x2 LCD.
Vereiste componenten:
- Arduino Uno
- MPU-6050
- 10K POT
- Doorverbindingsdraad
- Breadboard
- USB-kabel
- Stroomvoorziening
MPU6050 Gyrosensor:
MPU-6050 is een 8-pins 6-assige gyro en versnellingsmeter in een enkele chip. Deze module werkt standaard op I2C seriële communicatie, maar kan worden geconfigureerd voor SPI-interface door het register te configureren. Voor I2C heeft dit SDA- en SCL-lijnen. Bijna alle pinnen zijn multifunctioneel, maar hier gaan we alleen verder met de I2C-modus pinnen.
Pin-configuratie:
Vcc: - deze pin wordt gebruikt voor het voeden van de MPU6050-module ten opzichte van aarde
GND: - dit is een aardpen
SDA: - SDA-pin wordt gebruikt voor gegevens tussen controller en mpu6050-module
SCL: - SCL-pin wordt gebruikt voor klokingang
XDA: - Dit is sensor I2C SDA Datalijn voor het configureren en uitlezen van externe sensoren ((optioneel) niet gebruikt in ons geval)
XCL: - Dit is sensor I2C SCL kloklijn voor het configureren en uitlezen van externe sensoren ((optioneel) niet gebruikt in ons geval)
ADO: - I2C Slave Address LSB (niet van toepassing in ons geval)
INT: - Onderbrekingspin voor indicatie van gegevens gereed.
Omschrijving:
In dit artikel tonen we temperatuur-, gyro- en versnellingsmeterwaarden via LCD met MPU6050 met Arduino. Deze module geeft ons rijwaarden en genormaliseerde waarden in de uitvoer, maar rijwaarden zijn niet stabiel, dus hier hebben we genormaliseerde waarden op het LCD-scherm. Als u alleen de accelerometerwaarde wilt, kunt u ook Accelerometer ADXL335 met Arduino gebruiken.
In dit project hebben we eerst een temperatuurwaarde op het LCD-scherm getoond en na 10 seconden tonen we gyro-waarden en na 10 seconden hebben we accelerometerwaarden zoals weergegeven in de onderstaande afbeeldingen:
Schakelschema en uitleg:
Het schakelschema, om de MPU6050 met Arduino te verbinden, is heel eenvoudig, hier hebben we een LCD en MPU6050 gebruikt. En hier hebben we een laptop USB-voeding gebruikt. Een 10k pot wordt gebruikt om de helderheid van het LCD-scherm te regelen. In verband met MPU6050 hebben we 5 verbindingen gemaakt waarbij we de 3.3v voeding en aarde van MPU6050 hebben aangesloten op de 3.3v en aarde van Arduino. SCL- en SDA-pinnen van MPU6050 zijn verbonden met Arduino's A4- en A5-pin. En INT-pin van MPU6050 is verbonden met interrupt 0 van Arduino (D2). LCD's RS, RW en EN zijn direct verbonden met 8, gnd en 9 van Arduino. Datapin is rechtstreeks verbonden met digitale pincode 10, 11, 12 en 13.
Uitleg over programmeren
Programmeergedeelte is ook eenvoudig voor dit project. Hier hebben we deze MPU6050-bibliotheek gebruikt om deze met Arduino te communiceren. Dus allereerst moeten we de MPU6050-bibliotheek downloaden van GitHub en deze in Arduino IDE installeren.
Hierna kunnen we voorbeeldcodes in het voorbeeld vinden. De gebruiker kan die code testen door ze rechtstreeks naar Arduino te uploaden en kan waarden zien via een seriële monitor. Of de gebruiker kan onze code aan het einde van het artikel gebruiken om waarden ook op LCD en seriële monitor weer te geven.
Bij het coderen hebben we enkele vereiste bibliotheken opgenomen, zoals MPU6050 en LCD.
# omvatten
In de setup- functie initialiseren we beide apparaten en schrijven we een welkomstbericht via het LCD-scherm
leegte setup () {lcd.begin (16,2); lcd.createChar (0, graden); Serial.begin (9600); Serial.println ("Initialize MPU6050"); terwijl (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Apparaat niet gevonden"); Serial.println ("Kon geen geldige MPU6050-sensor vinden, controleer bedrading!"); vertraging (500); } count = 0; mpu.calibrateGyro (); mpu.setThreshold (3); In loop- functie hebben we elke 10 seconden drie functies aangeroepen voor het weergeven van temperatuur, gyroscoop en versnellingsmeter op het LCD-scherm. Deze drie functies zijn tempShow, gyroShow en accelShow , je kunt die functies controleren in de volledige Arduino-code die aan het einde van dit artikel wordt gegeven:
leegte loop () {lcd.clear (); lcd.print ("Temperatuur"); lange st = millis (); Serial.println ("Temperatuur"); while (millis ()
MPU6050-gyro en versnellingsmeter worden beide gebruikt om de positie en oriëntatie van elk apparaat te detecteren. Gyro gebruikt de zwaartekracht van de aarde om de x-, y- en z-asposities te bepalen en de versnellingsmeter detecteert op basis van de snelheid van de verandering van beweging. We hebben de accelerometer al met Arduino gebruikt in veel van onze projecten, zoals:
- Op versnellingsmeter gebaseerde robot met handgebaren
- Op Arduino gebaseerd waarschuwingssysteem voor voertuigongevallen
- Aardbevingsdetectoralarm met Arduino