Código Arduino para MPU-6050 com display LCD1602 I2C
Neste tutorial, aprenderemos como interligar o acelerômetro e giroscópio MPU-6050 a um display LCD1602 usando comunicação I2C. O MPU-6050 fornecerá medições de ângulo que serão exibidas no LCD. Este projeto ajudará você a visualizar os ângulos do MPU-6050 em tempo real, aprimorando sua compreensão dos dados do sensor e da interface com o display.


Ao final deste tutorial, você terá uma configuração funcional que exibe os ângulos X, Y e Z na tela LCD. Esta é uma ótima maneira de obter experiência prática com dados de sensores e tecnologia de display em projetos Arduino. Para mais esclarecimentos, não deixe de conferir o vídeo (em 00:00).
Hardware explicado
Os principais componentes deste projeto são o sensor MPU-6050 e o módulo de display LCD1602. O MPU-6050 é um sensor versátil que combina um acelerômetro de 3 eixos e um giroscópio de 3 eixos, fornecendo medições de ângulo em tempo real. Ele se comunica via I2C, permitindo integração perfeita com o Arduino.
O display LCD1602 também usa o protocolo I2C, o que simplifica a fiação e reduz o número de pinos necessários para a comunicação. A interface I2C permite que vários dispositivos sejam conectados no mesmo barramento, tornando-a eficiente para projetos com múltiplos sensores ou componentes.
Detalhes da ficha técnica
| Fabricante | InvenSense |
|---|---|
| Número da peça | MPU-6050 |
| Tensão lógica/E/S | 3.3 V / 5 V |
| Tensão de alimentação | 3,3 V a 5 V |
| Taxa de dados de saída | 1 kHz (máx.) |
| Faixa do giroscópio | ±250, ±500, ±1000, ±2000 °/s |
| Faixa do acelerômetro | ±2g, ±4g, ±8g, ±16g |
| Pacote | QFN |
| Notas / variantes | Inclui Processador de Movimento Digital (DMP) |
- Verifique o endereço I2C (padrão: 0x68).
- Garanta a tensão adequada da fonte de alimentação (3.3 V ou 5 V).
- Use resistores pull-up nas linhas SDA e SCL se ainda não estiverem na placa.
- Considere usar capacitores de desacoplamento próximos aos pinos de alimentação para maior estabilidade.
- Verifique as conexões da fiação para evitar problemas de comunicação.
Instruções de fiação

Para conectar o MPU-6050 e o display LCD1602 ao seu Arduino, siga estas conexões:
- Conecte o
VCCpino do MPU-6050 para o5Vpino no Arduino. - Conecte o
GNDpino do MPU-6050 para oGNDpino no Arduino. - Conecte o
SDApino do MPU-6050 para oA4pino no Arduino. - Conecte o
SCLpino do MPU-6050 para oA5pino no Arduino. - Para o display LCD1602, conecte o
VCCfixar em5Vno Arduino. - Conecte o
GNDpino do LCD1602 para oGNDpino no Arduino. - Conecte o
SDApino do LCD1602 ao mesmoA4pino usado para o MPU-6050. - Conecte o
SCLpino do LCD1602 ao mesmoA5pino usado para o MPU-6050.
Certifique-se de verificar duas vezes suas conexões, pois a fiação incorreta pode causar mau funcionamento do dispositivo ou impedir a comunicação adequada.
Exemplos de Código e Passo a Passo
O código começa incluindo as bibliotecas necessárias para o MPU-6050 e para o display LCD. O trecho a seguir mostra como inicializar o MPU-6050:
MPU6050 mpu6050(Wire);Aqui, instanciamos oMPU6050objeto, que será usado para ler dados do sensor. Em seguida, precisamos configurar o dispositivo nosetup()função:
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
lcd.begin();
lcd.backlight();
}Este código inicializa a comunicação serial, o barramento I2C e o sensor MPU-6050. Também inicializa o LCD e liga sua retroiluminação. O loop contém a lógica para atualizar e exibir os ângulos:
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);
}Neste loop, os ângulos de X, Y e Z são atualizados e exibidos no LCD. A funçãolcdDisplay()é utilizado para formatar a saída corretamente. Você pode encontrar o código completo carregado abaixo do artigo.
Demonstração / O que esperar
Quando a configuração estiver completa e o código for carregado, você deverá ver os ângulos de X, Y e Z exibidos no LCD em tempo real. Se tudo estiver ligado corretamente, o display será atualizado a cada 100 milissegundos, mostrando a orientação atual do MPU-6050.
Problemas comuns incluem assegurar que as conexões I2C estejam corretas e que a fonte de alimentação seja estável. Se o MPU-6050 não for inicializado corretamente, você pode ver dados incorretos ou nenhum dado no LCD (no vídeo em 01:15).
Coisas que você pode precisar
-
AmazonasCompre MPU-6050 na Amazonamzn.to
-
AmazonasCompre o LCD1602-I2C na Amazonamzn.to
-
eBayCompre LCD1602-I2C no eBayebay.us
-
AliExpressCompre 10 peças de LCD1602-I2C no AliExpress.s.click.aliexpress.com
Recursos e referências
-
ExternoSite do fabricanteinvensense.com
Arquivos📁
Bibliotecas do Arduino (zip)
-
Biblioteca LCD1602 para Arduino da Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB -
Biblioteca Arduino para MPU9250
robojax-MPU9250-master.zip3.38 MB
Arquivo Fritzing
-
Módulo LCD LCD1602-I2C com 4 fios
LCD1602-I2C.fzpz0.01 MB -
Placa MPU-6050 GY-521
MPU-6050 Board GY-521.fzpz0.01 MB