Código Arduino para MPU-6050 com display LCD1602 I2C

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.

LCD1602-I2C display module with 4 wires

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

FabricanteInvenSense
Número da peçaMPU-6050
Tensão lógica/E/S3.3 V / 5 V
Tensão de alimentação3,3 V a 5 V
Taxa de dados de saída1 kHz (máx.)
Faixa do giroscópio±250, ±500, ±1000, ±2000 °/s
Faixa do acelerômetro±2g, ±4g, ±8g, ±16g
PacoteQFN
Notas / variantesInclui 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

Arduino wiring for MPU-6050 with LCD

Para conectar o MPU-6050 e o display LCD1602 ao seu Arduino, siga estas conexões:

  • Conecte oVCCpino do MPU-6050 para o5Vpino no Arduino.
  • Conecte oGNDpino do MPU-6050 para oGNDpino no Arduino.
  • Conecte oSDApino do MPU-6050 para oA4pino no Arduino.
  • Conecte oSCLpino do MPU-6050 para oA5pino no Arduino.
  • Para o display LCD1602, conecte oVCCfixar em5Vno Arduino.
  • Conecte oGNDpino do LCD1602 para oGNDpino no Arduino.
  • Conecte oSDApino do LCD1602 ao mesmoA4pino usado para o MPU-6050.
  • Conecte oSCLpino 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).

Imagens

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)
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Bibliotecas do Arduino (zip)

Arquivo Fritzing