- Componentes necessários:
- MPU6050 Gyro Sensor:
- Descrição:
- Diagrama de circuito e explicação:
- Explicação de programação
O sensor MPU6050 tem muitas funções em um único chip. Consiste em um acelerômetro MEMS, um giroscópio MEMS e um sensor de temperatura. Este módulo é muito preciso ao converter valores analógicos em digitais porque possui um hardware conversor de analógico para digital de 16 bits para cada canal. Este módulo é capaz de capturar os canais x, y e z ao mesmo tempo. Ele possui uma interface I2C para se comunicar com o controlador host. Este módulo MPU6050 é um chip compacto com acelerômetro e giroscópio. Este é um dispositivo muito útil para muitas aplicações, como drones, robôs, sensores de movimento. É também chamado de giroscópio ou acelerômetro de eixo triplo.
Hoje, neste artigo, faremos a interface deste Giroscópio MPU6050 com o Arduino e mostraremos os valores acima do LCD 16x2.
Componentes necessários:
- Arduino Uno
- MPU-6050
- 10K POT
- Jumper wire
- Tábua de pão
- cabo USB
- Fonte de energia
MPU6050 Gyro Sensor:
MPU-6050 é um giroscópio e acelerômetro de 8 pinos e 6 eixos em um único chip. Este módulo funciona com comunicação serial I2C por padrão, mas pode ser configurado para interface SPI configurando-se o registro. Para I2C, tem linhas SDA e SCL. Quase todos os pinos são multifuncionais, mas aqui estamos procedendo apenas com os pinos do modo I2C.
Configuração do pino:
Vcc: - este pino é usado para alimentar o módulo MPU6050 em relação ao aterramento
GND: - este é o pino terra
SDA: - O pino SDA é usado para dados entre o controlador e o módulo mpu6050
SCL: - O pino SCL é usado para entrada de relógio
XDA: - Esta é a linha de dados do sensor I2C SDA para configuração e leitura de sensores externos ((opcional) não utilizado em nosso caso)
XCL: - Esta é a linha do relógio do sensor I2C SCL para configuração e leitura de sensores externos ((opcional) não utilizado em nosso caso)
ADO: - I2C Slave Address LSB (não aplicável em nosso caso)
INT: - Pino de interrupção para indicação de dados prontos.
Descrição:
Neste artigo, estamos mostrando leituras de temperatura, giroscópio e acelerômetro em LCD usando MPU6050 com Arduino. Este módulo fornece valores de linha e valores normalizados na saída, mas os valores de linha não são estáveis, então aqui mostramos valores normalizados no LCD. Se você deseja apenas o valor do acelerômetro, também pode usar o acelerômetro ADXL335 com o Arduino.
Neste projeto, primeiro mostramos um valor de temperatura no LCD e depois de 10 segundos mostramos os valores do giroscópio e depois de 10 segundos temos as leituras do acelerômetro como mostrado nas imagens abaixo:
Diagrama de circuito e explicação:
O diagrama de circuito, para fazer a interface do MPU6050 com o Arduino, é muito simples aqui, usamos um LCD e um MPU6050. E aqui usamos uma fonte de alimentação USB para laptop. Um potenciômetro de 10k é usado para controlar o brilho do LCD. Em conexão com o MPU6050, fizemos 5 conexões nas quais conectamos a fonte de alimentação de 3,3v e o aterramento do MPU6050 aos 3,3v e o aterramento do Arduino. Os pinos SCL e SDA do MPU6050 são conectados aos pinos A4 e A5 do Arduino. E o pino INT do MPU6050 está conectado à interrupção 0 do Arduino (D2). RS, RW e EN do LCD são conectados diretamente ao 8, gnd e 9 do Arduino. O pino de dados está conectado diretamente ao pino digital número 10, 11, 12 e 13.
Explicação de programação
A parte de programação também é fácil para este projeto. Aqui, usamos a biblioteca MPU6050 para fazer a interface com o Arduino. Portanto, antes de tudo, precisamos baixar a biblioteca MPU6050 do GitHub e instalá-la no Arduino IDE.
Depois disso, podemos encontrar códigos de exemplo no exemplo. O usuário pode testar esse código enviando-o diretamente para o Arduino e pode ver os valores no monitor serial. Ou o usuário pode usar nosso código fornecido no final do artigo para mostrar valores em LCD e monitor serial também.
Na codificação, incluímos algumas bibliotecas necessárias como MPU6050 e LCD.
#incluir
Na função de configuração , inicializamos ambos os dispositivos e escrevemos uma mensagem de boas-vindas no LCD
configuração vazia () {lcd.begin (16,2); lcd.createChar (0, grau); Serial.begin (9600); Serial.println ("Inicializar MPU6050"); enquanto (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Dispositivo não encontrado"); Serial.println ("Não foi possível encontrar um sensor MPU6050 válido, verifique a fiação!"); atraso (500); } contagem = 0; mpu.calibrateGyro (); mpu.setThreshold (3); Em Loop Function, chamamos três funções a cada 10 segundos para exibir a temperatura, o giroscópio e a leitura do acelerômetro no LCD. Essas três funções são tempShow, gyroShow e accelShow . Você pode verificar essas funções no código Arduino completo fornecido no final deste artigo:
loop vazio () {lcd.clear (); lcd.print ("Temperatura"); st longo = milis (); Serial.println ("Temperatura"); enquanto (milis ()
O giroscópio e o acelerômetro MPU6050 são usados para detectar a posição e a orientação de qualquer dispositivo. Gyro usa a gravidade da terra para determinar as posições dos eixos x, y e z e o acelerômetro detecta com base na taxa de mudança do movimento. Já usamos o acelerômetro com Arduino em muitos de nossos projetos como:
- Robô controlado por gestos manuais baseado em acelerômetro
- Sistema de alerta de acidentes com veículos baseado em Arduino
- Alarme do detector de terremoto usando Arduino