Luka Code

Mpiko ya Arduino mpo na MPU-6050 elongo na LCD1602 I2C Display

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.

LCD1602-I2C display module with 4 wires

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

FabricantInvenSense
Numéro ya partieMPU-6050
Tension ya logique/IO3.3 V / 5 V
Tension ya alimentation3.3 V to 5 V
Vitesse ya données ya sortie1 kHz (max)
Étendue ya gyroscope±250, ±500, ±1000, ±2000 °/s
Étendue ya accéléromètre±2g, ±4g, ±8g, ±16g
PaquetQFN
Notes / variantesEzali 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

Arduino wiring for MPU-6050 with LCD

Mpo na kosangisa MPU-6050 mpe display LCD1602 na Arduino na yo, landa ba connexions oyo:

  • Kosangisa pin VCC ya MPU-6050 na pin 5V na Arduino.
  • Kosangisa pin GND ya MPU-6050 na pin GND na Arduino.
  • Kosangisa pin SDA ya MPU-6050 na pin A4 na Arduino.
  • Kosangisa pin SCL ya MPU-6050 na pin A5 na Arduino.
  • Mpo na display LCD1602, kosangisa pin VCC na 5V na Arduino.
  • Kosangisa pin GND ya LCD1602 na pin GND na Arduino.
  • Kosangisa pin SDA ya LCD1602 na pin A4 oyo esalelamaki mpo na MPU-6050.
  • Kosangisa pin SCL ya LCD1602 na pin A5 oyo 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).

Images

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
MPU-6050-module-1
MPU-6050-module-1
MPU-6050-module-2
MPU-6050-module-2
MPU-6050-module-schematic
MPU-6050-module-schematic
MPU-6050-module-1
MPU-6050-module-1
Arduino wiring for MPU-6050 with LCD
Arduino wiring for MPU-6050 with LCD
118-Arduino code for MPU-6050 accelerometer and gyroscope sensor (all data)
Langue: C++
/*
 * 
 * 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.

Mokili na bisika

Fichiers📁

Maktabat ya Arduino (zip)

Fritzing File

Mabala a mangwe

  • MPU6050_tockn-master
    Bibliothè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