Mpiko ya Arduino mpo na MPU-6050 elongo na LCD1602 I2C Display
Na boyekoli oyo, tokoyekola ndenge ya kosangisa MPU-6050 accelerometer mpe gyroscope na LCD1602 display na kosalela I2C communication. MPU-6050 ekopesa ba mesures ya ba angles oyo ekobetama na LCD. Projet oyo ekosalisa yo komona ba angles ya MPU-6050 na temps réel, mpe kokitisa mayele na yo ya ba données ya capteur mpe display interfacing.


Na suka ya boyekoli oyo, okozala na installation oyo ezali kolakisa ba angles X, Y, mpe Z na écran LCD. Oyo ezali ndenge moko ya malamu ya kozwa expérience pratique na ba données ya capteur mpe technologie ya display na ba projets Arduino. Mpo na ndimbola ya koleka, tala vidéo na (na vidéo na 00:00).
Matériel Explicado
Ba composants principales ya projet oyo ezali capteur MPU-6050 mpe module ya display LCD1602. MPU-6050 ezali capteur oyo esangisi accéléromètre ya ba axes misato mpe gyroscope ya ba axes misato, mpe epesaka ba mesures ya ba angles na temps réel. Ezali kosala communication na I2C, oyo esalisi kosangisa na Arduino na ndenge ya pete.
Display LCD1602 esalelaka mpe protocole I2C, oyo esalisi na ba connexions mpe ekitisi motango ya ba pins oyo esengeli mpo na communication. Interface I2C epesaka nzela ete ba appareils ebele bakokoka kosangisama na bus moko, mpe ezali efficace mpo na ba projets oyo ezali na ba capteurs to ba composants ebele.
Détails ya Datasheet
| Fabricant | InvenSense |
|---|---|
| Numéro ya partie | MPU-6050 |
| Tension ya logique/IO | 3.3 V / 5 V |
| Tension ya alimentation | 3.3 V to 5 V |
| Vitesse ya données ya sortie | 1 kHz (max) |
| Étendue ya gyroscope | ±250, ±500, ±1000, ±2000 °/s |
| Étendue ya accéléromètre | ±2g, ±4g, ±8g, ±16g |
| Paquet | QFN |
| Notes / variantes | Ezali na Digital Motion Processor (DMP) |
- Tala adresse I2C (défaut ezali 0x68).
- Kokisa que tension ya alimentation ezali malamu (3.3 V to 5 V).
- Salela ba résistances ya pull-up mpo na ba lignes SDA mpe SCL soki ezali te na carte.
- Kokanisa kosalela ba condensateurs ya découplage pembeni ya ba pins ya puissance mpo na stabilité.
- Vérifier ba connexions mpo na kokitisa ba problèmes ya communication.
Instructions ya Câblage

Mpo na kosangisa MPU-6050 mpe display LCD1602 na Arduino na yo, landa ba connexions oyo:
- Kosangisa pin
VCCya MPU-6050 na pin5Vna Arduino. - Kosangisa pin
GNDya MPU-6050 na pinGNDna Arduino. - Kosangisa pin
SDAya MPU-6050 na pinA4na Arduino. - Kosangisa pin
SCLya MPU-6050 na pinA5na Arduino. - Mpo na display LCD1602, kosangisa pin
VCCna5Vna Arduino. - Kosangisa pin
GNDya LCD1602 na pinGNDna Arduino. - Kosangisa pin
SDAya LCD1602 na pinA4oyo esalelamaki mpo na MPU-6050. - Kosangisa pin
SCLya LCD1602 na pinA5oyo esalelamaki mpo na MPU-6050.
Kokisa ete ba connexions na yo ezali malamu, pamba te câblage ya mabe ekoki kosala ete appareil ebeba to ekoki te kosala communication malamu.
Ba Exemples ya Code mpe Explication
Code ebandi na kosangisa ba bibliothèques oyo esengeli mpo na MPU-6050 mpe display LCD. Exemple oyo elakisi ndenge ya kofungola MPU-6050:
MPU6050 mpu6050(Wire);
Awa, tozali kosala objet MPU6050, oyo ekosalelama mpo na kotanga ba données ya capteur. Na sima, tosengeli kotia appareil na fonction setup():
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
lcd.begin();
lcd.backlight();
}
Code oyo efungolaka communication série, bus I2C, mpe capteur MPU-6050. Efungolaka mpe LCD mpe epelaka backlight na yango. Boucle ezali na logique ya kozongisa mpe kolakisa ba angles:
void loop() {
mpu6050.update();
lcd.clear();
lcdDisplay(0, 0, "X:", 2, 0, mpu6050.getAngleX());
lcdDisplay(13, 0, "Y:", 0, 1, mpu6050.getAngleY());
lcdDisplay(7, 1, "Z:", 9, 1, mpu6050.getAngleZ());
delay(100);
}
Na boucle oyo, ba angles ya X, Y, mpe Z ezongisamaka mpe elakisamaka na LCD. Fonction lcdDisplay() esalelamaka mpo na kobongisa format ya sortie. Okoki komona code mobimba na nsé ya article.
Démonstration / Nini Okoki Kozela
Ntango installation esili mpe code ekomami, okomona ba angles ya X, Y, mpe Z elakisami na LCD na temps réel. Soki ba connexions nyonso ezali malamu, display ekobongisama na millisecondes nkoto moko na moko, mpe kolakisa orientation ya MPU-6050 na ntango oyo.
Ba problèmes ya mbala mingi ezali kokisa ete ba connexions I2C ezali malamu mpe que alimentation ezali stable. Soki MPU-6050 efungolami malamu te, okoki komona données ya mabe to ata données te na LCD (na vidéo na 01:15).
/*
*
* This code is basic usage of the MPU-6050 accelerometer and gyroscope.
* Running this code, you will get angles only.
* The angles at X, Y, and Z are displayed on the LCD1602-I2C display module.
*
* Library and code have been taken from:
* https://github.com/tockn/MPU6050_tockn
*
* Updated by Ahmad Shamshiri on July 05, 2018 at 22:19 in Ajax, Ontario, Canada
* for Robojax.com
* Get this code from Robojax.com
* Watch video instructions for this code at: https://youtu.be/uIz6WIis4dc
*
* You will need to watch two videos before following the instructions in this video:
* 1-MPU6050 Introduction video and code: https://youtu.be/uhh7ik02aDc
* 2-LCD1602 with I2C module video and code: https://youtu.be/q9YC_GVHy5A
*/
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
// initialize the LCD,
lcd.begin();
// Turn on the backlight and print a message.
lcd.backlight();
}
void loop() {
mpu6050.update();
Serial.print("angleX : ");
Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");
Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");
Serial.println(mpu6050.getAngleZ());
lcd.clear();// clearn previous values from screen
lcdDisplay(
// to print X:
0, // character 0
0, // line 0
"X:",
// to print AngleX
2, // character 2
0, // line 0
mpu6050.getAngleX()
);
lcdDisplay(
// to print Y:
13, // character 13
0, // line 0
"Y:",
// to print AngleY
0, // character 0
1, // line 1
mpu6050.getAngleY()
);
lcdDisplay(
// to print Z:
7, // character 7
1, // line 1
"Z:",
// to print AngleZ
9, // character 9
1, // line 0
mpu6050.getAngleZ()
);
delay(100);
}// loop end
/*
* lcdDisplay(int tc, int tr, String title, int vc, int vr, float value)
* displays value and title on LCD1602
* How to use:
* If you want to display: "Voltage: 13.56mV" starting from the first character
* on the second row.
* use:
* lcdDisplay(0, 1, "Voltage: ", 13.56)
*
* tc is the character number (0)
* tr is the row number in the LCD (1)
* title is the text ("Voltage:")
* vc is the character number for the value
* vr is the row number for the value
* value is the value (13.56)
*/
void lcdDisplay(int tc, int tr, String title, int vc, int vr, float value)
{
// Robojax.com MPU6050 Demo
lcd.setCursor (tc,tr); //
lcd.print(title);
lcd.setCursor (vc,vr); //
lcd.print(value);
}
Nko o na nki.
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
AmazonPurchase MPU-6050 from Amazonamzn.to
-
eBayPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
Mokili na bisika
-
L'extérieurManufacturer websiteinvensense.com
Fichiers📁
Maktabat ya Arduino (zip)
-
LCD1602 LCD Arduino library from Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB -
Bibliothèque Arduino pour MPU9250
robojax-MPU9250-master.zip3.38 MB
Fritzing File
-
Module ya LCD LCD1602-I2C na ba fils 4
LCD1602-I2C.fzpz0.01 MB -
MPU-6050 Board GY-521
MPU-6050 Board GY-521.fzpz0.01 MB
Mabala a mangwe
-
MPU6050_tockn-masterBibliothèque ya Arduino mpo na module ya accéléromètre mpe gyroscope MPU6050. Epesaka ba fonctions mpo na kotanga ba données ya accélération, gyro, mpe température, na calibration mpe calcul ya angle. Ebongisami mpo na kosangisa pete na ba projets ya koyoka mouvement.
robojax-MPU6050_tockn-master.zip