Visualizzazione dei dati del sensore MPU-6050 su LCD 1602 o LCD2004 con Arduino
In questo tutorial impareremo come visualizzare i dati del sensore MPU-6050 su un LCD 1602 o LCD2004 usando Arduino. L'MPU-6050 è un sensore versatile che combina un giroscopio a 3 assi e un accelerometro a 3 assi, rendendolo ideale per varie applicazioni come il rilevamento del movimento e l'orientamento. Collegando questo sensore a un display LCD, possiamo visualizzare i dati del sensore in tempo reale, inclusi angoli e temperatura.

Man mano che progrediamo in questo progetto, tratteremo i componenti hardware necessari, i dettagli del cablaggio e l'implementazione del codice. Questo ti aiuterà a capire come configurare il MPU-6050 e visualizzarne l'uscita su un LCD. Per ulteriori chiarimenti sul codice, assicurati di guardare il video (nel video a 00:00).
Hardware spiegato
I componenti principali per questo progetto sono la scheda Arduino, il sensore MPU-6050 e il display LCD (1602 o 2004). L'Arduino funge da microcontrollore che elabora i dati provenienti dal sensore MPU-6050 e li invia al display LCD.
Il sensore MPU-6050 utilizza la comunicazione I2C per inviare dati all'Arduino. Include un accelerometro e un giroscopio, che gli permettono di rilevare il movimento e l'orientamento. Il display LCD viene utilizzato per mostrare gli angoli ricavati dai dati del sensore. Anche questo si collega all'Arduino tramite I2C, il che semplifica il cablaggio e la comunicazione.
Dettagli della scheda tecnica
| Produttore | Invensense |
|---|---|
| Numero di parte | MPU-6050 |
| Tensione logica/I/O | 3.3 V / 5 V |
| Tensione di alimentazione | da 3.3 V a 5 V |
| Velocità di trasmissione dei dati in uscita | 1 kHz (massimo) |
| Intervallo di temperatura | -40 a +85 °C |
| Pacchetto | QFN |
| Note / varianti | Giroscopio e accelerometro integrati |
- Assicurarsi di fornire un'alimentazione adeguata entro l'intervallo di tensione specificato.
- Usare resistori di pull-up sulle linee I2C se necessario.
- Verifica l'indirizzo I2C per la compatibilità con la tua configurazione.
- Calibrare il sensore per misurazioni accurate.
- Fate attenzione al cablaggio per evitare cortocircuiti.
Istruzioni di cablaggio

Per collegare l'MPU-6050 all'Arduino, inizia collegando il pin VCC dell'MPU-6050 al pin 5V dell'Arduino. Successivamente, collega il pin GND dell'MPU-6050 a uno dei pin GND dell'Arduino. Per la comunicazione I2C, collega il pin SDA dell'MPU-6050 al pin analogico A4 dell'Arduino e collega il pin SCL al pin analogico A5.
Per il display LCD, collega il pin VCC al pin 5V dell'Arduino e il pin GND al pin GND dell'Arduino. Collega il pin SDA del LCD allo stesso pin A4 usato per l'MPU-6050 e il pin SCL del LCD al pin A5. In questo modo sia l'MPU-6050 che il LCD condividono le stesse linee I2C, semplificando il cablaggio.

Assicurati che le connessioni siano sicure e che non ci siano fili allentati. Se il tuo LCD o il sensore non si accende, ricontrolla il cablaggio e le connessioni.
Esempi di codice e guida passo passo
Nel codice, iniziamo includendo le librerie necessarie per l'MPU-6050 e per il display LCD:
#include
#include
#include
Qui creiamo istanze sia dell'MPU-6050 sia dell'LCD. L'MPU-6050 viene inizializzato con la libreria Wire per la comunicazione I2C, mentre l'LCD viene configurato con il suo indirizzo e le sue dimensioni.
Nella funzione setup, inizializziamo il sensore e l'LCD:

void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
lcd.begin();
lcd.backlight();
lcd.clear();
}
Questo codice configura la comunicazione seriale per il debug, inizializza la comunicazione I2C e prepara l'LCD per la visualizzazione. La retroilluminazione viene accesa per rendere visibile il display.
Nella funzione loop(), leggiamo continuamente i dati dall'MPU-6050 e li visualizziamo sul display LCD:
void loop() {
mpu6050.update();
lcd.clear();
lcdDisplay(mpu6050.getAngleX(), mpu6050.getAngleY(), mpu6050.getAngleZ());
delay(100);
}
Questo frammento aggiorna i dati del sensore e pulisce il display LCD per nuove letture ogni 100 millisecondi. La funzione lcdDisplay viene chiamata per mostrare gli angoli sul display LCD.
Per una comprensione completa, si prega di guardare il video corrispondente in cui viene mostrato il codice completo (nel video a 00:00).
Dimostrazione / Cosa aspettarsi
Quando tutto è impostato correttamente, il display LCD dovrebbe visualizzare gli angoli degli assi X, Y e Z in tempo reale. Puoi inclinare il sensore MPU-6050 per vedere le variazioni sul display. Se riscontri problemi, controlla che la polarità nei collegamenti non sia invertita o assicurati che gli indirizzi I2C siano impostati correttamente.
Monitorare i valori sul display LCD ti permetterà di vedere come il sensore risponde ai movimenti e ai cambiamenti di orientamento. Se i valori appaiono statici o errati, verifica le connessioni e assicurati che il sensore funzioni correttamente.
Risorse e riferimenti
-
EsternoOttieni la libreria da GitHubgithub.com
-
EsternoSito web del produttoreinvensense.com
File📁
Librerie Arduino (zip)
-
Libreria Arduino per MPU9250
robojax-MPU9250-master.zip3.38 MB
File Fritzing
-
Modulo LCD LCD1602-I2C con 4 fili
LCD1602-I2C.fzpz0.01 MB -
Scheda MPU-6050 GY-521
MPU-6050 Board GY-521.fzpz0.01 MB -
LCD2004-I2C
LCD2004-I2C.fzpz0.02 MB
Altri file
-
Libreria LiquidCrystal LCD1602
robojax-LCD1602_LiquidCrystal.zip