Code Arduino pour MPU-6050 avec écran LCD1602 I2C

Code Arduino pour MPU-6050 avec écran LCD1602 I2C

Dans ce tutoriel, nous apprendrons comment interfacer l'accéléromètre et gyroscope MPU-6050 avec un écran LCD1602 en utilisant la communication I2C. Le MPU-6050 fournira des mesures d'angles qui seront affichées sur le LCD. Ce projet vous aidera à visualiser en temps réel les angles du MPU-6050, améliorant votre compréhension des données du capteur et de l'interfaçage d'affichage.

LCD1602-I2C display module with 4 wires

À la fin de ce tutoriel, vous aurez un montage fonctionnel affichant les angles X, Y et Z sur l'écran LCD. C'est un excellent moyen d'acquérir une expérience pratique des données de capteurs et des technologies d'affichage dans les projets Arduino. Pour plus de précisions, consultez la vidéo (à 00:00).

Matériel expliqué

Les principaux composants de ce projet sont le capteur MPU-6050 et le module d'affichage LCD1602. Le MPU-6050 est un capteur polyvalent qui combine un accéléromètre 3 axes et un gyroscope 3 axes, fournissant des mesures d'angles en temps réel. Il communique via le bus I2C, ce qui permet une intégration transparente avec l'Arduino.

L'afficheur LCD1602 utilise également le protocole I2C, ce qui simplifie le câblage et réduit le nombre de broches nécessaires pour la communication. L'interface I2C permet de connecter plusieurs appareils sur le même bus, ce qui la rend efficace pour les projets comportant plusieurs capteurs ou composants.

Détails de la fiche technique

FabricantInvenSense
Numéro de pièceMPU-6050
Tension logique/E/S3,3 V / 5 V
Tension d'alimentation3,3 V à 5 V
Débit de données en sortie1 kHz (max.)
Plage du gyroscope±250, ±500, ±1000, ±2000 °/s
Plage de l'accéléromètre±2g, ±4g, ±8g, ±16g
PaquetQFN
Notes / variantesInclut un processeur de mouvement numérique (DMP)

  • Vérifiez l'adresse I2C (par défaut 0x68).
  • Vérifiez que la tension d'alimentation est correcte (3.3 V ou 5 V).
  • Utilisez des résistances de tirage (pull-up) pour les lignes SDA et SCL si elles ne sont pas déjà présentes sur la carte.
  • Pensez à utiliser des condensateurs de découplage près des broches d'alimentation pour assurer la stabilité.
  • Vérifiez les connexions de câblage pour éviter les problèmes de communication.

Instructions de câblage

Arduino wiring for MPU-6050 with LCD

Pour connecter le MPU-6050 et l'écran LCD1602 à votre Arduino, suivez ces connexions :

  • Connectez leVCCbroche du MPU-6050 vers le5Vbroche sur l'Arduino.
  • Connectez leGNDbroche du MPU-6050 vers leGNDbroche sur l'Arduino.
  • Connecter leSDAbroche du MPU-6050 vers leA4broche de l'Arduino.
  • Connectez leSCLbroche du MPU-6050 vers leA5broche de l'Arduino.
  • Pour l'afficheur LCD1602, connectez leVCCépingler à5Vsur l'Arduino.
  • Connectez leGNDbroche de l'écran LCD1602 vers leGNDbroche de l'Arduino.
  • Connectez leSDAbroche du LCD1602 vers la mêmeA4broche utilisée pour le MPU-6050.
  • Connectez leSCLbroche du LCD1602 à la mêmeA5broche utilisée pour le MPU-6050.

Veillez à revérifier vos connexions, car un câblage incorrect peut entraîner un dysfonctionnement de l'appareil ou l'empêcher de communiquer correctement.

Exemples de code et guide pas à pas

Le code commence par inclure les bibliothèques nécessaires pour le MPU-6050 et l'affichage LCD. L'extrait suivant montre comment initialiser le MPU-6050 :

MPU6050 mpu6050(Wire);

Ici, nous instancions leMPU6050objet, qui sera utilisé pour lire les données du capteur. Ensuite, nous devons configurer l'appareil dans lesetup()fonction:

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
  lcd.begin();
  lcd.backlight();   
}

Ce code initialise la communication série, le bus I2C et le capteur MPU-6050. Il initialise également l'écran LCD et allume son rétroéclairage. La boucle contient la logique pour mettre à jour et afficher les 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);
}

Dans cette boucle, les angles pour X, Y et Z sont mis à jour et affichés sur l'écran LCD. La fonctionlcdDisplay()est utilisé pour formater correctement la sortie. Vous pouvez trouver le code complet chargé sous l'article.

Démonstration / À quoi s'attendre

Lorsque la configuration est terminée et que le code a été téléversé, vous devriez voir les angles pour X, Y et Z affichés sur l'écran LCD en temps réel. Si tout est correctement câblé, l'affichage se rafraîchira toutes les 100 millisecondes, indiquant l'orientation actuelle du MPU-6050.

Parmi les pièges courants : s'assurer que les connexions I2C sont correctes et que l'alimentation est stable. Si le MPU-6050 n'est pas correctement initialisé, vous pouvez obtenir des données incorrectes ou aucune donnée sur l'écran LCD (dans la vidéo à 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++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Bibliothèques Arduino (zip)

Fichier Fritzing